Attached is a further revision of the patch for loading Lisp from JAR files. This version works in about all the cases we need to support. This feature will be one of the first to hit to 0.17 trunk when we branch, because I don't want to commit such a potentially destabilizing change in the week before 0.16.
This patch includes additions to the ABCL test suite for this change, since there are enough corner cases that I seem to miss testing them occasionally in writing this code. Working with our test suite via ASDF is not currently the most obvious thing in the world, so some notes on that: To get the tests to work, get a REPL that loads the ASDF "abcl-test-lisp" system, and run the tests once (needed to bind *this-directory* variable). Often one must tell the ASDF methods that they must be 'forced' to get to work, so use the 'force-system-test' via SLIME or pass the ':force t' option if you are issuing commands directly from the REPL. After the "abcl-test-lisp" system has run once, issue na (ABCL-TEST:REM-ALL-TESTS) in that REPL then load the "test/lisp/abcl/load.lisp" file, which will create a JAR ('baz.jar') that the tests work on (only works under *NIX for the moment, sorry). Then, one get issue (ABCL-TEST:DO-TESTS) to run the testing of LOAD specific tests.
Some notes on our use RT package, the basis for the ABCL Lisp test suite: RT lacks a mechanism for expressing "build-up/tear-down" abstractions that I am familiar with in test suites. Included in this would be an easy way to specify a value for *DEFAULT-PATHNAME-DEFAULTS* when the tests are run (I provide this in the ABCL-TEST-LISP:RUN method, but there should be a way to specify per test so that individual tests can be run easier when developing).
All the cases in the test suite currently work except for LOAD.9, which tries to explicitly load a "*.lisp" file from a JAR. I need to refactor the Load.findLoadableFile() to handle working in JAR files.