Opened 11 years ago

Closed 11 years ago

#110 closed defect (fixed)

#\+ in JAR pathnames does not work

Reported by: charmon Owned by: Mark Evenson
Priority: minor Milestone:
Component: other Version: 0.23
Keywords: Cc:
Parent Tickets:

Description

The #\+ in cl+ssl's name confuses the compiler when attempting to ASDF :load-op cl+ccl:

Here's the backtrace:

Loadable FASL not found for '/Users/sly/.cache/common-lisp/armedbear-0.23.0-dev-fasl36-darwin-java-1.6/Users/sly/src/clbuild/source/cl+ssl/package.abcl' in 'jar:file:/Users/sly/.cache/common-lisp/armedbear-0.23.0-dev-fasl36-darwin-java-1.6/Users/sly/src/clbuild/source/cl ssl/package.abcl!/package._'

[Condition of type FILE-ERROR]

Restarts:

0: [TRY-RECOMPILING] Recompile package and try loading it again
1: [RETRY] Retry performing #<ASDF:LOAD-OP NIL {7056C23D}> on #<ASDF:CL-SOURCE-FILE "cl+ssl" "package">.
2: [ACCEPT] Continue, treating #<ASDF:LOAD-OP NIL {7056C23D}> on #<ASDF:CL-SOURCE-FILE "cl+ssl" "package"> as having been successful.
3: [RETRY] Retry SLIME REPL evaluation request.
4: [*ABORT] Return to SLIME's top level.
5: [ABORT] Abort thread.

Backtrace:

