In the "gee that took a lot longer than expected", I'd like to announce my rough plan to release abcl-1.5.0 in the next week.
The biggest change in the implementation will be the dropping of Java 5 support since there is no longer a freely redistributable JDK5 implementation (it went with the Sun set…) to run the GPL'd ABCL upon.
We will endeavor to ensure that Java 6 continues to be supported as long as the openjdk6 is actively maintained.
As always, comments and patches solicited.
Yers in CONS, Mark
Milestones ==========
Drop Java 5; ensure Java [678] work well.
ABCL-CONTRIB ------------
ABCL-BUILD
Unified build system (using UIOP; able to install and use Ant, Maven, and others via interactive restarts)
ABCL-INTROSPECT
Vastly improved support for Java object introspection (Used via as yet unreleased SLIME patches https://github.com/easye/slime.git)
CL:DISASSEMBLE works "out of the box" with JAD (if installed on PATH), or Objectweb
ABCL-AIO
Package arbitrary run-time dependencies (both Java and Lisp) in 'abcl-aio.jar' for customized deployment scenarios
ABCL-CONTRIB semantics described
(UNIMPLEMENTED) Bootstrap the config mechanism across the network if a local abcl-contrib source tree cannot be located.
JSS
optimizations & features to support dynamic introspection
ABCL-ASDF
Robust Maven support
ABCL 1.5.0-rc-0 release candidate now available without signatures to test the distribution mechanisms.
After I anchor the release in Maven with a release candidate, I will be publishing the current source as ABCL 1.5.0, so please get your patches in or yell loudly if you don’t wish this to happen with the current TRUNK.
http://abcl.org/releases/1.5.0/ http://abcl.org/releases/1.5.0/abcl-1.5.0-rc-0.pdf
docker run -it easye/abcl:1.5.0-rc-0
We are please to announce that we have released the Sixth Edition of the Armed Bear Common Lisp implementation as ABCL 1.5.0.
Due to the lack of a publicly available Java 5 implementation, with this release we drop support for that platform, and henceforth support running on Java 6, Java 7, and Java 8.
In addition to consolidating eight months of bug fixes, the following notable features are now also present in the implementation.
The compiler now records more complete debugging information on the SYS:SOURCE symbol property.
ABCL-INTROSPECT offers improved inspection of backtraces to the point that local variables may be inspected in Lisp debug frames. Patches to SLIME to use this feature are in the process of being merged into the upstream repository. The OBJECTWEB system allows the user to disassemble JVM bytecode via dependencies managed by Maven.
JSS now contains a syntax for accessing Java static and member fields.
For declaring dependencies on Java artifacts ABCL-ASDF, we have added an experimental syntax to address JRE/JDK artifacts via the ASDF:JDK-JAR class, as well as the ability to more finely control Maven dependencies with the ASDF:MVN-MODULE class.
A complete list of [changes][] may be viewed in the source repository.
[changes]: http://abcl.org/svn/tags/1.5.0/CHANGES
Binaries for this release may either be downloaded directly from http://abcl.org/releases/1.5.0, retrieved from the distributed Maven POM graph, or run from Docker via
docker run -it easye/abcl:1.5.0
Many thanks to all who have contributed to nurturing the Bear's execution of conforming ANSI Common Lisp on the Java Virtual Machine.
I have compared cl-test-grid results of 1.5.0 and 1.4.0: https://common-lisp.net/project/cl-test-grid/abcl/abcl-diff29.html
One difference is that some systems previously failed with ERROR are now CRASHed.
This means my lisp code doesn't catch the problem, neither with handler-bind, nor with (let ((*debugger-hook* ...)) )
You can reproduce this on cl-test-grid.cloud.efficito.com (both Mark and Erik can access through ssh testgrid@cl-test-grid.cloud.efficito.com).
We will wrap (ql:quickload :antik) with this code for capturing errors:
(block main (let ((*debugger-hook* (lambda (c me-or-my-encapsulation) (format t "MY: DEBUGGER INVOKED ~A~%" c) (return-from main "FAILED")))) (handler-bind ((serious-condition (lambda (c) (format t "MY: CAUGHT ~A~%" c) (return-from main "FAILED")))) (ql:quickload :antik))))
Full command:
java -jar ~/lisps/abcl-bin-1.4.0/abcl.jar --noinit --nosystem --batch --eval '(require :abcl-contrib)' --eval '(load "~/cl-test-grid/work-dir/agent/quicklisp/setup.lisp")' --eval '(block main (let ((*debugger-hook* (lambda (c me-or-my-encapsulation) (format t "MY: DEBUGGER INVOKED ~A~%" c) (return-from main "FAILED")))) (handler-bind ((serious-condition (lambda (c) (format t "MY: CAUGHT ~A~%" c) (return-from main "FAILED")))) (ql:quickload :antik))))'
This finishes as
jnaASDF could not load because org.armedbear.lisp.Go. MY: CAUGHT Error while trying to load definition for system gsll from pathname /home/testgrid/cl-test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/gsll-quicklisp-dd2e7673-git/gsll.asd: Error while trying to load definition for system cffi-libffi from pathname /home/testgrid/cl-test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/cffi_0.19.0/cffi-libffi.asd: org.armedbear.lisp.Go
Running the same command with ~/lisps/abcl-bin-1.5.0/abcl.jar doesn't catch the error. The console messages contain this:
[ ... many STYLE-WARNINGs ... ]
; Caught STYLE-WARNING: ; redefining UIOP/BACKWARD-DRIVER:VERSION-COMPATIBLE-P in #P"/home/testgrid/cl-test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/uiop-3.2.1/backward-driver.lisp" (previously defined in NIL)
.......... #<THREAD {181C196}>: Debugger invoked on condition of type JAVA-EXCEPTION Java exception 'java.lang.NullPointerException'. Restarts: 0: ABORT Abort thread. [1] CL-USER(1): #<THREAD {1C5E4BB}>: Debugger invoked on condition of type JAVA-EXCEPTION Java exception 'java.lang.NullPointerException'. .
[ ... more STYLE-WARNINGs ... ]
; Compilation unit finished ; Caught 13 WARNING conditions ; Caught 404 STYLE-WARNING conditions
; pkg-config libffi --cflags ; ERROR: Java exception 'java.io.IOException: Cannot run program "pkg-config": java.io.IOException: error=2, No such file or directory'.
; Attempting to continue anyway. ; cc -o /home/testgrid/.cache/common-lisp/abcl-1.5.0-fasl43-linux-x86/home/testgrid/cl-test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/cffi_0.19.0/libffi/libffi-types__grovel-tmpUS1C6HZ0.o -c -m32 -fPIC -I/home/testgrid/cl-test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/cffi_0.19.0/ /home/testgrid/.cache/common-lisp/abcl-1.5.0-fasl43-linux-x86/home/testgrid/cl-test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/cffi_0.19.0/libffi/libffi-types__grovel.c MY: CAUGHT Error while trying to load definition for system gsll from pathname /home/testgrid/cl-test-grid/work-dir/agent/quicklisp/dists/quicklisp/software/gsll-quicklisp-dd2e7673-git/gsll.asd: This JVM is missing the Inheritance for subprocess of standard output implementation.
I don't know whether the error capturing problem is new to ABCL 1.5.0 or it also was present in 1.4.0 but was hidden on ABCL 1.4.0 failing earlier during (ql:quckload :antik).
Best regards, - Anton
I also created a report with this type of difference (FAIL on 1.4.0 vs CRASH on 1.5.0) is filtered out: https://common-lisp.net/project/cl-test-grid/abcl/abcl-diff30.html
armedbear-devel@common-lisp.net