#150: MAKE-PATHNAME ignores version in :DEFAULTS -----------------------+---------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: assigned Priority: minor | Milestone: 0.26 Component: java | Version: 0.24 Resolution: | Keywords: pathname asdf -----------------------+---------------------------------------------------- Changes (by mevenson):
* owner: nobody => mevenson * status: reopened => assigned
Comment:
The (the only reason?) why ABCL was sort of working with systems like ASDF even though it had broken usage of the VERSION component was that the Pathname copy constructor always set it to NIL. This constructor is used internally by routines such as MERGE-PATHNAME to avoid sharing structure between its arguments and its results.
The following patch fixes the copy constructor while breaking ASDF loading again. I'm working on figuring out a single patch to fix the failures holistically rather than destabilizing trunk.
{{{ diff -r c51a8602a9c8 src/org/armedbear/lisp/Pathname.java --- a/src/org/armedbear/lisp/Pathname.java Wed May 25 14:32:16 2011 +0000 +++ b/src/org/armedbear/lisp/Pathname.java Fri May 27 07:52:21 2011 +0200 @@ -168,6 +168,15 @@ Debug.assertTrue(false); } } + if (p.version != NIL) { + if (p.version instanceof Symbol) { + version = p.version; + } else if (p.version instanceof LispInteger) { + version = p.version; + } else { + Debug.assertTrue(false); + } + } }
public Pathname(String s) { }}}