From: Eli Barzilay <eli@barzilay.org> To: plt-scheme@list.cs.brown.edu, plt-announce@list.cs.brown.edu Subject: [plt-scheme] PLT Scheme v370 Date: Mon, 21 May 2007 18:26:21 -0400 PLT Scheme version 370 is now available from http://download.plt-scheme.org/ Some highlights: * The conservative garbage collector (CGC) has been replaced with a precise garbage collector (3m) in the standard build. For most users, this change simply amounts to "better performance in space and time". For example, a long-running DrScheme instance typically uses much less memory than before. The new memory manager also supports a new "Limit Memory..." option (in DrScheme’s "Scheme" menu) to limit the memory use of a programming running inside DrScheme. For those who work with C-implemented libraries and extensions, the switch to precise collection may complicate interoperability. To a large extent, however, `(lib "foreign.ss")’ works the same with both collectors. (But note that the 3m is a moving collector, so be careful with passing Scheme objects to C.) Although our pre-built binaries use the new collector, builds from source using the conservative collector are still supported. * For a program written with one of the the "How to Design Programs" (HtDP) languages, DrScheme saves the program with meta-information that identifies the language and records the teachpacks used by the program. DrScheme’s teachpack GUI now works only with the HtDP languages. In other languages, use `require’ to access teachpacks. The meta-information is in the form of a reader extension that turns the file content into a `module’-based program, which means that teaching-language files can be loaded directly into MzScheme or used with other PLT Scheme tools. * The HtDP "world.ss" and "image.ss" teachpacks have been revised, including support for the creation of animated GIFs. * Unit-based servlets are no longer supported in the web server. Use module-based servlets, instead. (Servlets can be implemented using a `unit’ within a `module’, but the web server’s API is provided through a module.) * A new `(lib "unit.ss")’ library replaces the old one and provides a simpler and more flexible syntax. The `(lib "unitsig.ss")’ library is deprecated but still available as `(lib "unitsig200.ss")’, and the old `(lib "unit.ss")’ is available as `(lib "unit200.ss")’. Feedback Welcome, -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://www.barzilay.org/ Maze is Life!