Racket version 6.0.1 is now available from http://racket-lang.org/
* A new `racket/undefined` library exports `undefined` as the value currently produced by (letrec ([x x]) x) This library anticipates a future where that expression will raise an exception. The `racket/undefined` library will continue to offer the `undefined` value as a bridge between versions and as a last resort. * The drawing and GUI libraries provide improved support for high-resolution bitmaps and their use on Retina displays. For example, `read-bitmap` includes a `#:try-@2x?` option to trigger substitutions through the usual "@2x" naming convention. * Check Syntax cooperates with Typed Racket to show arrows and other Check Syntax highlighting even when there is a type error. * Functions provided via contract-out that have first-order contracts perform better. * The contract boundary between typed/untyped modules is much less expensive. Typed Racket now avoids generating contracts for places where contracts failures cannot happen. * Occurrence typing now works better with when/unless. Example: (let ((x (read))) (unless (number? x) (error 'bad-input)) (add1 x)) * Types in Typed Racket are now pretty-printed. * Function types can now be written in prefix style, which is now preferred and is used for printing. Infix function types are still accepted for backwards compatibility. * A new `->*' type constructor is used for writing types for functions with optional and keyword arguments. The notation is similar to the matching contract combinator. * Typed Racket forms do not have a `:' suffix by default now. For example, the `struct' form replaces `struct:'. The suffixed versions are all provided for backwards compatibility. * Typed Racket now has preliminary support for classes and objects. However, it is still experimental and the APIs are subject to change. * Type aliases in Typed Racket now support recursion and mutual recursion. For example, `(define-type (MyList X) (U Null (Pair X (MyList X))))' is now a valid type alias. * Plot correctly renders intersecting 3D graphs and non-grid-aligned 3D rectangles. * Elements in plots output in PDF/PS format have the same relative scale as in other formats. In particular, it is not necessary to adjust `plot-font-size` to make PDF plots look the same as PNG. Feedback Welcome ____________________________ Racket Announcements list: http://lists.racket-lang.org/announce