I reported a related problem some time ago
However, instead of the values I supplied now cl-unicode is using :unspecific for the :type of a pathname.
(defun dump-derived-tests ()
"Parses the Unicode data file \"DerivedCoreProperties.txt\" \(which
is not used in read.lisp) and uses it to create a file
\"derived-properties\" which will be used by CL-UNICODE-TEST."
(with-output-to-source-file (out (make-pathname :name "derived-properties"
:type :unspecific
:directory '(:relative :up "test"))
:no-header-p t)
This is not supported by ECL, which uses NIL to represent an unfilled value (absent therefore). From the Hyperspec
A conforming program must never unconditionally use a :unspecific as the value of a pathname component because such a value is not guaranteed to be permissible in all implementations.
Probably what you want to solve is the merge-pathnames above the code (in the macro), which might instead read
`(let* ((directory (make-pathname :name nil :type nil :version nil :defaults *this-file*))
(pathname (merge-pathnames ,relative-path directory))
Cheers,
Juanjo