[armedbear-devel] Change in merge semantics which fixes loading CFFI

Mark Evenson evenson at panix.com
Thu Oct 11 11:46:22 UTC 2012

After extensive testing and refactoring, I have pushed a series of
changes (from [r14176][] through [r14179][]) to trunk that should,
among other things, finally fix the issues associated with loading

To affect the fixes, I have introduced a slight change
in the merge pathname semantics in [r14178][], which I described
in the Manual by the following text:

When merging pathnames and the defaults point to a JAR-PATHNAME,
we set the DEVICE of the result to :UNSPECIFIC if the pathname
to be be merged does not contain a specified DEVICE, does not
contain a specified HOST, does contain a relative DIRECTORY, and
we are not running on a MSFT Windows platform.  The intent of
this rather arcane sounding deviation from conformance is so that
the result of a merge won't fill in a DEVICE with the
wrong "default device for the host" in the sense of the fourth
paragraph in the CLHS description of MERGE-PATHNAMES (the
paragraph beginning "If the PATHNAME explicitly specifies a host
and not a device").  A future version of the implementation may
return to conformance by using the HOST value to reflect the type

Additionally TRUENAME on non-Windows now fills in the DEVICE component
with :UNSPECIFIC, but this is conforming behaviour.

I will close the relevant tickets when I get a chance (and no one
has proved me a liar in the meantime).

[r14176]: http://trac.common-lisp.net/armedbear/changeset/14176
[r14178]: http://trac.common-lisp.net/armedbear/changeset/14178
[r14179]: http://trac.common-lisp.net/armedbear/changeset/14179

Comments, criticisms, usage reports (especially of the "Yay!  CFFI
works now!" variety), solicited.

"A screaming comes across the sky.  It has happened before but there is nothing to compare to it now."

More information about the armedbear-devel mailing list