CHANGES 17.2 KB
Newer Older
1 2
Version 0.19
============
3
svn://common-lisp.net/project/armedbear/svn/trunk/abcl
4 5
(Unreleased)

6 7
Features
--------
8

9 10 11 12
* [svn 12487] An initial port ASDF-INSTALL now forms the first ABCL
  contrib which are optionally built by the Ant target 'abcl.contrib'.
  ASDF-INSTALL is not expected to work very well under Windows at the
  moment.
13

14
* [svn 12447] REQUIRE now searches for ASDF systems.
15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
* [svn r12422] Jar pathname support extensively re-worked and tested
  so that LOAD, PROBE-FILE, TRUENAME, and WRITE-FILE-DATE all work
  both for local and remote jar pathnames of the form
  "jar:URL!/JAR-ENTRY".

  Loading ASDF systems from jar files are now possible.

  SYS:PATHNAME-JAR-P predicate signals whether a pathname refences a
  jar.
       
  NB: jar pathnames do *not* currently work as an argument to OPEN or
  DIRECTORY.

  SYS:UNZIP implemented to unpack ZIP files.  

  SYS:ZIP now has a three argument version for creating zip files with
  hierarchical entries.

* [svn r12414] SYS::%GET-OUTPUT-STREAM-ARRAY returns a Lisp byte array
  from a Java byte array stream.

* [svn 12402] ABCL.TEST.LISP:RUN-MATCHING will now execute that subset
  of tests which match a string.


Fixes/Optimizations
-------------------
43

44
* [svn r12485] Pathnames starting with "." can now have TYPE.
45

46 47
* [svn r12484] FASLS containing "." characters not used to indicate
  type (i.e. ".foo.bar.baz.abcl") can now be loaded.
48

49 50
* [svn 12422] Pathname.java URL contructor under Windows now properly
  interprets the drive letter.
51

52 53
* [svn r12449] The 'abcl.jar' produced by Netbeans now contains a valid
  manifest (found by Paul Griffionen).
54

55 56 57 58 59 60
* [svn r12441] ZipCache now caches all references to ZipFiles based on
  the last-modified time for local files.  Remote files are always
  retrieved due to problems in the underlying JVM code.  
  
  SYS:REMOVE-ZIP-CACHE implements a way to invalidate an entry given a
  pathname.
61

62 63
* [svn r12439] Remove duplication of java options in Windows
  'abcl.bat' script.
64

65 66
* [svn r12437] CHAR-CODE-LIMIT is the upper execlusive limit (found by
  Paul Griffionen).
67

68 69
* [svn r12436] Describe formatting missing a newline (reported by
  Blake McBride).
70

71 72 73 74 75 76 77 78 79 80
* [svn 12469] Ensure that FILE-ERROR always has a value (possibly NIL)
  for its PATHNAME member.

* [svn r14222] MERGE-PATHNAMES no longer potentially shares between
  result and *DEFAULT-PATHNAME-DEFAULTS*.

* [svn r12416] Fixed ANSI LAMBDA.nn test failures caused by errors in
  lambda inlining.

* [svn r12417] [ticket:83] Fix TRANSLATE-LOGICAL-PATHNAME regression.
81 82
  (Alan Ruttenberg).

83 84 85 86 87 88 89 90 91 92 93 94
* [svn r12412] Optimize memory efficiency of FORMAT by use of a
  hashtable rather than a CHAR-CODE-LIMIT array.

* [svn r12408] FIND-SYMBOL requires a  string argument.

* [svn r12400] Make NIL (as symbol) available to the compiler.

* [svn r12398] Move lambda list analysis to compile time where possible.

* [svn r12397] BROADCAST-STREAM obeys default external format fixing
  ANSI MAKE-BROADCAST-STREAM.8.

95
* [svn r12395] Improve arglist display for SLIME (Matthias Hölzl).
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180

* [svn r12394] Optimize array utilization in closures.

