08 May 2014

Racket v6.0.1

posted by Ryan Culpepper

Racket version 6.0.1 is now available from


  • 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 #:[email protected]? 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?


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

Made with Frog, a static-blog generator written in Racket.
Source code for this blog.