On Fri, Jan 8, 2010 at 4:06 AM, Alan Ruttenberg alanruttenberg@gmail.com wrote:
On Thu, Jan 7, 2010 at 6:59 AM, Alessio Stalla alessiostalla@gmail.com wrote:
On Thu, Jan 7, 2010 at 9:17 AM, Alan Ruttenberg alanruttenberg@gmail.com wrote:
Seems like the extension is ignored and either lisp or .abcls files are loaded. This means that .asd files are not (an error is thrown) It also means that requests for files that don't exist get satisfied, e.g. if you give it a bogus filetype but there is a .lisp or .abcl file present.
e.g.
(load "jar:file:/Users/alanr/repos/lsw/trunk/patches/test.jar!/bar/bar1.li") ; Loading jar:file:/Users/alanr/repos/lsw/trunk/patches/test.jar!/bar/bar1.li ...
Whoops - there is no bar1.li, just bar1.lisp
(load "jar:file:/Users/alanr/repos/lsw/trunk/patches/test.jar!/bar/bar.asd")
The file #P"jar:file:/Users/alanr/repos/lsw/trunk/patches/test.jar!/bar/bar.asd" does not exist.
Whoops - it does so!
I cannot reproduce it fully on trunk. I can load .asd files just fine. I get the "bar.li" behaviour too - we should probably add .abcl or .lisp only if the name has no extension, to avoid confusion; that's what sbcl does, and probably most other lisps.
I recently modified readFunctionBytes in Lisp.java to be able to load stuff from remote jars (i.e. when the protocol is jar:x and x is not "file"); that may have something to do with it, and maybe with Mark's test failures too.
Alessio
So tonight I'm seeing an asd file load properly. However loading an fasl from a subdirectory within a jar file fails.
jar cf test2.jar test.abcl jar cf test3.jar in/test.lisp jar cf test4.jar in/test.abcl
(load "jar:file:/Users/alanr/repos/lsw/trunk/patches/test2.jar!/test.abcl") ; Loading jar:file:/Users/alanr/repos/lsw/trunk/patches/test2.jar!/test.abcl ...
HELLO-FROM-JAR ; Loaded jar:file:/Users/alanr/repos/lsw/trunk/patches/test2.jar!/test.abcl (0.0010 seconds) T
(load "jar:file:/Users/alanr/repos/lsw/trunk/patches/test3.jar!/in/test.lisp") ; Loading jar:file:/Users/alanr/repos/lsw/trunk/patches/test3.jar!/in/test.lisp ...
HELLO-FROM-JAR ; Loaded jar:file:/Users/alanr/repos/lsw/trunk/patches/test3.jar!/in/test.lisp (0.0020 seconds) T
(load "jar:file:/Users/alanr/repos/lsw/trunk/patches/test4.jar!/in/test.abcl") java.lang.NullPointerException at org.armedbear.lisp.Utilities.getZippedZipEntryAsByteArray(Utilities.java:153) at org.armedbear.lisp.Utilities.getZippedZipEntryAsInputStream(Utilities.java:177) at org.armedbear.lisp.Load.load(Load.java:231) at org.armedbear.lisp.Load.load(Load.java:754) ...
What do those .abcl files contain? It seems to me that loading them fails because they're always assumed to be zip files, while they can also be plain text files (that's what happens at line 231 of Load.java); however, this is (apparently) unrelated to whether they are in a subdirectory or not, so I'm not sure we're observing the same problem.
Ale