All edits are in this version. ---------------------------------------------------------------------- Release highlights:
* The new `db' library offers a high-level, functional interface to popular relational database systems, including PostgreSQL, MySQL, and SQLite, as well as other systems via ODBC. * A new XREPL collection provides convenient commands for a plain racket REPL. It is particularly convenient for people who prefer console-based work and alternative editors. See also the new chapter on command-line tools and other editors at the end of the Racket Guide. * The `plot' collection has been reimplemented in Racket. It now offers PDF output, log axes, histograms, and more. Some code that uses `plot' will still work, and some will need light porting. The `plot/compat' module offers expedient backward compatibility. * DrRacket uses more conventional key bindings: `C-t' creates a new tab, `C-w' closes the current one, and `C-r' runs the definitions. On Mac OS X, the Command key is used. See "Defining Custom Shortcuts" in the DrRacket manual for an example that uses the old key bindings. * The new `raco link' command registers a directory as a collection, which allows the collection directory to reside outside the "collects" tree and without changing the PLTCOLLECTS environment variable. * Support for `begin-for-syntax' has been generalized; modules may now define and export both value bindings and syntax bindings (macros) at phase 1 and higher. * Typed Racket: - Typed Racket provides static performance debugging support to show which code gets optimized and point out code that does not. Use the "Performance Report" button in DrRacket. - More intuitive types in printouts in the REPL and in error messages. Use `:query-result-type' to explore types, or `:print-type' for a full printout. - Function definitions with optional arguments now work. - Typed Racket now supports defining function with optional arguments using the same syntax as Racket. * Redex now supports specifying (and testing and automatically typesetting) judgment forms including type systems and SOS-style operational semantics. * Fixed several GUI problems, including problems on Ubuntu 11.10 (GTK+ 3) and 64-bit Mac OS X. * Internal-definition expansion has changed to use `let*' semantics for sequences that contain no back references. This change removes a performance penalty for using internal definitions instead of `let' in common cases, and it only changes the meaning of programs that capture continuations in internal definitions. Internal definitions are now considered preferable in style to `let'. Additional items: * DrRacket comes with an experimental, on-line check syntax function. By default, it is turned off. To turn it on, right click on the red circle in the buttom right corner of the DrRacket window. Warning: turning this on makes DrRacket less stable. * The `racket/gui' library (and Slideshow) provides more support for multiple-screen displays. * DrRacket remembers whether an opened file used LF or CRLF line endings, and will continue using the same. When creating a new file, a preference determines how it is saved. * `net/url' can now follow HTTP redirections. * The LNCS and JFP class files are no longer distributed with Racket. Instead, they are downloaded on demand. * The Algol language implementation is now available as a plain language using `#lang algol60'. * The Racket-to-C compiler (as accessed via `raco ctool' or `mzc') has been removed; Racket's JIT has long provided better performance, and the FFI provides better access to C libraries. * Contracts can be applied to exports with the new `contract-out' form within `provide', instead of a separate `provide/contract' form. (The new `contract-out' form is implemented as a new kind of "provide pre-transformer".) * The `date*' structure type is an extension of `date' with `nanosecond' and `time-zone-name' fields. * New looping constructs: `for/sum' and `for/product'. * Direct calls to keyword-accepting functions are now optimized to eliminate the overhead of keywords. In addition, the compiler detects and logs warnings for keyword-argument mismatches. * The libfit interface is available from `plot/deprecated/fit', and will be removed in the near future. * The Unix installer has been re-done, and it is now more robust. * The built-in reader and printer support for Honu is removed. (This functionality is re-implemented in Racket.) ---------------------------------------------------------------------- -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev