Wednesday, June 21, 2023

A Midsummer's Eve with ABCL 1.9.2

On the threshold of the Northern Hemisphere's Midsummer's Eve, we unveil the second revision of the Tenth Edition of the Armed Bear Common Lisp implementation, viz. abcl-1.9.2.

Most notably, we are pleased to present the fruits of Alejandro Zamora Fonseca's labors on an interpreted implementation of CL:STEP with the first release of the ABCL-STEPPER contrib.  See <https://abcl.org/svn/tags/1.9.2/contrib/abcl-stepper/README.markdown> for more details.  This implementation was the subject of his demonstration <https://zenodo.org/record/7815887> as this year's European Lisp Symposium.

The POSIX-SYSCALLS contrib now provides the ability to set environment variables under UNIX systems <https://abcl.org/trac/changeset/15700>, as well as providing an example of how best to add abstract additional functionality to the core implementation.

This release also features a substantially re-worked Gray Stream implementation which fixes enough our implementation to be a first class citizen of SLIME's usage.  With the next release of SLIME, one will have to use abcl-1.9.2 in order to use the slime-repl.  See <https://github.com/slime/slime/pull/765> for more details.

The ASDF-JAR contrib has been restored to a usable functionality, which includes re-packaging of ASDF systems from within jar files as well as better abstraction for finding non-source artifacts.  Please refer to <https://gitlab.common-lisp.net/abcl/abcl/-/blob/master/contrib/asdf-jar/README.markdown> for a refresher on what facilities ASDF-JAR provides for the aspiring ASDF packager.

A complete list of changes may be viewed at <https://abcl.org/svn/tags/1.9.2/CHANGES>.

The release itself is available at <https://abcl.org/releases/1.9.2/>.

Thanks to everyone who continue to support the Bear.  Enjoy yer evening…

Thursday, February 23, 2023

