Tuesday, December 27, 2016

An Armed Bear in Hock with the Dock

This season finds us remembering Wilde's remark about fashion being so unbearable that it must be utterly destroyed every six months.  In that spirit, we submit to current fashion in documenting how ABCL repl may be obtained locally viz:

   docker run -it easye/abcl

Happy holidays!

One may need to explicitly update the base openjdk8 container that easye/abcl is based on via:

        docker pull easye/openjdk8
        docker run easye/abcl /usr/local/bin/abcl

[Docker Engine]: https://www.docker.com/products/docker-engine

If you want a specific packaging to add your own Java/Lisp artifacts, you may easily rebuild the Docker image that the container starts with from cloning the ABCL source and then issuing:

        docker pull easye/openjdk8
        docker build -t easye/abcl .

See http://abcl.org/svn/trunk/abcl/Dockerfile  for build instructions.

Saturday, October 8, 2016

ABCL 1.4.0

With a decided chill noticeable in the Northern Hemisphere, the Bear has finally sloughed off a long-needed release of ABCL.

With abcl-1.4.0, CFFI now works reliably allowing cross-platform linkage to native libraries to be initiated dynamically at runtime.  Examples of using CL-CUDA to follow as their authors have time to publish.

Considerable work and testing led by Elias Pipping with contributions from Olof-Joachim Frahm has led to a reasonable basis for UIOP/RUN-PROGRAM compatibility.

We have taken the time to learn enough of Maven to publish binary artifacts for both abcl.jar and abcl-contrib.jar that allow developers everywhere to more easily incorporate the Bear into their local Java build tool chains.

And we have tentatively surrendered to the current fashion by establishing GIT bridges to the ABCL source at https://gitlab.common-lisp.net/abcl/abcl and https://github.com/easye/abcl to more easily facilitate contributions from the community.

Version 1.4.0



* Consolidated RUN-PROGRAM fixes (ferada, pipping)

* Upstream consolidated patchset (ferada)

** [r14857] Support `FILE-POSITION` on string streams.
** [r14859] Add multiple disassembler selector.
** [r14860] Add EXTERNAL-ONLY option to APROPOS.
** [r14861] Fix nested classes from JARs not visible with JSS.

* [r14840-2] (Scott L. Burson) Introduced "time of time" semantics for
  {encode,decode}-universal time.

* EXTENSIONS:MAKE-TEMP-FILE now takes keyword arguments to specify
  values of the prefix and suffix strings to the underlying JVM
  implementation of java.io.File.createTempFile().

* [r14849] EXT:OS-{UNIX,WINDOWS}-P now provide a pre-ASDF runtime check on hosting platform


* [r14863] RandomCharacterFile et. al.

* [r14839] (JSS) Ensure the interpolation of Java symbol names as strings (alan ruttenberg)

* [r14889] Fix ANSI-TEST SXHASH.8 (dmiles)


* asdf-

* jna-4.2.2


* [r14885] ASDF-INSTALL was removed

Friday, September 18, 2015

abcl-1.3.3 released

In anticipation of the coming season, we have released abcl-1.3.3

Version 1.3.3


*  [r14802,r14813] Add character name for non-breaking space

   Use a human readable name for character 160, #\No-break_space,
   following sbcl, ccl and clisp. This permits the Quicklisp system
   spinneret to load.  The #\No-break_space name is a valid
   CHAR-NAME/NAME-CHAR pair, but is emitted directly as a glyph wrt. the
   current output encoding under the CL:FORMAT "~:c" directive as
   these implementations do by default.

   Thanks to Javier Olaechea.


* [r14808] CL:FILE-WRITE-DATE fixed for logical pathnames


** Update references to new git repository https://gitlab.common-lisp.net/ansi-test/ansi-test

** ABCL now runs the git master consolidated ANSI-TEST suite which
   features subdirectories and distinquished value for

** ABCL.TEST.ANSI:CLEAN-TESTS now acts recursively via appropiate
   Pathname wildcards to match new directory structure.


  Fix COMPILE-SYSTEM to offer full ANSI environment for ASDF and


** Use of Maven has been robustified.

*** [r14803] Fix usage with all known versions through maven-3.3.3

   Addresses http://abcl.org/trac/ticket/390

*** [r14806] Fix usage with specifying local Maven repository

** More complete attempt at re-initialization via

        (ABCL-ASDF:INIT :force t)

Tuesday, April 28, 2015

abcl-1.3.2 released

While basking in the lovely London weather and thoroughly enjoying last week's 8th European Lisp Symposium, the Bear managed to slough off a much needed spring cleaning maintenance release in the form of abcl-1.3.2.

The full description of changes can be found in <http://abcl.org/svn/tags/1.3.2/CHANGES>.

Friday, October 3, 2014

Short tip :: Booting quicklisp via SLIME

For the truly lazy, the following forms will quickly load Quicklisp:

   (require :abcl-contrib) (asdf:load-system :quicklisp-abcl)

Tuesday, April 29, 2014

An abcl-1.3.1 Spring Cleaning

