I reported a related problem some time ago
http://lists.common-lisp.net/pipermail/cl-ppcre-devel/2011-January/000706.ht...
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
http://www.lispworks.com/documentation/HyperSpec/Body/19_bbbc.htm
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