0: (#<FUNCTION {7AA93A16}> #<FILE-ERROR {50802ED1}> #<FUNCTION {7AA93A16}>)
1: (APPLY #<FUNCTION {7AA93A16}> (#<FILE-ERROR {50802ED1}> #<FUNCTION {7AA93A16}>))
2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<FILE-ERROR {50802ED1}> #<FUNCTION {7AA93A16}>)
3: (INVOKE-DEBUGGER #<FILE-ERROR {50802ED1}>)
4: org.armedbear.lisp.Lisp.error(Lisp.java:353)
5: org.armedbear.lisp.Load.load(Load.java:183)
6: org.armedbear.lisp.Load.load(Load.java:674)
7: org.armedbear.lisp.Load$_load.execute(Load.java:624)
8: org.armedbear.lisp.Symbol.execute(Symbol.java:814)
9: org.armedbear.lisp.LispThread?.execute(LispThread?.java:620)

10: org.armedbear.lisp.load_1.execute(load.lisp)
11: org.armedbear.lisp.CompiledClosure?.execute(CompiledClosure?.java:101)
12: org.armedbear.lisp.Symbol.execute(Symbol.java:779)
13: org.armedbear.lisp.LispThread?.execute(LispThread?.java:568)
14: org.armedbear.lisp.asdf_352.execute(asdf.lisp)
15: org.armedbear.lisp.clos_197.execute(clos.lisp)
16: org.armedbear.lisp.clos_176.execute(clos.lisp)
17: org.armedbear.lisp.StandardGenericFunction?.execute(StandardGenericFunction?.java:138)
18: org.armedbear.lisp.Symbol.execute(Symbol.java:790)
19: org.armedbear.lisp.LispThread?.execute(LispThread?.java:585)
20: org.armedbear.lisp.asdf_354.execute(asdf.lisp)
21: org.armedbear.lisp.LispThread?.execute(LispThread?.java:585)
22: org.armedbear.lisp.clos_203.execute(clos.lisp)
23: org.armedbear.lisp.LispThread?.execute(LispThread?.java:568)
24: org.armedbear.lisp.asdf_357.execute(asdf.lisp)
25: org.armedbear.lisp.CompiledClosure?.execute(CompiledClosure?.java:92)
26: org.armedbear.lisp.asdf_359.execute(asdf.lisp)
27: org.armedbear.lisp.LispThread?.execute(LispThread?.java:585)
28: org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2805)
29: (SYSTEM::%LOAD #P"/Users/sly/.cache/common-lisp/armedbear-0.23.0-dev-fasl36-darwin-java-1.6/Users/sly/src/clbuild/source/cl+ssl/package.abcl" NIL NIL T)
30: (LOAD #P"/Users/sly/.cache/common-lisp/armedbear-0.23.0-dev-fasl36-darwin-java-1.6/Users/sly/src/clbuild/source/cl+ssl/package.abcl")
31: org.armedbear.lisp.LispThread?.execute(LispThread?.java:568)
32: org.armedbear.lisp.asdf_512.execute(asdf.lisp)
33: org.armedbear.lisp.Symbol.execute(Symbol.java:779)
34: org.armedbear.lisp.LispThread?.execute(LispThread?.java:568)
35: org.armedbear.lisp.asdf_516.execute(asdf.lisp)
36: org.armedbear.lisp.LispThread?.execute(LispThread?.java:585)
37: org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2805)
38: (TRUENAME #P"/Users/sly/src/clbuild/source/cl+ssl/package.abcl")
39: (#<FUNCTION {59FDEF61}>)
40: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {59FDEF61}>)
41: (ASDF-UTILITIES:TRUENAMIZE #P"/Users/sly/src/clbuild/source/cl+ssl/package.abcl")
42: (ASDF:APPLY-OUTPUT-TRANSLATIONS #P"/Users/sly/src/clbuild/source/cl+ssl/package.abcl")
43: (#<FUNCTION {2E6EF76F}> #<ASDF:COMPILE-OP {7736B039}> #<ASDF:CL-SOURCE-FILE {B97CF78}>)
44: (APPLY #<FUNCTION {2E6EF76F}> (#<ASDF:COMPILE-OP {7736B039}> #<ASDF:CL-SOURCE-FILE {B97CF78}>))
45: (ASDF:OUTPUT-FILES #<ASDF:COMPILE-OP {7736B039}> #<ASDF:CL-SOURCE-FILE {B97CF78}>)
46: (#<FUNCTION {276BAB54}> (ASDF:COMPILE-OP "package"))
47: (APPLY #<FUNCTION {276BAB54}> ((ASDF:COMPILE-OP "package")))
48: (SYSTEM::MAP1 #<FUNCTION {276BAB54}> (((ASDF:COMPILE-OP "package"))) :NCONC T)
49: (MAPCAN #<FUNCTION {276BAB54}> ((ASDF:COMPILE-OP "package")))
50: (ASDF:INPUT-FILES #<ASDF:LOAD-OP {7056C23D}> #<ASDF:CL-SOURCE-FILE {B97CF78}>)
51: (ASDF:PERFORM #<ASDF:LOAD-OP {7056C23D}> #<ASDF:CL-SOURCE-FILE {B97CF78}>)
52: (#<FUNCTION (LAMBDA (MOP::ARGS MOP::NEXT-EMFUN)) {5485F086}> (#<ASDF:LOAD-OP {7056C23D}> #<ASDF:CL-SOURCE-FILE {B97CF78}>) NIL)
53: (#<FUNCTION {257218C4}> (#<ASDF:LOAD-OP {7056C23D}> #<ASDF:CL-SOURCE-FILE {B97CF78}>))
54: (#<FUNCTION {DBD2C04}> #<ASDF:LOAD-OP {7056C23D}> #<ASDF:CL-SOURCE-FILE {B97CF78}>)
55: (APPLY #<FUNCTION {DBD2C04}> (#<ASDF:LOAD-OP {7056C23D}> #<ASDF:CL-SOURCE-FILE {B97CF78}>))
56: (ASDF::PERFORM-WITH-RESTARTS #<ASDF:LOAD-OP {7056C23D}> #<ASDF:CL-SOURCE-FILE {B97CF78}>)
57: (#<FUNCTION {7E94C1A7}>)
58: (JVM::%WITH-COMPILATION-UNIT #<FUNCTION {5835FBDD}>)
59: org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2805)
--more--

Change History (5)

comment:1 Changed 11 years ago by Mark Evenson

Component: compilerother
Owner: changed from ehuelsmann to Mark Evenson
Status: newassigned
Summary: #\+ in cl+ssl filename confuses the compiler when looking for FASLs in jars#\+ in JAR pathnames does not work

Since '+' is the escape sequence for the SPACE character in URI encodings, when the PATHNAME code thunks through the '+' is tranformed.

Change summary to be more descriptive as this has nothing to do with the compiler per se.

comment:2 Changed 11 years ago by charmon

i don't know if I'd say this has nothing to do with the compiler, as it has to do with the bogus encoding done to filenames by the compiler, even if indirectly.

comment:3 in reply to:  2 Changed 11 years ago by Mark Evenson

Replying to charmon:

i don't know if I'd say this has nothing to do with the compiler, as it has to do with the bogus encoding done to filenames by the compiler, even if indirectly.

Since all of the logic in dealing with PATHNAMES is mostly implemented as Java in Pathname.java, I think the compiler will need no fixes to solve this, hence why I don't think the component is the compiler. It may indeed effect the compiler indirectly, but only insomuch as it uses such primitives.

comment:4 Changed 11 years ago by Mark Evenson

(In [13024]) Fix loading from pathnames with '+' in directory pathname re #110.

comment:5 Changed 11 years ago by Mark Evenson

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.