Hi,
I've noticed (while building with Maven), that the versioned system and contrib jars aren't found properly because of how the loader constructs the pathnames. Attached are three patches to clean up abcl-contrib.lisp a bit and then fix this by accepting every matching pathname directly. This still doesn't check for the correct version string, but maybe that's not a problem.
Best regards, Olof
On 3/20/14, 23:47, Olof-Joachim Frahm wrote:
I've noticed (while building with Maven), that the versioned system and contrib jars aren't found properly because of how the loader constructs the pathnames. Attached are three patches to clean up abcl-contrib.lisp a bit and then fix this by accepting every matching pathname directly. This still doesn't check for the correct version string, but maybe
Applied as [r14654][] ff.
The last patch is somewhat incomplete, as FIND-CONTRIB needs to do more than just match on the classpath. abcl-contrib.jar is not usually mentioned on the classpath; we use the location of the system jar to probe the filesystem for abcl-contrib. So, when running for me FIND-CONTRIB-JAR returns null in the first ignore-errors stanza in FIND-CONTRIB, which then falls back to probing the locations returned from the boot classloader.
I'm a bit muddle-headed from a cold at the moment, so maybe I should wait a bit on your last patch, but it works for me and this is on the dev branch, so if it breaks some usage, we can come back to this issue.
[r14564]: http://abcl.org/trac/changeset/14654 [r14565]: http://abcl.org/trac/changeset/14655 [r14656] http://abcl.org/trac/changeset/14656
On 21 March 2014 at 11:37 Mark Evenson evenson@panix.com wrote: The last patch is somewhat incomplete, as FIND-CONTRIB needs to do more than just match on the classpath. abcl-contrib.jar is not usually mentioned on the classpath; we use the location of the system jar to probe the filesystem for abcl-contrib. So, when running for me FIND-CONTRIB-JAR returns null in the first ignore-errors stanza in FIND-CONTRIB, which then falls back to probing the locations returned from the boot classloader.
I think I've hit the wrong reply button. Anyway, attached is an attempt to find the contrib based on the system jar name. This works even if the contrib jar isn't on the classpath.
On Mar 23, 2014, at 23:55, Olof-Joachim Frahm olof@macrolet.net wrote:
On 21 March 2014 at 11:37 Mark Evenson evenson@panix.com wrote: The last patch is somewhat incomplete, as FIND-CONTRIB needs to do more than just match on the classpath. abcl-contrib.jar is not usually mentioned on the classpath; we use the location of the system jar to probe the filesystem for abcl-contrib. So, when running for me FIND-CONTRIB-JAR returns null in the first ignore-errors stanza in FIND-CONTRIB, which then falls back to probing the locations returned from the boot classloader.
I think I've hit the wrong reply button. Anyway, attached is an attempt to find the contrib based on the system jar name. This works even if the contrib jar isn't on the classpath.<0001-Find-contrib-based-on-system-jar-name.patch>
Committed as [r14657][]. Thanks for the follow-through!
[r14657]: http://abcl.org/trac/changeset/14657
armedbear-devel@common-lisp.net