source: trunk/abcl/CHANGES @ 12668

Last change on this file since 12668 was 12668, checked in by astalla, 13 years ago

Updated CHANGES for the 0.20 release

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