#150 closed defect (fixed)
MAKE-PATHNAME ignores version in :DEFAULTS
Reported by: | Mark Evenson | Owned by: | Mark Evenson |
---|---|---|---|
Priority: | minor | Milestone: | 0.26 |
Component: | java | Version: | 0.24 |
Keywords: | pathname asdf | Cc: | |
Parent Tickets: |
Description
(defparameter *wild-file* (make-pathname :name :wild :type :wild :version :wild :directory nil)) (describe *wild-file*) (describe (make-pathname :defaults *wild-file*))
which shows that MAKE-PATHNAME ignores the VERSION of the defaults.
Attachments (1)
Change History (9)
comment:1 Changed 13 years ago by
Keywords: | asdf added |
---|
Changed 13 years ago by
Attachment: | abcl-make-pathname-version.diff added |
---|
comment:2 Changed 13 years ago by
The patch exposes further problems in how ABCL deals with wild pathname components when ASDF tries to load and compile systems.
r13289 fixes problems with ENSURE-DIRECTORIES-EXIST but there are further problems with ASDF.
comment:3 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:4 Changed 13 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
A little too optimistic
MERGE-PATHNAMES.6
OPEN.ERROR.17
are failing in the ANSI-COMPILED tests.
comment:5 Changed 13 years ago by
comment:6 Changed 13 years ago by
Owner: | changed from nobody to Mark Evenson |
---|---|
Status: | reopened → assigned |
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) {
comment:7 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Patch to fix root cause of #150