[plt-scheme] PLT Scheme v350
PLT Scheme version 350 is now available from
http://download.plt-scheme.org/
Compared to version 301 (the previous stable release), much has
changed in the underlying infrastructure of PLT Scheme, but relatively
little has changed in the supported languages and libraries.
Changes:
* New installation process and filesystem layout: the Mac OS X
installation is drag-and-drop, the Unix installation matches FHS
conventions (if you want), and the Windows installation does not
write to the system folder (except to update the registry). In
particular, it's now possible to create a fully functional PLT
Scheme installation on a CD-ROM or a USB memory stick.
Along with this change, tools to create executables -- including
DrScheme's "Create Executables..." menu item -- can produce
self-contained packages (i.e., with all needed DLLs, frameworks,
and shared libraries).
* ProfessorJ now supports a unit testing mechanism. It extends Java
with a "check ... expect" expression for writing test cases, and it
automatically evaluates Example classes and test methods,
summarizing the results in a window.
ProfessorJ also includes a new wizard for generating class and
union declarations.
The draw library has changed to accommodate multiple worlds (see
docs), and a new idraw library supports imperative drawing and
animation.
* MzScheme includes a just-in-time (JIT) compiler from byte code to
native code on x86, x86_64, and PowerPC platforms. The JIT is
enabled by default.
Performance improvements due to the JIT vary; the following timings
on a 2GHz MacBook provide some idea of the spectrum:
Shootout benchmarks (http://shootout.alioth.debian.org/):
No JIT JIT No-JIT/JIT
nsieve-bits 7 7.5 sec 0.8 sec 9.4
fannkuch 9 8.6 2.0 4.3
fasta 500000 8.5 3.1 2.7
regex-dna 5000000 10.5 10.3 1.0
tex2page on the mzscheme manual:
No JIT JIT No-JIT/JIT
37.6 sec 10.2 sec 3.7
mzc -c tex2page-aux.ss:
No JIT JIT No-JIT/JIT
19.4 sec 13.7 sec 1.4
* MzScheme's default exception handler now shows stack-trace
information. This stack-trace information is less precise than
from the "errortrace" tool, but it's often good enough, and it's
always available.
* DrScheme now treats open square-bracket `[' keyboard input
specially. In most contexts, an open parenthesis `(' is inserted,
instead -- but `[' is left alone in certain contexts, such as the
start of a `let' binding or a `cond' clause.
The intent is that you can type unshifted `[' and `]' characters
and get code that looks as if you had typed `(' and `)' with less
wear and tear on your hands. Use Ctl-[ in any context to get `[',
or change the preference to disable special treatment of `['.
For more details, follow the "Release" and then "Release Notes" links
in Help Desk, or see
http://pre.plt-scheme.org/plt/doc/release-notes/
A complete history of changes is at:
http://download.plt-scheme.org/chronology/
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!