Add extrinsic-symbols
This allows testing an extrinsic system that implements part of the standard without replacing the implementation's systems. It does not affect normal usage of ansi-test.
To test an extrinsic system one needs to only add the symbols of the functions, macros, etc to cl-user:extrinsic-symbols
before loading ansi-test. For example, to test Khazern (LOOP implementation) one can do
(ql:quickload '(:alexandria :khazern-extrinsic))
(defvar extrinsic-symbols
'(khazern-extrinsic:loop
khazern-extrinsic:loop-finish))
(let* ((wd (or *compile-file-truename* *load-truename*))
(*default-pathname-defaults* (if wd
(make-pathname :name nil :type nil :version nil
:defaults wd)
*default-pathname-defaults*)))
(load "init.lsp"))
;;; Disable non-LOOP tests
(dolist (name (mapcar (lambda (entry)
(uiop:symbol-call :regression-test :name entry))
(cdr (symbol-value (find-symbol "*ENTRIES*" :regression-test)))))
(unless (alexandria:starts-with-subseq "LOOP" (symbol-name name))
(uiop:symbol-call :regression-test :rem-test name)))
(uiop:symbol-call :regression-test :do-tests :exit t :expected-failures '(:nil-vectors-are-strings))
FYI @rstrandh