* [svn r12393] Optimize array functions in compiler which don't
  require clearing the VALUES array.

* [svn r12392] Optimize/normalize aspects of boot.lisp

* [svn r12391] Prevent duplicated subclasses form occuring.


Other
-----

* [svn 12447] SYS::*MODULE-PROVIDER-FUNCTION* now provides a mechanism
  to extend the REQUIRE resolver mechanism at runtime.

* [svn r12430] Ant based build no longer writes temporary files to
  contain the Lisp build instructions.

* [svn r12481] STANDARD-CLASS now has slots to be inherited by
  deriving metaclasses in support of the (in progress) work on
  metaclass.

* [svn r12425] No longer ignore the METACLASS defclass option in
  support of the (in progress) work on metaclass

* [svn r12422] SYS::*LOAD-TRUENAME-FASL* now contains the TRUENAME of
  the Java "*.cls" component we loading a packed FASL.

* [svn r12461] Human readable Java representations for class cast
  exceptions for NULL and UNBOUND values.

* [svn 12453 et. ff.] Large numbers of Java primitives have been
  declared in a way so that a stack trace provides a much more
  readable indication of what has been invoked.  Primitives which
  extend Primitive are prefixed with "pf_"; those which extend
  SpecialOperator are prefixed with "sf_".

* [svn 12422] The internal structure of a jar pathname has changed.
  Previously a pathname with a DEVICE that was itself a pathname
  referenced a jar.  This convention was not able to simultaneously
  represent both jar entries that were themselves jar files (as occurs
  with packed FASLs within JARs) and devices which refer to drive
  letters under Windows.  Now, a pathname which refers to a jar has a
  DEVICE which is a proper list of at most two entries.  The first
  entry always references the "outer jar", and the second entry (if it
  exists) references the "inner jar".

* [svn r12419] Ant 'abcl.release' target centralizes the build steps
  necessary for creating releases.

* [svn r12409] Compiler now rewrites function calls with (LAMBDA …) as
  the operator to LET* forms.

* [svn r12415] CLASS-FILE renamed to ABCL-CLASS-FILE to prepare for
  (in progress) reworking of Stream inheritance.

* [svn r123406] 'test/lisp/abcl/bugs.lisp' forms a default location to
  add unit tests for current bug testing.  The intention is to move
  these tests into the proper location elsewhere in the test suite
  once they have been fixed.

* [svn r124040] Java tests upgraded to use junit-4.8.1.  Netbeans
  project runtime classpath now uses compilation results before source
  directory, allowing the invocation of ABCL in interpreted mode if
  the Ant 'abcl.compile.lisp.skip' property is set.  Java unit tests
  for some aspects of jar pathname work added.

*  New toplevel 'doc' directory now contains:
   
   + [svn r12410] Design for the (in progress) reworking of the Stream
     inheritance.
   
   + [svn r12433] Design and current status for the re-implementation
     of jar pathnames.

* [svn r12402] Change ABCL unit tests to use the ABCL-TEST-LISP definition
  contained in 'abcl.asd'.  Fixed and renabled math-tests.  Added new
  tests for work related to handling jar pathnames. 

* [svn r12401] The REFERENCES-NEEDED-P field of the LOCAL-FUNCTION structure now
  tracks whether local functions need the capture of an actual
  function object.
   
181

182 183 184 185 186 187 188 189 190 191 192 193 194 195
Version 0.18.1
==============
svn://common-lisp.net/project/armedbear/svn/tags/0.18.1/abcl
(17 Jan, 2010)

Features:

 * Support for printing java objects with print-object
 * Support for disassembling proxied functions

Bugs fixed:

 * maxima works again

196 197
Version 0.18.0
==============
198 199
svn://common-lisp.net/project/armedbear/svn/tags/0.18.0/abcl
(12 Jan, 2010)
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222


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 <stream>) <format>)
 * Implement (SETF (JAVA:JFIELD <object>) <value>)
 * 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