The Bear came out of his cave on 30-APR-2014 for a spring cleaning.  He grumbled 
something about wanting to look good for Paris next week, and then went back inside
to sleep it off.
[binaries]: http://abcl.org/releases/1.3.1/     [source]: http://abcl.org/svn/tags/1.3.1/
  • The underlying Java Function Interface (JFI) now converts CL:T and CL:NIL to JAVA:+TRUE+ and JAVA:+FALSE+.  Users who wish to reference a JAVA:+NULL+ should do so explicitly.
  • Fix Uniform Naming Convention (aka "UNC" or "network") paths under Windows. http://abcl.org/trac/changeset/14659

    DIRECTORY now works again on UNC paths.

    UNC paths may be either specified with either back slash (#\\) orforward slash (#\/) doubled as the first character in a PATHNAME namestring.

    For the patterns in
    [server]  is stored as HOST.
    [share] is stored as DEVICE.
    [directories-and-files] gets parsed as per the normal rules under Windows.

    Mixing namestrings with both backslash and slash characters can lead to unpredictable results.  It is recommended not to use backslash characters in namestrings if it can be avoided.  The pathname printed representation is always normalized to using forward slash delimiters.
  • Find contrib based on system jar name. 
Thanks to everyone who uses ABCL!

Sunday, March 16, 2014

abcl-1.3.0 released

abcl-1.3.0 is a feature release.



## Features

*  Make LispStackFrame.UNAVAILABLE_ARG a singleton object,
   and lazily create the little used portions of the Lisp stack.

    Aggressively cache and control the use of memory by the underlying
    Lisp stack frame representation by introducing the private
    LispThread.StackFrame and LispThread.StackSegments classes.

    Contributed by Dmitry Nadezhin.

    LispStackFrame object are allocated on every
    LispThread.execute(...) .  However, they are seldom [accessed]
    ([... verify via] inspect[tion of the] stack trace). This patch
    delays allocation of LispStackFrame? objects until they are
    requested.  Raw information about stack frames is stored in
    stack. Stack is an Object[] array (more precisely a list of [...]4
    [Mib] Object[] arrays).

    ME: We are going to need a way to try to less agressively grab 4Mib
    chunks in low memory situations.

    Memory profiling of ABCL shows that the classes with largest
    allocation count are org.armedbear.lisp.LispStackFrame and

    Contributed by Dmitry Nadezhin.

    [r14572]: http://abcl.org/trac/changeset/14572
    [r14579]: http://abcl.org/trac/changeset/14579

*  ASDF shipped with the implementation

*  per function call stack and memory exception handler in CL:COMPILE

   Inline calls to jrun-exception-protected (used by handler-bind to
   catch out of memory conditions).  This commit saves generation
   roughly 50 cls files.

   [r14552]: http://abcl.org/trac/changeset/14552

*  SYS:SHA256 audited

    The functionality if the SYS:SHA256 algorithim has been audited for
    use on inputs of single for files with recently shipping ORCL Java 7
    implementations (through jdk-1.7.0_51).

    [r14582]:  http://abcl.org/trac/changeset/14582

* Connect to NetBeans controlled JDWP via SLIME

    The Netbeans IDE configuration now includes a way to connect to
    the running-under-jdb ABCL via SLIME.  One needs a version of
    SLIME able to be loaded from its 'swank.asd' definition.  

* Install 'abcl.jar' and 'abcl-contrib.jar' locally as Maven artifacts

    The Ant `abcl.mvn.install` target now installs build artifacts
    into the local Maven repository (Olof-Joachim Frahm)

    [r14579]: http://abcl.org/trac/changeset/14606

## Compatibility


   The implementation specific :RESOLVE-SYMLINKS argument to the ANSI
   DIRECTORY function has been changed to nil.  This implements
   behavior closer to SBCL and guarantees that a DIRECTORY operation
   will not signal a file error.

   [r14619]: http://abcl.org/trac/changeset/14619
   [ticket-340]: http://abcl.org/trac/ticket/340

## Fixes

*  Fix CL:SLEEP for intervals less than a millisecond.  

   For intervals less than or equal to a nanosecond, including an
   interval of zero, the current thread merely yields execution to
   other threads.

   [r14632]: http://abcl.org/trac/changeset/14632

## Tested

### "Java_HotSpot(TM)_64-Bit_Server_VM-Oracle_Corporation-1.7.0_51-b13" "x86_64-Mac_OS_X-10.9.1"

### "Java_HotSpot(TM)_64-Bit_Server_VM-Oracle_Corporation-1.8.0-b129" "x86_64-Mac_OS_X-10.9.2"

## Contrib

#### abcl-asdf

*  Now working with both Maven 3.0.x and 3.1.x.  Thanks to Anton for
   the help!

   [ticket-328]: http://abcl.org/trac/ticket/328

*  cache Maven dependency resolution to avoid repeated lookups.

   Instead of calling ABCL-ASDF:RESOLVE in both the ASDF COMPILE-OP
   and LOAD-OP, we now cache the result of invocation in COMPILE-OP
   and add this value in the LOAD-OP phase. Contributed by Cyrus

   [r14631]: http://abcl.org/trac/changeset/14631

#### jna
   Now references jna-4.0.0.  Some incompatibility with CFFI ([in
   progress with fixing upstream][cffi-easye]).

[cffi-easye]: http://github.com/easye/cffi/