On 2015/12/14 23:39, John Pallister wrote: […]
That is, merging a relative path with the (absolute) JFAD path retained the default JAR file "device" (and remains a relative path, which ASDF won't accept), but merging an absolute path reset the device component. I've read through the documentation for MERGE-PATHNAMES in the HyperSpec[2] and AFAICT the device component should be copied across. I'm reasonably confident that if it were, things would work better. But I could be (doubly) wrong.
I am trying to figure this out for myself, but I'm stuck for now, so I'm hoping someone (i.e. Mark) can, on reading this, offer some guidance as to where I should go from here. I haven't (yet) tried posting to the ASDF mailing list as this seems like a fairly ABCL-specific issue.
[…] You are probably being bit here by the shenanigans noted in section 1.1.1 entitled "ANSI Common Lisp" of the [User Manual][1]:
[…]
When merging pathnames and the defaults point to a EXT: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.
[…]
[Footnote] 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 (see in [P+96] 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 explicitly.
[…]
[1]: http://abcl.org/releases/1.3.3/abcl-1.3.3.pdf
If desired, one can study the current aim of the implementation in using the DEVICE field to represent a JAR file via the [url-pathname][2] and [jar-pathname][3] design notes. More history can be gleaned with the [notes on the last time I mucked with MERGE-PATHNAMES][4].
[2]: http://abcl.org/trac/browser/trunk/abcl/doc/design/pathnames/url-pathnames.m... [3]: http://abcl.org/trac/browser/trunk/abcl/doc/design/pathnames/jar-pathnames.m... [4]: http://abcl.org/trac/browser/trunk/abcl/doc/design/pathnames/merging-default...
Could you provide the values for LISP-IMPLEMENTATION-VERSION executed on your GAE container?
I need more time to analyze what the right way forward would be if we need to fix the MERGE-PATHNAME semantics, as I need to preserve a whole lot of edge cases for which I don't have time to develop reliable tests.
Time. Slipping like a river, into the future.