Thursday, August 25, 2011

Building SBCL with ABCL

In revisiting our compiler for various improvements, it is helpful to have challenging compilations to perform so that we have some confidence we don't break things along the way. One of the more complicated tasks we've found is using ABCL as a build host to compile SBCL which has seemingly has lots of twisty little macros, all different. A while ago, maybe perhaps a year ago, we broke this behavior, closing off this avenue of testing.

But due to recent work, as of ABCL trunk r13538 we've restored this capability, once again making ABCL capable of bootstrapping an SBCL build. This may prove handy for individuals who wish to port SBCL to new platforms where there is a JVM available.

When we mentioned this on #lisp, we were asked how long it takes ABCL to build SBCL vs. SBCL building itself.

ABCL building SBCL
//build started:  Thu Aug 25 15:12:30 CEST 2011

//build finished: Thu Aug 25 16:49:30 CEST 2011
real 96m59.819s
user 37m35.702s
sys 32m44.641s

SBCL building SBCL
//build started:  Thu Aug 25 16:51:34 CEST 2011

//build finished: Thu Aug 25 17:07:47 CEST 2011
real 16m12.855s
user 4m40.804s
sys 3m28.145s

So, ABCL is roughly a factor of six slower building SBCL than SBCL itself.

Friday, August 19, 2011

Fixed: cl-unicode compilation

cl-unicode contains a few files which contain literal values which - when serialized to a string - result in strings larger than 64kB. Until today, this was a problem for ABCL because the limit for a constant string in a java class file is 64kB and all serialized objects used to be stored that way.

Today, this issue was fixed by storing strings over 64kB as resource files in the JARs being generated. The result is that cl-unicode and the libraries it is a dependency for - such as cl-interpol - can now successfully be compiled using ABCL.

Monday, August 15, 2011

Log tickets and edit the wiki using your Gmail account

Today, I installed the module AuthOpenID for Trac on ABCL's hosting environment. You can now log in and contribute to the wiki or log your tickets without owning a login!

Happy contributing!

ABCL 0.26.2 released

A new patch release is available for ABCL: 0.26.2. This release fixes an important regression on windows where ABCL couldn't load fasls with spaces in their filenames.

Additionally, the SETF expander for APPLY is fixed to allow use with non-CL functions to support CL-CONTAINERS - another small step to support the most popular libraries in Quicklisp.