223
 * REPL no longer hangs in Netbeans 6.[578] output window
224
 * Lambda-list variables replaced by surrounding SYMBOL-MACROLET
225 226 227 228 229 230


Other changes

 * LispObject does not inherit from Lisp anymore
 * Many functions declared 'final' for performance improvement
231
 * SYSTEM:*SOURCE* FASLs for system files no longer refer to intermediate build location
232 233


234
Version 0.17.0
235
==============
236 237 238
svn://common-lisp.net/project/armedbear/svn/tags/0.17.0/abcl
(07 Nov, 2009)

239

240
Features:
241

242
  * Google App Engine example project "Hello world"
243 244 245
  * Support for loading FASLs from JAR files
  * Checking of init-arguments for MAKE-INSTANCE (CLOS)
  * Support for *INVOKE-DEBUGGER-HOOK* (to support SLIME)
246 247 248 249 250
  * 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)
251 252 253
  * ConditionThrowable class renamed to ControlTransfer,
      parent class changed to RuntimeException (to make it unchecked)
  * API no longer throws ConditionThrowable/ControlTransfer
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268


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)
269
  * Fixes to be able to run the BEYOND-ANSI tests (part of ANSI test suite)
270 271 272 273 274 275
  * 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
276 277
  * Precompiler macroexpansion failure for macros expanding into
      special operators
278 279 280 281 282 283 284 285


Version 0.16.1
==============
svn://common-lisp.net/project/armedbear/svn/tags/0.16.1/abcl
(17 Oct, 2009)

Bugs fixed:
286 287 288

  * More careful checking for null args in LispStackFrame
  * Honor appearance of &allow-other-keys in CLOS MAKE-INSTANCE
289
  * Fix #63: GO forms to non-existent TAGBODY labels would exit ABCL
290
  * Don't leak temp files during compilation
291 292

Version 0.16.0
293
==============
294 295 296
(06 SEP 2009)
svn://common-lisp.net/project/armedbear/svn/tags/0.16.0/abcl

297
  Summary of changes:
298
  ------------------
299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314
  * 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
315 316
  * Improve performance of StackFrames (Erik Huelsmann, Ville Voutilainen,
    with input from Peter Graves and Douglas Miles)
317 318
  * Improve performance of CLOS eql-specializers via cache (Anton Vodonosov)
  * 'build-from-lisp.sh' shell script (Tobias Rittweiler)
319
  * New threading primitives aligned with Java/JVM constructs (Erik Huelsmann)
320 321 322 323

      SYNCHRONIZED-ON
      OBJECT-NOTIFY
      OBJECT-NOTIFY-ALL
324
  * THREADS package created to hold threads related primitives:
325 326 327 328 329 330

      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
331

332 333 334 335
      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
336 337 338 339 340 341 342 343 344 345 346
    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#
347

348

349
Version 0.15.0
350
==============
351
svn://common-lisp.net/project/armedbear/svn/tags/0.15.0/abcl
352
(07 Jun, 2009)
353 354

 Summary of changes:
355
 -------------------
356
  * 2 more MOP exported symbols to support Cells port
357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
  * 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
391
==============
392 393 394 395
(5 Apr, 2009)
svn://common-lisp.net/project/armedbear/svn/tags/0.14.1/abcl

 Summary of changes:
396
 -------------------
397 398 399
  * Include this CHANGES file and scripting files in the tar and zip files


400
Version 0.14.0
401
==============
402
(5 Apr, 2009)
403 404 405
svn://common-lisp.net/project/armedbear/svn/tags/0.14.0/abcl

 Summary of changes:
406
 -------------------
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
  * 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
428
  * Code cleanup in EXPT to fix (EXPT <any-number> <Bignum>)
429 430 431


Version 0.13.0
432
==============
433 434 435 436
(28 Feb, 2009)
svn://common-lisp.net/project/armedbear/svn/tags/0.13.0/abcl

 Summary of changes:
437
 -------------------
438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456
  * 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