source: trunk/abcl/CHANGES @ 12687

Last change on this file since 12687 was 12687, checked in by Mark Evenson, 13 years ago

Updates in preparation for abcl-0.20.

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