[racket-dev] Release Announcement for v6.1

From: Ryan Culpepper (ryanc at ccs.neu.edu)
Date: Mon Jul 28 14:33:07 EDT 2014

The release announcement sketch that I have so far is below.  Please
mail me new items and/or edits.
----------------------------------------------------------------------

mflatt:
- ARM JIT: fix software floating-point (ffb0dd52)
- add plumbers (d5b42f8c)
- raco make: improve parallelism (9e3b9844)
- deprecate 3-arg module name resolver calls (8aaa3fc5)
- win32: support symbolic links (3e3cb716, 9fed5b58)
- drawing, bounding boxes, picts, scribble
   (970b040d, 37af1c8e, c4a58dc4, 05760a12, dac8ba28)

robby:
- random generation from contracts (1cb1ff28, 76c6a1b7)
- contract improvements (c64d70ab)
- change semantics of _!_ variables under ellipses (69c96c62)
- change metafunction contract formatting (d067311c)
- recursive-contract and cyclic values
   (7728e062, d664ee14, ..., 0db4df1d, f49dd363)
- add dvipdf backend to scribble (5280395f)
- add history (???) (3cd15cea, 145644ac, 83e8cfba, fb048647, d9dae651)

matthias:
- add check-random (aec84f4a)

ryanc:
- ssl DHE/ECDHE, TLS 1.1,1.2 (thanks to Edward Lee) (5c11e621)
- add SSL client SNI (Jay Kominek) (52159fea)

asumu:
- removed mzlib/class100 (5711e900)
- classes and TR (various)

samth/stamourv:
- TR changes?

----------------------------------------------------------------------

Racket now raises an exception when a local variable is used before
its definition, instead of producing an #<undefined> value. (Thanks to
Claire Alvis.)

Since programs are rarely intended to produce #<undefined>, raising an
exception provides earlier and better feedback to programmer.
Module-level variables have always triggered an exception when used
too early, and this change makes local bindings --- including fields
within a class --- behave the same.

This is a backward-incompatible change to Racket. Aside from exposing
a few bugs, the change mainly affects programs that include

   (define undefined (letrec ([x x]) x))

to obtain the #<undefined> value. There is now no #<undefined> value
in the old sense, but the `racket/undefined` library (which was
introduced in the previous release) provides `undefined` for use in
place of the pattern above when an "undefined" value is still needed.

----------------------------------------------------------------------

Posted on the dev mailing list.