ABCL 1.9.1 "never use a dot oh"

    If one has been hesitating about using the latest ABCL because one "never uses a dot oh release", we have now sloughed off abcl-1.9.1 for  your appraisal from the depths of a Bear's long winter nap.  Now one can use the somewhat less buggy version of the Tenth Edition of Armed Bear Common Lisp, available, as usual, at <https://abcl.org/releases/1.9.1/> or (shortly) via Maven <https://search.maven.org/artifact/org.abcl/abcl/1.9.1/jar>.

      Please note that when running on openjdk17 and later runtimes, there is quite a bit of necessary fiddling with command line arguments to"open" various modules to the Bear's introspective gaze. For example, see <https://abcl.org/svn/tags/1.9.1/ci/create-abcl-properties.bash> for the switches necessary to use CFFI to successfully run the CL+SSL test suite.

      As a reward for your patience, we mention the following humble improvements:

        CFFI compatibility

          We improved the compiler to use wide indices for stack frame locals  for the ALOAD, ASTORE, ILOAD, ISTORE, LLOAD, and LSTORE opcodes, which  among other goodness, allows CFFI-TESTS to compile again.  In addition, we have updated the jar artifact used by CFFI to jna-5.12.1 which includes support for native linkage on the Apple Silicon and  other exotic architectures.

            (Alan Ruttenberg) Ability to discriminate generic function execution on sub-types of MOP:SPECIALIZER

              Following SBCL, CCL, and ECL, the Bear now accepts subtypes of MOP:SPECIALIZER as a generic function discriminator.

                    Overhauled relationship to later openjdk threading models

                      Going back to the future of the original green thread models, recent openjdk releases have started offering lightweight threading implementations.  For the Bear, the ability to spawn virtual threads is indicated by the presence of :VIRTUAL-THREADS in CL:*FEATURES*. Setting the special THREADS:*THREADING-MODEL* to :VIRTUAL results in THREADS:MAKE-THREADS spawning virtual threads.  On some openjdks one may have to pass a command-line switch the JVM to enable virtual threading.

                        (Uthar) Implement array types for JAVA:JNEW-RUNTIME-CLASS

                          Support for creating synthetic Java classes at runtime via JAVA:JNEW-RUNTIME-CLASS has been improved by introducing machinery for dealing with array types.

                            (Alejandrozf) Compiler uses of signals to fallback to interpreted form

                              We fall back to use an interpreted form for compilation results larger than 65535 bytes, which fixes the loading of the FirCAS computer algebra system.

                                (Alejandrozf) Further fixes to COMPILE-FILE-PATHNAME

                                  We have restored the ability to compile Maxima by hopefully untanglingthe last kinks in the reworking of our COMPILE-FILE-PATHNAME logic.

                                    (Tarn W. Burton) Avoid NIL in simple LOOP from CL:FORMAT directives

                                      Simplify simple CL:LOOP requires only compound forms, in the place where returning NIL is neither permitted nor desired.


                                            Broad testing and tweaks across Java Long Term Support (LTS) binaries

                                              We have extensively tested against recent openjdk8, openjdk11,openjdk17, and openjdk19 binaries.  Unfortunately, for openjdk17+ runtimes one needs to pass additional runtime command line switches to the hosting JVM which "open" Java modules to reflective actions.


                                                    Fuller details

                                                      More details can be found in <https://abcl.org/svn/tags/1.9.1/CHANGES>.
                                                          Enjoy, and please CONS responsibly…

                                                          Friday, October 30, 2020

                                                          ABCL 1.8.0

                                                          Under the gathering storms of the Fall 2020, we are pleased to release ABCL 1.8.0 as the Ninth major revision of the implementation.

                                                          This Ninth Edition of the implementation now supports building and running on the recently released openjdk15 platform.  This release is intended as the last major release to support the openjdk6 openjdk7, and openjdk8 platforms, for with abcl-2.0.0 we intend to move the minimum platform to openjdk11 or better in order to efficiently implement atomic memory compare and swap operations.

                                                          With this release, the implementation of the EXT:JAR-PATHNAME and EXT:URL-PATHNAME subtypes of cl:PATHNAME has been overhauled to the point that arbitrary references to ZIP archives within archives now work for read-only stream operations (CL:PROBE-FILE CL:TRUENAME, CL:OPEN, CL:LOAD, CL:FILE-WRITE-DATE, CL:DIRECTORY, and CL:MERGE-PATHNAMES).  The previous versions of the implementation relied on the ability for java.net.URL to open streams of an archive within an archive, behavior that was silently dropped after Java 5, and consequently hasn't worked on common platforms supported by the Bear in a long time.  The overhaul of the implementation restores the feasibility of accessing fasls from within jar files.  Interested parties may examine the ASDF-JAR contrib for a recipe for packaging and accessing such artifacts.  Please consult the "Beyond ANSI: Pathnames" Section 4.2 of the User Manual for further details for how namestrings and components of PATHNAME objects have been revised.

                                                          A more comprehensive list of CHANGES is available with the source.




                                                              


                                                          Saturday, July 18, 2020

                                                          ABCL 1.7.1

                                                          With gentle prodding, the Bear has released ABCL 1.7.1, a decidedly minor release correcting a few bugs resulting from the overhaul of arrays specialized on unsigned byte types.

                                                          Wednesday, June 17, 2020

                                                          A Future History of Arming Bears

                                                          As part of the ongoing Online Lisp Meeting series, a recording of a talk about ABCL with the following precis is now available online:

                                                          With the recent releases of Armed Bear Common Lisp over the past six months, the future of extending the implementation has come into sharper focus.  The majority of this work has occurred within the head of one individual with little chance for public review and reflection. We believe that our externalized exposition of the reasoning behind these efforts will be of interest to those interested in the future history of Common Lisp implementations.

                                                          In the past few months, we released abcl-1.6.0 in which we extended the set of underlying Java Virtual Machines (JVM) that the implementation runs on to include openjdk11 and openjdk14 while maintaining compatibilty with openjdk6.  With the internal overhaul or arrays specialized on unsigned bytes in abcl-1.7.0, we made it possible to share such byte vectors with memory allocated outside of the hosting JVM via system interfaces such as malloc().  

                                                          We first present a brief prehistory on the Armed Bear Common Lisp Implementation.  Then, we first present the goals and challenges in affecting these changes within the ABCL codebase by showing examples from recent experience.  Then, we use this initial exposition to serve as a springboard to discuss outstanding needed changes in the ABCL 1 branch, and to outline some of the features intended to be present in ABCL 2, due to be released in the Fall of 2020.

                                                          A revised version of the notes for the presentation is available for deeper, asynchronous reflection. 

                                                          Thursday, June 4, 2020

                                                          The Bear Arms for Sharing Byte Vectors with 1.7.0

                                                          We are pleased to announce the immediate availability of the ABCL
                                                          1.7.0 release.

                                                          After consuming a steady diet of java.nio.ByteBuffer objects over the
                                                          past month, the Bear has managed to incorporate the use of these
                                                          abstractions for arrays specialized on the commonly used unsigned-byte
                                                          types (or (unsigned-byte 8) (unsigned-byte 16) (unsigned-byte 32)).
                                                          This replacement of the use arrays of primitive bytes is denoted by
                                                          the presence of the :NIO keyword in CL:*FEATURES*.

                                                          With this :NIO overhaul, we have extended our implementation of ANSI
                                                          Common Lisp CL:MAKE-ARRAY with two additional keywords,
                                                          viz. :NIO-BUFFER and :NIO-DIRECT.

                                                          Now, the :NIO-BUFFER keyword argument to CL:MAKE-ARRAY allows one to construct a vector directly utilizing the contents of an already allocated
                                                          java.nio.ByteBuffer object.  When combined with the ability of JNA to
                                                          allocate memory on the heap via a malloc() system call, we implemented
                                                          shareable byte vectors in CFFI-SYS:MAKE-SHAREABLE-BYTE-VECTOR.

                                                              (let* ((length 16)
                                                                     (byte-buffer (java:jstatic "allocate"
                                                                                                "java.nio.ByteBuffer" length)))
                                                                (make-array length :element-type ’(unsigned-byte 8) 
                                                                                   :nio-buffer byte-buffer))

                                                          When the :NIO-DIRECT keyword argument is called with a non-NIL value,
                                                          the implementation creates a byte vector with a "directly allocated"
                                                          java.nio.ByteBuffer object.  Such direct buffers typically have
                                                          somewhat higher allocation and deallocation costs than non-direct
                                                          buffers.  The contents of direct buffers may reside outside of the
                                                          normal garbage-collected heap, and so their impact upon the memory
                                                          footprint of an application might not be obvious. It is therefore
                                                          recommended that direct buffers be allocated primarily for large,
                                                          long-lived buffers that are subject to the underlying system’s native
                                                          I/O operations.  In general it is best to allocate direct buffers only
                                                          when they yield a measurable gain in program performance. In the near
                                                          future, we intend to explore the performance gains available CL:LOAD
                                                          by accessing direct buffers memory mapped to our on-disk fasl
                                                          representation.  Our fasls, as zipped archives, currently require a
                                                          new seek() from the beginning for each component they
                                                          contain.  With a memory mapped direct buffer we should be able to
                                                          simply read from the appropriate byte offset for each component.

                                                          A complete overview of the accumulated fixes and changes since the
                                                          previous release may be viewed in the file describing our CHANGES.


                                                          Tuesday, April 28, 2020

                                                          ABCL 1.6.1 Springs Forth

                                                          As augured, the Bear is pleased to join fellow open ANSI Common Lisp implementations CCL, ECL, and SBCL in publishing a new release around the online advent of the thirteenth European Lisp Symposium, ELS2020.

                                                          The ABCL 1.6.1 binaries and signatures are now available with their associated CHANGES.

                                                          Thanks to everyone involved in continuing to further the progress of our implementation.

                                                          Friday, April 24, 2020

                                                          ABCL-1.6.1 at ELSCONF

                                                          Rejoice! for the Bear has emerged from its Lair to slough off abcl.1.6.1 Please see CHANGES for a summary of improvements over the previous release.

                                                          Please get any outstanding patches in before April 27, 2020 as we will be releasing abcl-1.6.1 live "at" #ELSCONF.

                                                          Currently, the release candidate rc-0 has been committed to various cloud builds; we will be rendezvousing with the cryptographic signatures to do the actual public release on Monday. ABCL-BUILD doesn't have reproducible builds, but we're actively working on fixing that…

                                                          stay tuned until Monday Bear fans,

                                                          Thursday, November 28, 2019

                                                          Stuffing an @Armedbear

                                                          Notes on stuffing the Bear into a single jar with ABCL-AIO after T-day for Black Friday.

                                                          Happy Thanksgiving!

                                                          Friday, November 22, 2019

                                                          Unleashing the Bear past Java 11

                                                          Against the falling canvas of 2019, the Bear has freely thrust ABCL
                                                          1.6.0 onto the world stage.

                                                          This release fully supports building and running on Java 6, 7, 8, and
                                                          11 via the openjdk runtimes.  By building from our
                                                          source, it is rumored that the User may utilize additional
                                                          hosting platforms such as Java 13.

                                                          Support for Microsoft Windows platforms has not been thoroughly tested
                                                          at this point but we intend to add it our automated cloud based build
                                                          in the process of releasing a stabilizing ABCL 1.6.1 build due by the
                                                          end of this year.

                                                          Thanks to all past, present, and future contributors to the Bear;
                                                          here's to hackin' our way out of the prison of the Java
                                                          language for over a decade.


                                                          Thursday, November 14, 2019

                                                          Turning the Bear past Java 11

                                                          As the leaves fall in the Northern hemisphere, thoughts of the Bear
                                                          turn to a rumored permanent slumber, and a complete absence of the
                                                          possibility of new updates.  The Bear reviews all submitted
                                                          patches, so if you don't like the current implementation,
                                                          please get out and push.  Or pull?  Or fast forward? The Bear is
                                                          seemingly always confused with Git…

                                                          As previously rumored, patches for getting the Armed Bear

                                                          Common Lisp implementation running on Java 11 have landed in
                                                          the trunk.

                                                          Unless anyone objects strongly, we will release ABCL 1.6.0 as soon 

                                                          as possible with the intention to support the openjdk{6,7,8,11} runtimes.

                                                          After stabilizing the 1.6 branch with the inevitable necessary and
                                                          unknown updates, we can turn our attention to the ABCL 2.0 branch which
                                                          will introduce support for additional runtimes but drop support for emitting 

                                                          openjdk6 or openjdk7 compatible byte-code.

                                                          Stay tuned, Bear fans…

                                                          Sunday, June 11, 2017

                                                          ABCL 1.5.0

                                                          We are pleased 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.

                                                          Binaries for this release may either be downloaded directly from http://abcl.org/releases/1.5.0retrieved 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.

                                                          Wednesday, June 7, 2017

                                                          ABCL 1.5.0-rc-0 draft of upcoming User Manual

                                                          An unsigned ABCL 1.5.0-rc-0 release now available to test the distributions mechanisms for the upcoming ABCL-1.5.0 release.

                                                          http://abcl.org/trac/milestone/1.5.0

                                                          http://abcl.org/releases/1.5.0/

                                                          Draft of upcoming User Manual to which corrections are solicited.

                                                          http://abcl.org/releases/1.5.0/abcl-1.5.0-rc-0.pdf


                                                          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
                                                          =============
                                                          http://abcl.org/svn/tags/1.4.0/
                                                          http://abcl.org/trac/changeset/14892
                                                          https://gitlab.common-lisp.net/abcl/abcl/commit/6737f6f0d71d89aff9003a9bcf2983b4f768b4d3
                                                          https://github.com/easye/abcl/commit/6737f6f0d71d89aff9003a9bcf2983b4f768b4d3

                                                          08-OCT-2016

                                                          Enhancements
                                                          ============

                                                          * 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

                                                          Fixes
                                                          -----

                                                          * [r14863] RandomCharacterFile et. al.

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

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

                                                          Updates
                                                          ------

                                                          * asdf-3.1.7.26

                                                          * jna-4.2.2

                                                          Removed
                                                          -------

                                                          * [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
                                                          =============
                                                          http://abcl.org/svn/tags/1.3.3/
                                                          18-SEP-2015

                                                          Enhancements
                                                          ------------

                                                          *  [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.

                                                          Fixes
                                                          -----

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

                                                          * ANSI-TEST

                                                          ** 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
                                                             *DEFAULT-PATHNAME-DEFAULTS*.

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

                                                          * ASDF

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

                                                          * ABCL-ASDF

                                                          ** 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.
                                                            http://abcl.org/trac/changeset/14694
                                                          • 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]/[share]/[directories-and-files]
                                                            [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. 
                                                            http://abcl.org/trac/changeset/14657
                                                          Thanks to everyone who uses ABCL!

                                                          Sunday, March 16, 2014

                                                          abcl-1.3.0 released

                                                          abcl-1.3.0 is a feature release.

                                                          http://abcl.org/releases/1.3.0

                                                          15-MAR-2014
                                                          
                                                          ## 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
                                                              org.armedbear.lisp.LispStackFrame.UnavailableArgument.
                                                          
                                                              Contributed by Dmitry Nadezhin.
                                                          
                                                              [r14572]: http://abcl.org/trac/changeset/14572
                                                              [r14579]: http://abcl.org/trac/changeset/14579
                                                          
                                                          *  ASDF 3.0.1.94 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
                                                          
                                                          *  CL:DIRECTORY 
                                                          
                                                             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
                                                             Harmon.
                                                          
                                                             [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/