Version 0.18.0 ============== svn://common-lisp.net/project/armedbear/svn/tags/0.18.0/abcl (12 Jan, 2010) Features: * Programmable handling of out-of-memory and stack-overflow conditions * Faster initial startup (to support Google App Engine) * Faster special variable lookup * New interface for binding/unwinding special variables * Implement (SETF (STREAM-EXTERNAL-FORMAT ) ) * Implement (SETF (JAVA:JFIELD ) ) * Constant FORMAT strings get compiled for performance Bugs fixed: * FASLs are system default encoding dependent (ticket 77) * I/O of charset-unsupported characters causes infinite loop (ticket 76) * Memory leak where on unused functions with documentation * ANSI PRINT-LEVEL.* tests * Continued execution after failing to handle Throwable exceptions * Line numbers in generated java classes incorrect * JCALL, JNEW doesn't select best match when multiple applicable methods * STREAM-EXTERNAL-FORMAT always returns :DEFAULT, instead of actual format * REPL no longer hangs in Netbeans 6.[578] output window * Lambda-list variables replaced by surrounding SYMBOL-MACROLET Other changes * LispObject does not inherit from Lisp anymore * Many functions declared 'final' for performance improvement * SYSTEM:*SOURCE* FASLs for system files no longer refer to intermediate build location Version 0.17.0 ============== svn://common-lisp.net/project/armedbear/svn/tags/0.17.0/abcl (07 Nov, 2009) Features: * Google App Engine example project "Hello world" * Support for loading FASLs from JAR files * Checking of init-arguments for MAKE-INSTANCE (CLOS) * Support for *INVOKE-DEBUGGER-HOOK* (to support SLIME) * Reduced abcl.jar size (bytes and number of objects) * Faster access to locally bound specials (compiler efficiency) * Java property to print autoloading information: abcl.autoload.verbose * Experimental: binary fasls * Default Ant build target now "abcl.clean abcl.wrapper" (from abcl.help) * ConditionThrowable class renamed to ControlTransfer, parent class changed to RuntimeException (to make it unchecked) * API no longer throws ConditionThrowable/ControlTransfer Bugs fixed: * Better fix for #63: Prevent exceptions from happening (GO and RETURN-FROM) * Restore ability for ABCL to be build host for SBCL * CLOS performance improvements through looser COMPILE dependency * Compilation fix for highest SPEED setting (triggered by CL-BENCH) * COMPILE's use of temp files eliminated * OpenJDK on Darwin now correctly identified * Incorrect block names for SETF functions defined by LABELS * Fixed MULTIPLE-VALUE-CALL with more than 8 arguments * Incorrect identification of lexical scope on recursive TAGBODY/GO and BLOCK/RETURN-FROM blocks (compiler and interpreter) * Correctly return 65k in char-code-limit (was 256, incorrectly) * Fixes to be able to run the BEYOND-ANSI tests (part of ANSI test suite) * Compiler typo fix * Implementation of mutex functionality moved to lisp from Java * Functions handling #n= and #n# are now compiled * Autoload cleanups * System package creation cleaned up * CHAR-CODE-LIMIT correctly reflects CHAR-CODE maximum return value * Precompiler macroexpansion failure for macros expanding into special operators Version 0.16.1 ============== svn://common-lisp.net/project/armedbear/svn/tags/0.16.1/abcl (17 Oct, 2009) Bugs fixed: * More careful checking for null args in LispStackFrame * Honor appearance of &allow-other-keys in CLOS MAKE-INSTANCE * Fix #63: GO forms to non-existent TAGBODY labels would exit ABCL * Don't leak temp files during compilation Version 0.16.0 ============== (06 SEP 2009) svn://common-lisp.net/project/armedbear/svn/tags/0.16.0/abcl Summary of changes: ------------------ * Fixed generated wrapper for path names with spaces (Windows) * Fixed ticket #58: Inspection of Java objects in Lisp code * Restored functionality of the built-in profiler * Profiler extended with hot-spot counting (as opposed to call counting) * Stack sampling in the profiler moved to scheduler thread to reduce impact on the program execution thread * THE type-checking for the interpreter (for simple-enough type specifications) * Added structure argument type checking in structure slot accessor functions * Make GENSYM thread-safe * Various performance fixes found by running the raytracer from http://www.ffconsultancy.com/languages/ray_tracer/benchmark.html * Better initarg checking for make-instance and change-class Fixes ansi-test errors CHANGE-CLASS.1.11, MAKE-INSTANCE.ERROR.3, MAKE-INSTANCE.ERROR.4, CHANGE-CLASS.ERROR.4 and SHARED-INITIALIZE.ERROR.4 * Improve performance of StackFrames (Erik Huelsmann, Ville Voutilainen, with input from Peter Graves and Douglas Miles) * Improve performance of CLOS eql-specializers via cache (Anton Vodonosov) * 'build-from-lisp.sh' shell script (Tobias Rittweiler) * New threading primitives aligned with Java/JVM constructs (Erik Huelsmann) SYNCHRONIZED-ON OBJECT-NOTIFY OBJECT-NOTIFY-ALL * THREADS package created to hold threads related primitives: THREADP THREAD-UNLOCK THREAD-LOCK THREAD-NAME THREAD-ALIVE-P CURRENT-THREAD DESTROY-THREAD INTERRUPT-THREAD WITH-THREAD-LOCK MAKE-THREAD-LOCK MAKE-THREAD INTERRUPT-THREAD MAPCAR-THREADS GET-MUTEX MAKE-MUTEX WITH-MUTEX RELEASE-MUTEX These primitives are still part of the EXTENSIONS package but are now to be considered as deprecated, marked to be removed with 0.22 * Stacktraces now contain calls through Java code relevant to debugging (Tobias Rittweiler) Backtrace functionality been moved from EXT:BACKTRACE-AS-LIST to SYS:BACKTRACE to mark this changes. The methods SYS:FRAME-TO-STRING and SYS:FRAME-TO-LIST can be used to inspect the new LISP_STACK_FRAME and JAVA_STACK_FRAME objects * Various stream input performance optimizations * Fixed breakage when combining Gray streams and the pretty printer * Performance improvements for resolution of non-recursive #=n and #n# Version 0.15.0 ============== svn://common-lisp.net/project/armedbear/svn/tags/0.15.0/abcl (07 Jun, 2009) Summary of changes: ------------------- * 2 more MOP exported symbols to support Cells port * Updated FASL version * Support (pre)compilation of functions with a non-null lexical environment * Compiler and precompiler cleanups * 'rt.lisp' copy from ANSI test suite removed * Many documentation additions for the (pre)compiler * JSR-233 support improvements * Refactoring of classes: - deleted: CompiledFunction, ClosureTemplateFunction, CompiledClosure, Primitive0R, Primitive1R, Primitive2R - renamed: CompiledClosure [from ClosureTemplateFunction] * Compiler support for non-constant &key and &optional initforms * Fixed ticket #21: JVM stack inconsistency [due to use of RET/JSR] * Numerous special bindings handling fixes, especially with respect to (local) transfer of control with GO/RETURN-FROM * Paths retrieved using URL.getPath() require decoding (r11815) * Build doesn't work inside paths with spaces (r11813) * Compilation of export of a symbol not in *package* (r11808) * Moved compiler-related rewriting of forms from precompiler to compiler * Removed chained closures ('XEPs') in case of &optional arguments only * Loading of SLIME fails under specific conditions (r11791) * Binding of *FASL-ANONYMOUS-PACKAGE* breaks specials handling (r11783) * Fixed ANSI tests: DO-ALL-SYMBOLS.{6,9,12}, DEFINE-SETF-EXPANDER.{1,6,?}, MULTIPLE-VALUE-SETQ.{5,8}, SYMBOL-MACROLET.8, COMPILE-FILE.{17,18} * COMPILE and COMPILE-FILE second and third values after a failed invocation inside the same compilation-unit (r11769) * JCLASS on non-existing classes should signal an error (r11762) * Dotted lambda lists break interpretation (r11760) * Implementation of MACROEXPAND-ALL and COMPILER-LET (r11755) * Switch from casting to 'instanceof' for performance (r11754) * Google App Engine support: don't die if 'os.arch' isn't set (r11750) * Excessive stack use while resolving #n= and #n# (r11474) Version 0.14.1 ============== (5 Apr, 2009) svn://common-lisp.net/project/armedbear/svn/tags/0.14.1/abcl Summary of changes: ------------------- * Include this CHANGES file and scripting files in the tar and zip files Version 0.14.0 ============== (5 Apr, 2009) svn://common-lisp.net/project/armedbear/svn/tags/0.14.0/abcl Summary of changes: ------------------- * Increased clarity on licensing (Classpath exception mentioned in COPYING, removed LICENSE) * Resolved infinite recursion on TRACEing the compiler * Changes on the lisp based build system for parity with Ant * Fixed interpreter creation in Java Scripting * libabcl.so no longer created; it was solely about installing a SIGINT handler. Libraries should not do that. * boxing of LispObject descendants in JCALL/JCALL-RAW fixed * OpenBSD and NetBSD platform detection * fixed special bindings restores in compiled code for MULTIPLE-VALUE-BIND/LET/LET*/PROGV and function bodies * introduced variadic list() function to replace list1() ... list9() * fix return value type of ACOS with complex argument * fixed precision of multiplication of complex values * fixed use of COMPILE inside file compilation (i.e. COMPILE-FILE) * fix expansion of macros inside RESTART-CASE (fixes RESTART-CASE ANSI failures) * fix macroexpansion in the precompiler * Fixnum and Bignum now use a static factory method; constructors are now private -> increases chances of numbers being EQ * Code cleanup in EXPT to fix (EXPT ) Version 0.13.0 ============== (28 Feb, 2009) svn://common-lisp.net/project/armedbear/svn/tags/0.13.0/abcl Summary of changes: ------------------- * Separated J and ABCL into two trees * Many many compiler code cleanups * NetBeans project files * Support for CDR6 (See http://cdr.eurolisp.org/document/6/) * More efficient code emission in the compiler * Ant build targets for testing (abcl.test) * Use ConcurrentHashMap to store the lisp threads for increased performance * Fix adjustability of expressly adjustable arrays (ticket #28) * Fix calculation of upperbound on ASH in the compiler (don't calculate numbers too big, instead, return '*') * Introduce LispInteger as the super type of Bignum and Fixnum * Boxing/unboxing for SingleFloat and DoubleFloat values, inclusive of unboxed calculations * Fixed URL decoding bug in loadCompiledFunction (use java.net.URLDecoder) * Fixed line number counting * Inlining of simple calculations (+/-/*) * All static fields declared 'final' * Add support for java.lang.Long based on Bignum to our FFI