Hi everyone,
Corman Common Lisp 3.0 is a Win32 based implementation of Common Lisp.
The new version has improved in nearly every way. I am proud of Roger
Corman's work, and was glad to be able to contribute to the FFI
stability and the floating point performance.
Corman Lisp 3.0 Release Notes
Sept. 14, 2006
This release includes:
-Math and numeric code performance.
Completely rewritten math libraries and generated code for nearly all
math
operators. Previous versions of Corman Lisp were pretty well optimized
for
fixnums, but this version greatly improves floating point
performance and other numeric types. All the math code is in Lisp and
Corman Lisp assembler.
-Math and numeric code stability.
Improvements in stability in all math code, better interaction with
GC,
better multi-threading.
-Better error reporting and shutdown.
-Improved FFI, with improved stability with multiple threads and GC.
-Numerous bug fixes.
-Numerous ANSI compatibility improvements.
-Integration with .NET (Edi Weitz' RDNZL package is included).
(see Corman Lisp User Guide, chapter 25 for more details and link to
RDNZL
documentation)
-New CCL:MEMORY-REPORT function. (see Corman Lisp User Guide, chapter
24)
-New CCL:LISP-SHUTDOWN function. (see Corman Lisp User Guide, chapter
23)
-All Corman Lisp kernel code (as well as C++ samples and client apps)
compile
with Visual Studio 2005.
-Updated Zlib compression package (used by various exported Lisp
functions such
as COMPRESS-BYTES, as well as compression of Lisp image files and
compiled files)
from version 1.1.3 to 1.2.3.
-Most Lisp kernel function are now redefined in Lisp (or Corman Lisp
assembler).
They play by all the threading and GC rules, and stability is
improved.
-EQUAL, EQUALP, HASH-EQUAL, and HASH-EQUAL-P are now all defined for
foreign
pointers. This means two foreign pointers are EQUAL (and EQUALP) if
and only
if the pointers are the same (point to the same address). This allows
hashing
on OS handles and other foreign blocks.
-Garbage collection heap sizes may be set by the COM host when the
kernel is
initialized via new InitializeEx() function.
-Garbage collection fix: if call to SuspendThread() fails the collector
will keep
trying until the thread is suspended. We suspect this was the cause of
some
heap corruption problems, as Windows will fail the suspend attempt
occasionally.
-Auto-update feature (Corman Lisp User Guide, chapter 23)
This allows us to distribute bug fixes and feature upgrades
automatically via
the Corman Lisp web site.
----------------------------------
Improvements to Corman Lisp IDE:
(for details see Corman Lisp User Guide, chap. 7)
----------------------------------
-Text styles and colorization is improved and stability issues are
fixed.
-Context (right-click) menu includes Macroexpand and Macroexpand-1
options
which expand and pretty-print the currently selected expression to the
worksheet.
-Lisp Variables Display panel (by default, located in toolbar at top
right).
Lisp variables and expressions can get added here via context menu,
and update automatically.
-Added Declarations menu which displays all the declarations (DEFUN,
DEFMACRO, etc.)
in the current file, and selecting a declaration will jump to that
declaration.
-Added Symbols menu which shows you all the packages and all the
exported
symbols in a hierarchical manner. If you select one, it calls DESCRIBE
operator with that symbol. Tooltip for each symbol in the menus is
displayed
in the status bar as you glide over it tooltip shows values of
variables and
arguments to functions and macros).
-The History menu which shows recently used commands and lets you
select them.
Examples:
-New Othello game (in the examples/gui directory).
-Tim Kerchmar