[armedbear-devel] No JSR-223 code in abcl-src-0.15.tar.gz

Mark Evenson evenson at panix.com
Fri Aug 28 05:52:33 UTC 2009

On 8/27/09 6:33 PM, Alessio Stalla wrote:
> Greetings all,
> I have downloaded the 0.15 release of abcl from the official site, to
> use it in a side-project at work. I found out that the archive does
> not contain the src/org/armedbear/lisp/scripting directory, where the
> JSR-223 stuff resides. Worse, the archive does contain the
> META-INF/services/javax.script.ScriptEngineFactory, so when built the
> jar actually declares it contains a JSR-223 implementation, but it
> does not. How is the archive built? I think I saw tasks in the
> Ant-based build file to zip the source, maybe those don't include the
> scripting/ directory. If that is the case, I can fix it for build.xml.
> I don't know how the Lisp based build works, though.

Ant-based, aka build.xml, is the way we build releases, as far as I 
know, as the Lisp based build currently doesn't have the necessary 
features. It makes sense that we use a build process that is 
reproducible by developers, by adding some verification steps to 
build.xml, so we can all test the results.

 From examining 'build.xml' (i.e. without testing) it appears that using 
these source targets on Java5 will falsely include the 
'META-INF/services/javax.script.ScriptEngineFactory' in the JAR even 
when compiling in the absence of JSR-223 support.  So, I think the 
abcl-src-0.15 release was made with Java5, which would explain this 

If we can confirm that using a JSR-223 enabled abcl.jar doesn't cause 
any problems running in Java5 without JSR-223 classes present, we can 
just ship these classes with future releases.  I think the references to 
JSR-223 from the org.armedbear.lisp package are all soft (i.e. there are 
no direct references in Java), so there should actually be nothing that 
breaks Java5 with such a release such as "Class not found errors" as 
long as nothing tries to use the JSR-223 code.  We have to test this, 
and maybe Alessio can give some feedback.

We should probably then

a) fix 'build.xml' to not include any scripting artifacts when compiled 
with java5 in the absence of JSR-223

b) change the source archive targets to complain if Java6 is not used to 
make a release

c) use Java6 to make a release

d) Test that this release works in both Java5/Java6

"A screaming comes across the sky.  It has happened before, but there
is nothing to compare to it now."

More information about the armedbear-devel mailing list