[racket-dev] Final(?) draft for v5.1.1

From: Eli Barzilay (eli at barzilay.org)
Date: Fri Apr 29 16:59:15 EDT 2011

Unless I hear otherwise, the below is the final announcement, and I'll
go on with finishing the release.  (Probably late tonight.)

Racket version 5.1.1 is now available from


* The new `racket/stream' library provides `stream-first',
  `stream-rest', a lazy `stream-cons', and so on.  Streams are a
  subtype of sequences, so they work in `for' forms.  Some sequence
  generators, such as `in-range', now produce streams.  A
  `racket/sequence' library replaces the old `racket/stream'

* The new `racket/syntax' library contains facilities useful for
  writing macros; `syntax/srcloc' and `syntx/location' have been
  added for manipulating source locations.

* The new `ffi/file' library is useful for writing foreign library
  bindings that cooperate with Racket's security guard mechanism.

* The `racket/gui' library now supports multi-column list boxes and
  scrolling panels.

* Generators from the `racket/generator' library can now have formal
  arguments that are used when the generator is fired up.

* Single-precision floating-point number support is now enabled by
  default; single-precision floats print differently from their
  default double-precision counterparts, primitives to convert
  between or distinguish the two have been added, and reader syntax
  for single-precision specials is now available.

* JIT improvements include a small change to aid x86 branch
  prediction on function-call returns, which can speed up some
  programs significantly.

* Typed Racket:
  - the numeric tower has been entirely overhauled.  TR programs can
    now use more precise types than before, and check more numeric
    properties, such as sign or range properties.
  - fixnum optimizations have been improved and should apply more
  - The performance of the typechecker has been improved, in
    particular, dispatch on large union types should typecheck much
    faster than before.

* The Stepper can now step through Lazy Racket programs.

* futures: added `fsemaphore' values to `racket/future'; the
  `future' primitive no longer freezes futures so a future can spawn
  new futures; improved log messages.

* PLaneT development links are now version-specific.

* The "DrScheme" application (which simply ran DrRacket in the last
  few releases) has been removed.  The "MrEd" GUI executables for
  Windows and Mac OS X have also been removed, although the "mred"
  console executable remains for Unix and Mac OS X to support old

* Added `overlay/align', `underlay/align', `overlay/align/offset' and
  'underlay/align/offset' to the `2htdp/image' library.

* The Universe protocol of 5.1 and its predecessors are
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.