Racket v6.0.1

posted by Ryan Culpepper

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.

Racket blog … Talk about Rackets !! I know some people running quite a rachet !

Ask Annabel

— IOnlyDealInMiracles, 24 May 2014

Dear Annabel,

On a scale of 1 to 10, how rachet would you say you are?

Ben

— Benjamin Greenman, 25 May 2014

Please, provide PGP signatures for the installers and/or support download over SSL. I would not risk running an executable on my computer unless I can verify it’s origin.

— verduphs, 2 June 2014

Funny. I came here from the old plt site and initially misread the redirection alert: “PLT is now a racket!”

— Unknown, 19 June 2014