From evenson at panix.com Mon Sep 7 14:57:04 2020 From: evenson at panix.com (Mark Evenson) Date: Mon, 7 Sep 2020 16:57:04 +0200 Subject: ABCL via homebrew In-Reply-To: <6DCE9568-925C-424B-A3EB-011E43C18ACF@gmail.com> References: <1582169344.1369535.1596803248387.ref@mail.yahoo.com> <1582169344.1369535.1596803248387@mail.yahoo.com> <8A9AF4BB-E4A8-40DB-95F5-03BCC66A8DF4@panix.com> <496573971.1797155.1596874911813@mail.yahoo.com> <8953B416-8B06-4C56-B96D-2B1F5FE013DB@panix.com> <6DCE9568-925C-424B-A3EB-011E43C18ACF@gmail.com> Message-ID: <89A00DD2-7B43-4E71-A07D-5CC0CB2C81E3@panix.com> > On Aug 28, 2020, at 21:24, Alexandre Rademaker 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." From evenson at panix.com Sat Sep 19 14:38:35 2020 From: evenson at panix.com (Mark Evenson) Date: Sat, 19 Sep 2020 16:38:35 +0200 Subject: The road to ABCL 2.0.0 Message-ID: <0D5098B1-8D03-4C76-99EE-F1447157F3F3@panix.com> Greetings Armed Bear fans, Since, I've been able to get our favorite Bear to run on [openjdk15][6], which has now replaced openjdk14 in our CI test regime, an update is in order about the release schedule of [ABCL 2.0][3] for those of you following along at home, and let’s face it: only the homeless aren’t at home these days. ** Either abcl-1.8.0, or abcl-2.0.0 or both will be released by 10.10.2020 ** [abcl-1.8.0][1] will be the last release support openjdk6 and openjdk7 runtimes. [abcl-2.0.0][2] will require openjdk8, and will run on openjdk11, openjdk13, openjdk14, and openjdk15. We will fix compatibility with previous versions of the implementation by incompletely and inefficiently re-implement the use of CL:PATHNAME-DEVICE to "paper over” the use of nested jar references. The ability to access nested jar entries via CL:PATHNAME references has been broken since the openjdk support for nested references to jar files dropped for their creation. Nobody seemed to notice this problem, accept for customers of the [ASDF-JAR][4] contrib which is currently unable to load classes Since either openjdk5 or openjdk6, references like #p"jar:jar:file:/var/tmp/cl-ppcre-2.1.1.jar!/cl-ppcre/packages.abcl!/__loader__._” while syntactically valid cannot actually address the contents on zip files withing zip files. Since we would like such nested jar entries for use by strategies like ABCL All-in-Once (AiO), with [abcl-1.8.0][2] will allow an arbitrary PATHNAME-DEVICE component designating a sequence of nested archive entries. With openjdk8, we can use abstractions to make the caching efficient, but the current strategy (will) just reference everything by a weak reference to allow the implementation to garbage collect if it finds itself under memory pressure. In an era of the available of cheap gibibyte heaps, potentially retaining references to the bytes of artifacts accessed via CL:LOAD will be a viable strategy for at least the core implementation which is only ~ 11 mebibyte. ABCL-2.0.0 will use all of the ABCL-1.8.0 code in additional to an implementation of multi-threaded sensitive atomic operations supporting ubiquitous contemporary ANSI CL compare and swap for memory. The presence of a new compiler for ABCL-2.0.0 is no longer a release driver as it currently stands, but I would love some help if it shows up. Once I get things working well under openjdk8, I will start to work on the new compiler infrastructure. Comments, patches, criticisms welcome! yours, Mark [1]: [2]: [3]: [4]: [5]: [6]: -- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now." From 2433647181 at munyer.com Wed Sep 30 00:56:46 2020 From: 2433647181 at munyer.com (Robert Munyer) Date: Tue, 29 Sep 2020 20:56:46 -0400 Subject: Bug report: Regression, immediately invoked function expressions Message-ID: <87sgb013qp.fsf@mid.munyer.com> The function below works in CCL, CLISP, SBCL and ABCL 1.4.0, but not in ABCL 1.7.1. $ java -jar abcl-1.7.1.jar Armed Bear Common Lisp 1.7.1 Java 1.8.0_265 Oracle Corporation OpenJDK 64-Bit Server VM Low-level initialization completed in 0.188 seconds. Startup completed in 0.869 seconds. Type ":help" for a list of available commands. CL-USER(1): (defun add3 (foo) ((lambda (bar) ((lambda (baz) (1+ baz)) (1+ bar))) (1+ foo))) #: Debugger invoked on condition of type TYPE-ERROR The value (LAMBDA (BAZ) (1+ BAZ)) is not of type SYMBOL. Restarts: 0: TOP-LEVEL Return to top level. [1] CL-USER(2): From 2433647181 at munyer.com Wed Sep 30 01:01:32 2020 From: 2433647181 at munyer.com (Robert Munyer) Date: Tue, 29 Sep 2020 21:01:32 -0400 Subject: Bug report: IllegalStateException, when reading after rewinding Message-ID: <87o8lo13ir.fsf@mid.munyer.com> The code below works in CCL, CLISP and SBCL, but not in ABCL. $ echo hello > hello.text $ java -jar abcl-1.7.1.jar Armed Bear Common Lisp 1.7.1 Java 1.8.0_265 Oracle Corporation OpenJDK 64-Bit Server VM Low-level initialization completed in 0.181 seconds. Startup completed in 0.945 seconds. Type ":help" for a list of available commands. CL-USER(1): (with-open-file (in "hello.text") (list (read in) (read in nil) (file-position in :start) (read in))) java.lang.IllegalStateException: Current state = CODING_END, new state = CODING at java.nio.charset.CharsetDecoder.throwIllegalStateException(CharsetDecoder.java:992) at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:572) at org.armedbear.lisp.util.RandomAccessCharacterFile.read(RandomAccessCharacterFile.java:392) [ many stack frames elided ] at org.armedbear.lisp.Main$1.run(Main.java:48) at java.lang.Thread.run(Thread.java:748) #: Debugger invoked on condition of type ERROR Caught java.lang.IllegalStateException: Current state = CODING_END, new state = CODING. Restarts: 0: TOP-LEVEL Return to top level. [1] CL-USER(2): From evenson at panix.com Wed Sep 30 20:59:47 2020 From: evenson at panix.com (Mark Evenson) Date: Wed, 30 Sep 2020 22:59:47 +0200 Subject: Bug report: IllegalStateException, when reading after rewinding In-Reply-To: <87o8lo13ir.fsf@mid.munyer.com> References: <87o8lo13ir.fsf@mid.munyer.com> Message-ID: > On Sep 30, 2020, at 03:01, Robert Munyer <2433647181 at munyer.com> wrote: > > (with-open-file (in "hello.text") > (list (read in) > (read in nil) > (file-position in :start) > (read in))) Reproduced and filed as [ticket 473][1]. [1]: https://abcl.org/trac/ticket/473 -- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now." From evenson at panix.com Wed Sep 30 21:06:21 2020 From: evenson at panix.com (Mark Evenson) Date: Wed, 30 Sep 2020 23:06:21 +0200 Subject: Bug report: Regression, immediately invoked function expressions In-Reply-To: <87sgb013qp.fsf@mid.munyer.com> References: <87sgb013qp.fsf@mid.munyer.com> Message-ID: <0C693D65-A9E1-4803-8301-CEF15F373824@panix.com> > On Sep 30, 2020, at 02:56, Robert Munyer <2433647181 at munyer.com> wrote: > > The function below works in CCL, CLISP, SBCL and ABCL 1.4.0, > but not in ABCL 1.7.1. > > $ java -jar abcl-1.7.1.jar > Armed Bear Common Lisp 1.7.1 > Java 1.8.0_265 Oracle Corporation > OpenJDK 64-Bit Server VM > Low-level initialization completed in 0.188 seconds. > Startup completed in 0.869 seconds. > Type ":help" for a list of available commands. > CL-USER(1): (defun add3 (foo) > ((lambda (bar) > ((lambda (baz) > (1+ baz)) > (1+ bar))) > (1+ foo))) > #: Debugger invoked on condition of type TYPE-ERROR > The value (LAMBDA (BAZ) (1+ BAZ)) is not of type SYMBOL. > Restarts: > 0: TOP-LEVEL Return to top level. > [1] CL-USER(2): > Confirmed as [working with abcl-1.4.0][1] but failing now. Thanks for the report. [1]: https://abcl.org/trac/ticket/474 -- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now." From evenson at panix.com Wed Sep 30 22:22:47 2020 From: evenson at panix.com (Mark Evenson) Date: Thu, 1 Oct 2020 00:22:47 +0200 Subject: Bug report: Regression, immediately invoked function expressions In-Reply-To: <0C693D65-A9E1-4803-8301-CEF15F373824@panix.com> References: <87sgb013qp.fsf@mid.munyer.com> <0C693D65-A9E1-4803-8301-CEF15F373824@panix.com> Message-ID: <0EC2DABA-7B2F-424B-8620-D4D461267C91@panix.com> > On Sep 30, 2020, at 23:06, Mark Evenson wrote: > > > >> On Sep 30, 2020, at 02:56, Robert Munyer <2433647181 at munyer.com> wrote: >> >> The function below works in CCL, CLISP, SBCL and ABCL 1.4.0, >> but not in ABCL 1.7.1. […] >> (defun add3 (foo) >> ((lambda (bar) >> ((lambda (baz) >> (1+ baz)) >> (1+ bar))) >> (1+ foo))) > This should be fixed . I’ll wait to check the Travis CI before merging, but am going to bed now. -- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now."