ABCL via homebrew

Mark Evenson evenson at panix.com
Mon Sep 7 14:57:04 UTC 2020



> On Aug 28, 2020, at 21:24, Alexandre Rademaker <arademaker at gmail.com> wrote:
> 
> 
> I have ABCL installed in my system using brew: 
> 
> % brew info abcl
> abcl: stable 1.7.1 (bottled), HEAD
> Armed Bear Common Lisp: a full implementation of Common Lisp
> https://abcl.org/
> /usr/local/Cellar/abcl/1.7.1_1 (8 files, 11.0MB) *
>  Poured from bottle on 2020-08-28 at 13:42:31
> From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/abcl.rb
> License: GPL-2.0-or-later with Classpath-exception-2.0
> ==> Dependencies
> Required: ant ✔, openjdk ✔, rlwrap ✔
> ==> Options
> --HEAD
> 	Install HEAD version
> ==> Analytics
> install: 59 (30 days), 211 (90 days), 486 (365 days)
> install-on-request: 53 (30 days), 190 (90 days), 437 (365 days)
> build-error: 0 (30 days)
> 
> But until now, it was working fine, but now, after the update I am getting the error below. I looks like the openjdk used to compile was not updated in brew, any solution?
> 
> ar at leme bin % abcl
> Error: A JNI error has occurred, please check your installation and try again
> Exception in thread "main" java.lang.UnsupportedClassVersionError: org/armedbear/lisp/Main has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 52.0
> 	at java.lang.ClassLoader.defineClass1(Native Method)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
> 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
> 	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
> 	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

The brew recipe you reference seemingly specifies using openjdk14 to compile which is why the class version of org/armedbear/lisp/Main is reported as 58.0.    But it seems that the `abcl` script is attempting to start ABCL with an Java 8 runtime (which has class file version 52.0).  

I don’t really use Homebrew, so don’t really know how it manages the Java runtime infrastructure used by its installation of recipes, but here’s how I would diagnose your setup.  

1)  Check the contents of the `abcl` script to see what version of Java it is trying to use.

2)  Possibly start abcl with the `—-noinit` flag to see if that makes a difference.  



-- 
"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