source: branches/0.19.x/abcl/CHANGES

Last change on this file was 12537, checked in by ehuelsmann, 14 years ago

Backport PROGV fix (r12526) and its CHANGES description.

  • Property svn:eol-style set to native
File size: 18.3 KB
Line 
1Version 0.19
2============
3svn://common-lisp.net/project/armedbear/svn/trunk/abcl
4(14 Mar, 2010)
5
6Features
7--------
8
9* [svn r12518] *DISASSEMBLER* may now contain a hook which returns the
10  command to disassemble compiled functions.
11
12* [svn r12516] An implementation of user-extensible sequences as
13  proposed in Christopher Rhodes, "User-extensible sequences in Common
14  Lisp", Proc. of the 2007 International Lisp Conference.
15
16* [svn r12513] Implement SYS:SRC and SYS:JAVA logical pathname
17  translations for system Lisp source and the root of the Java package
18  structure, respectively.
19
20* [svn r12505] All calls to anonymous functions and local functions that have
21  been declared inline are now converted to LET* forms, reducing stack usage
22  and the number of generated classes.
23
24* [svn r12487] An initial port ASDF-INSTALL now forms the first ABCL
25  contrib.  Such contribs are optionally built by the Ant target
26  'abcl.contrib'.  ASDF-INSTALL is not expected to work very well
27  under Windows in its present state.
28
29* [svn r12447] [ticket:80] REQUIRE now searches for ASDF systems.
30
31* [svn r12422] Jar pathname support extensively re-worked and tested
32  so that LOAD, PROBE-FILE, TRUENAME, DIRECTORY, and WRITE-FILE-DATE
33  all work both for local and remote jar pathnames of the form
34  "jar:URL!/JAR-ENTRY".
35
36  The loading ASDF systems from jar files is now possible.
37
38  SYS:PATHNAME-JAR-P predicate signals whether a pathname references a
39  jar.
40
41  NB: jar pathnames do *not* currently work as an argument to OPEN.
42
43  SYS:UNZIP implemented to unpack ZIP files.
44
45  SYS:ZIP now has a three argument version for creating zip files with
46  hierarchical entries.
47
48* [svn r12450] Collect unprocessed command-line arguments in
49  EXT:*COMMAND-LINE-ARGUMENT-LIST* (Dennis Lambe Jr.)
50
51* [svn r12414] SYS::%GET-OUTPUT-STREAM-ARRAY returns a Lisp byte array
52  from a Java byte array stream.
53
54* [svn 12402] ABCL.TEST.LISP:RUN-MATCHING will now execute that subset
55  of tests which match a string.
56
57
58Fixes/Optimizations
59-------------------
60
61* [svn r12526] Unbinding of PROGV bound variables on local transfer
62  of control (within-java-function jump targets)
63
64* [svn r12510] The new ansi-test WITH-STANDARD-IO-SYNTAX.23 passes.
65  Our with-standard-io-syntax implementation now correctly resets all necessary
66  pprint variables. Patch by Douglas R. Miles, thanks for the contribution!
67
68* [svn r12485] Pathnames starting with "." can now have TYPE.
69
70* [svn r12484] FASLs containing "." characters not used to indicate
71  type (i.e. ".foo.bar.baz.abcl") can now be loaded.
72
73* [svn r12422] Pathname.java URL contructor under Windows now properly
74  interprets the drive letter.
75
76* [svn r12449] The 'abcl.jar' produced by Netbeans now contains a valid
77  manifest (found by Paul Griffionen).
78
79* [svn r12441] ZipCache now caches all references to ZipFiles based on
80  the last-modified time for local files.  Remote files are always
81  retrieved due to problems in the underlying JVM code. 
82 
83  SYS:REMOVE-ZIP-CACHE implements a way to invalidate an entry given a
84  pathname.
85
86* [svn r12439] Remove duplication of java options in Windows
87  'abcl.bat' script.
88
89* [svn r12437] CHAR-CODE-LIMIT is the upper execlusive limit (found by
90  Paul Griffionen).
91
92* [svn r12436] Describe formatting was missing a newline (reported by
93  Blake McBride).
94
95* [svn 12469] Ensure that FILE-ERROR always has a value (possibly NIL)
96  for its PATHNAME member.
97
98* [svn r14222] MERGE-PATHNAMES no longer potentially shares structure
99  between its result and *DEFAULT-PATHNAME-DEFAULTS*.
100
101* [svn r12416] Fixed ANSI LAMBDA.nn test failures caused by errors in
102  lambda inlining.
103
104* [svn r12417] [ticket:83] Fix TRANSLATE-LOGICAL-PATHNAME regression.
105  (Alan Ruttenberg).
106
107* [svn r12412] Optimize memory efficiency of FORMAT by use of a
108  hashtable rather than a CHAR-CODE-LIMIT array.
109
110* [svn r12408] FIND-SYMBOL requires a  string argument.
111
112* [svn r12400] Make NIL (as symbol) available to the compiler.
113
114* [svn r12398] Move lambda list analysis to compile time where possible.
115
116* [svn r12397] BROADCAST-STREAM obeys default external format fixing
117  ANSI MAKE-BROADCAST-STREAM.8.
118
119* [svn r12395] Improve arglist display for SLIME (Matthias Hölzl).
120
121* [svn r12394] Optimize array utilization in closures.
122
123* [svn r12393] Optimize array functions in compiler which don't
124  require clearing the VALUES array.
125
126* [svn r12392] Optimize/normalize aspects of boot.lisp
127
128* [svn r12391] Prevent duplicated subclasses form occuring.
129
130
131Other
132-----
133
134* [svn r12447] SYS::*MODULE-PROVIDER-FUNCTION* now provides a mechanism
135  to extend the REQUIRE resolver mechanism at runtime.
136
137* [svn r12430] Ant based build no longer writes temporary files to
138  contain the Lisp build instructions.
139
140* [svn r12481] STANDARD-CLASS now has slots to be inherited by
141  deriving metaclasses in support of the (in progress) work on
142  metaclass.
143
144* [svn r12425] No longer ignore the METACLASS defclass option in
145  support of the (in progress) work on metaclass
146
147* [svn r12422] SYS::*LOAD-TRUENAME-FASL* now contains the TRUENAME of
148  the Java "*.cls" component when loading a packed FASL.
149
150* [svn r12461] Human readable Java representations for class cast
151  exceptions for NULL and UNBOUND values.
152
153* [svn r12453 et. ff.] Large numbers of the implementation of Java
154  primitives have been declared in a way so that a stack trace
155  provides a much more readable indication of what has been invoked.
156  Primitives which extend Primitive are prefixed with "pf_"; those
157  which extend SpecialOperator are prefixed with "sf_".
158
159* [svn r12422] The internal structure of a jar pathname has changed.
160  Previously a pathname with a DEVICE that was itself a pathname
161  referenced a jar.  This convention was not able to simultaneously
162  represent both jar entries that were themselves jar files (as occurs
163  with packed FASLs within JARs) and devices which refer to drive
164  letters under Windows.  Now, a pathname which refers to a jar has a
165  DEVICE which is a proper list of at most two entries.  The first
166  entry always references the "outer jar", and the second entry (if it
167  exists) references the "inner jar".
168
169* [svn r12419] Ant 'abcl.release' target centralizes the build steps
170  necessary for creating releases.
171
172* [svn r12409] Compiler now rewrites function calls with (LAMBDA 
) as
173  the operator to LET* forms.
174
175* [svn r12415] CLASS-FILE renamed to ABCL-CLASS-FILE to prepare for
176  (in progress) reworking of Stream inheritance.
177
178* [svn r123406] 'test/lisp/abcl/bugs.lisp' forms a default location to
179  add unit tests for current bug testing.  The intention is to move
180  these tests into the proper location elsewhere in the test suite
181  once they have been fixed.
182
183* [svn r124040] Java tests upgraded to use junit-4.8.1.  Netbeans
184  project runtime classpath now uses compilation results before source
185  directory, allowing the invocation of ABCL in interpreted mode if
186  the Ant 'abcl.compile.lisp.skip' property is set.  Java unit tests
187  for some aspects of jar pathname work added.
188
189*  New toplevel 'doc' directory now contains:
190   
191   + [svn r12410] Design for the (in progress) reworking of the Stream
192     inheritance.
193   
194   + [svn r12433] Design and current status for the re-implementation
195     of jar pathnames.
196
197* [svn r12402] Change ABCL unit tests to use the ABCL-TEST-LISP definition
198  contained in 'abcl.asd'.  Fixed and renabled math-tests.  Added new
199  tests for work related to handling jar pathnames.
200
201* [svn r12401] The REFERENCES-NEEDED-P field of the LOCAL-FUNCTION structure now
202  tracks whether local functions need the capture of an actual
203  function object.
204   
205
206Version 0.18.1
207==============
208svn://common-lisp.net/project/armedbear/svn/tags/0.18.1/abcl
209(17 Jan, 2010)
210
211Features:
212
213 * Support for printing java objects with print-object
214 * Support for disassembling proxied functions
215
216Bugs fixed:
217
218 * maxima works again
219
220Version 0.18.0
221==============
222svn://common-lisp.net/project/armedbear/svn/tags/0.18.0/abcl
223(12 Jan, 2010)
224
225
226Features:
227
228 * Programmable handling of out-of-memory and stack-overflow conditions
229 * Faster initial startup (to support Google App Engine)
230 * Faster special variable lookup
231 * New interface for binding/unwinding special variables
232 * Implement (SETF (STREAM-EXTERNAL-FORMAT <stream>) <format>)
233 * Implement (SETF (JAVA:JFIELD <object>) <value>)
234 * Constant FORMAT strings get compiled for performance
235
236
237Bugs fixed:
238
239 * FASLs are system default encoding dependent (ticket 77)
240 * I/O of charset-unsupported characters causes infinite loop (ticket 76)
241 * Memory leak where on unused functions with documentation
242 * ANSI PRINT-LEVEL.* tests
243 * Continued execution after failing to handle Throwable exceptions
244 * Line numbers in generated java classes incorrect
245 * JCALL, JNEW doesn't select best match when multiple applicable methods
246 * STREAM-EXTERNAL-FORMAT always returns :DEFAULT, instead of actual format
247 * REPL no longer hangs in Netbeans 6.[578] output window
248 * Lambda-list variables replaced by surrounding SYMBOL-MACROLET
249
250
251Other changes
252
253 * LispObject does not inherit from Lisp anymore
254 * Many functions declared 'final' for performance improvement
255 * SYSTEM:*SOURCE* FASLs for system files no longer refer to intermediate build location
256
257
258Version 0.17.0
259==============
260svn://common-lisp.net/project/armedbear/svn/tags/0.17.0/abcl
261(07 Nov, 2009)
262
263
264Features:
265
266  * Google App Engine example project "Hello world"
267  * Support for loading FASLs from JAR files
268  * Checking of init-arguments for MAKE-INSTANCE (CLOS)
269  * Support for *INVOKE-DEBUGGER-HOOK* (to support SLIME)
270  * Reduced abcl.jar size (bytes and number of objects)
271  * Faster access to locally bound specials (compiler efficiency)
272  * Java property to print autoloading information: abcl.autoload.verbose
273  * Experimental: binary fasls
274  * Default Ant build target now "abcl.clean abcl.wrapper" (from abcl.help)
275  * ConditionThrowable class renamed to ControlTransfer,
276      parent class changed to RuntimeException (to make it unchecked)
277  * API no longer throws ConditionThrowable/ControlTransfer
278
279
280Bugs fixed:
281
282  * Better fix for #63: Prevent exceptions from happening (GO and RETURN-FROM)
283  * Restore ability for ABCL to be build host for SBCL
284  * CLOS performance improvements through looser COMPILE dependency
285  * Compilation fix for highest SPEED setting (triggered by CL-BENCH)
286  * COMPILE's use of temp files eliminated
287  * OpenJDK on Darwin now correctly identified
288  * Incorrect block names for SETF functions defined by LABELS
289  * Fixed MULTIPLE-VALUE-CALL with more than 8 arguments
290  * Incorrect identification of lexical scope on recursive TAGBODY/GO
291    and BLOCK/RETURN-FROM blocks (compiler and interpreter)
292  * Correctly return 65k in char-code-limit (was 256, incorrectly)
293  * Fixes to be able to run the BEYOND-ANSI tests (part of ANSI test suite)
294  * Compiler typo fix
295  * Implementation of mutex functionality moved to lisp from Java
296  * Functions handling #n= and #n# are now compiled
297  * Autoload cleanups
298  * System package creation cleaned up
299  * CHAR-CODE-LIMIT correctly reflects CHAR-CODE maximum return value
300  * Precompiler macroexpansion failure for macros expanding into
301      special operators
302
303
304Version 0.16.1
305==============
306svn://common-lisp.net/project/armedbear/svn/tags/0.16.1/abcl
307(17 Oct, 2009)
308
309Bugs fixed:
310
311  * More careful checking for null args in LispStackFrame
312  * Honor appearance of &allow-other-keys in CLOS MAKE-INSTANCE
313  * Fix #63: GO forms to non-existent TAGBODY labels would exit ABCL
314  * Don't leak temp files during compilation
315
316Version 0.16.0
317==============
318(06 SEP 2009)
319svn://common-lisp.net/project/armedbear/svn/tags/0.16.0/abcl
320
321  Summary of changes:
322  ------------------
323  * Fixed generated wrapper for path names with spaces (Windows)
324  * Fixed ticket #58: Inspection of Java objects in Lisp code
325  * Restored functionality of the built-in profiler
326  * Profiler extended with hot-spot counting (as opposed to call counting)
327  * Stack sampling in the profiler moved to scheduler thread to
328    reduce impact on the program execution thread
329  * THE type-checking for the interpreter
330    (for simple-enough type specifications)
331  * Added structure argument type checking in structure slot
332    accessor functions
333  * Make GENSYM thread-safe
334  * Various performance fixes found by running the raytracer
335    from http://www.ffconsultancy.com/languages/ray_tracer/benchmark.html
336  * Better initarg checking for make-instance and change-class
337    Fixes ansi-test errors CHANGE-CLASS.1.11, MAKE-INSTANCE.ERROR.3,
338    MAKE-INSTANCE.ERROR.4, CHANGE-CLASS.ERROR.4 and SHARED-INITIALIZE.ERROR.4
339  * Improve performance of StackFrames (Erik Huelsmann, Ville Voutilainen,
340    with input from Peter Graves and Douglas Miles)
341  * Improve performance of CLOS eql-specializers via cache (Anton Vodonosov)
342  * 'build-from-lisp.sh' shell script (Tobias Rittweiler)
343  * New threading primitives aligned with Java/JVM constructs (Erik Huelsmann)
344
345      SYNCHRONIZED-ON
346      OBJECT-NOTIFY
347      OBJECT-NOTIFY-ALL
348  * THREADS package created to hold threads related primitives:
349
350      THREADP THREAD-UNLOCK THREAD-LOCK THREAD-NAME THREAD-ALIVE-P
351      CURRENT-THREAD DESTROY-THREAD INTERRUPT-THREAD WITH-THREAD-LOCK
352      MAKE-THREAD-LOCK MAKE-THREAD INTERRUPT-THREAD
353
354      MAPCAR-THREADS
355
356      GET-MUTEX MAKE-MUTEX WITH-MUTEX RELEASE-MUTEX
357
358    These primitives are still part of the EXTENSIONS package but are
359    now to be considered as deprecated, marked to be removed with
360    0.22
361  * Stacktraces now contain calls through Java code relevant to
362    debugging (Tobias Rittweiler)
363
364    Backtrace functionality been moved from EXT:BACKTRACE-AS-LIST to
365    SYS:BACKTRACE to mark this changes.  The methods SYS:FRAME-TO-STRING
366    and SYS:FRAME-TO-LIST can be used to inspect the new
367    LISP_STACK_FRAME and JAVA_STACK_FRAME objects
368  * Various stream input performance optimizations
369  * Fixed breakage when combining Gray streams and the pretty printer
370  * Performance improvements for resolution of non-recursive #=n and #n#
371
372
373Version 0.15.0
374==============
375svn://common-lisp.net/project/armedbear/svn/tags/0.15.0/abcl
376(07 Jun, 2009)
377
378 Summary of changes:
379 -------------------
380  * 2 more MOP exported symbols to support Cells port
381  * Updated FASL version
382  * Support (pre)compilation of functions with a non-null lexical environment
383  * Compiler and precompiler cleanups
384  * 'rt.lisp' copy from ANSI test suite removed
385  * Many documentation additions for the (pre)compiler
386  * JSR-233 support improvements
387  * Refactoring of classes:
388   - deleted: CompiledFunction, ClosureTemplateFunction, CompiledClosure,
389              Primitive0R, Primitive1R, Primitive2R
390   - renamed: CompiledClosure [from ClosureTemplateFunction]
391  * Compiler support for non-constant &key and &optional initforms
392  * Fixed ticket #21: JVM stack inconsistency [due to use of RET/JSR]
393  * Numerous special bindings handling fixes, especially with respect
394    to (local) transfer of control with GO/RETURN-FROM
395  * Paths retrieved using URL.getPath() require decoding (r11815)
396  * Build doesn't work inside paths with spaces (r11813)
397  * Compilation of export of a symbol not in *package* (r11808)
398  * Moved compiler-related rewriting of forms from precompiler to compiler
399  * Removed chained closures ('XEPs') in case of &optional arguments only
400  * Loading of SLIME fails under specific conditions (r11791)
401  * Binding of *FASL-ANONYMOUS-PACKAGE* breaks specials handling (r11783)
402  * Fixed ANSI tests: DO-ALL-SYMBOLS.{6,9,12}, DEFINE-SETF-EXPANDER.{1,6,?},
403      MULTIPLE-VALUE-SETQ.{5,8}, SYMBOL-MACROLET.8, COMPILE-FILE.{17,18}
404  * COMPILE and COMPILE-FILE second and third values after a failed
405      invocation inside the same compilation-unit (r11769)
406  * JCLASS on non-existing classes should signal an error (r11762)
407  * Dotted lambda lists break interpretation (r11760)
408  * Implementation of MACROEXPAND-ALL and COMPILER-LET (r11755)
409  * Switch from casting to 'instanceof' for performance (r11754)
410  * Google App Engine support: don't die if 'os.arch' isn't set (r11750)
411  * Excessive stack use while resolving #n= and #n# (r11474)
412
413
414Version 0.14.1
415==============
416(5 Apr, 2009)
417svn://common-lisp.net/project/armedbear/svn/tags/0.14.1/abcl
418
419 Summary of changes:
420 -------------------
421  * Include this CHANGES file and scripting files in the tar and zip files
422
423
424Version 0.14.0
425==============
426(5 Apr, 2009)
427svn://common-lisp.net/project/armedbear/svn/tags/0.14.0/abcl
428
429 Summary of changes:
430 -------------------
431  * Increased clarity on licensing (Classpath exception
432     mentioned in COPYING, removed LICENSE)
433  * Resolved infinite recursion on TRACEing the compiler
434  * Changes on the lisp based build system for parity with Ant
435  * Fixed interpreter creation in Java Scripting
436  * libabcl.so no longer created; it was solely about installing
437     a SIGINT handler. Libraries should not do that.
438  * boxing of LispObject descendants in JCALL/JCALL-RAW fixed
439  * OpenBSD and NetBSD platform detection
440  * fixed special bindings restores in compiled code for
441     MULTIPLE-VALUE-BIND/LET/LET*/PROGV and function bodies
442  * introduced variadic list() function to replace list1() ... list9()
443  * fix return value type of ACOS with complex argument
444  * fixed precision of multiplication of complex values
445  * fixed use of COMPILE inside file compilation (i.e. COMPILE-FILE)
446  * fix expansion of macros inside RESTART-CASE
447     (fixes RESTART-CASE ANSI failures)
448  * fix macroexpansion in the precompiler
449  * Fixnum and Bignum now use a static factory method;
450      constructors are now private -> increases chances of numbers
451      being EQ
452  * Code cleanup in EXPT to fix (EXPT <any-number> <Bignum>)
453
454
455Version 0.13.0
456==============
457(28 Feb, 2009)
458svn://common-lisp.net/project/armedbear/svn/tags/0.13.0/abcl
459
460 Summary of changes:
461 -------------------
462  * Separated J and ABCL into two trees
463  * Many many compiler code cleanups
464  * NetBeans project files
465  * Support for CDR6 (See http://cdr.eurolisp.org/document/6/)
466  * More efficient code emission in the compiler
467  * Ant build targets for testing (abcl.test)
468  * Use ConcurrentHashMap to store the lisp threads for increased performance
469  * Fix adjustability of expressly adjustable arrays (ticket #28)
470  * Fix calculation of upperbound on ASH in the compiler
471     (don't calculate numbers too big, instead, return '*')
472  * Introduce LispInteger as the super type of Bignum and Fixnum
473  * Boxing/unboxing for SingleFloat and DoubleFloat values,
474      inclusive of unboxed calculations
475  * Fixed URL decoding bug in loadCompiledFunction (use java.net.URLDecoder)
476  * Fixed line number counting
477  * Inlining of simple calculations (+/-/*)
478  * All static fields declared 'final'
479  * Add support for java.lang.Long based on Bignum to our FFI
480
Note: See TracBrowser for help on using the repository browser.