From 7ba6c663cd310dc5c63c73c181b514c0930933e2 Mon Sep 17 00:00:00 2001 From: Ryan Culpepper Date: Sat, 2 Aug 2014 13:29:25 -0400 Subject: [PATCH] v6.1 announcement text --- pkgs/plt-services/meta/announcements/v6.1.txt | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 pkgs/plt-services/meta/announcements/v6.1.txt diff --git a/pkgs/plt-services/meta/announcements/v6.1.txt b/pkgs/plt-services/meta/announcements/v6.1.txt new file mode 100644 index 0000000000..d2a82356cc --- /dev/null +++ b/pkgs/plt-services/meta/announcements/v6.1.txt @@ -0,0 +1,65 @@ +1407000198 +Racket 6.1 + +The MAJOR INNOVATION concerns local recursive variable definitions. +Instead of initializing variables with an `undefined' value, Racket +raises an exception when such a variable is used before its definition. +(Thanks to Claire Alvis for adapting Dybvig's "Fixing Letrec" work.) + +Since programs are rarely intended to produce #, raising an +exception provides early and improved feedback. Module-level variables +have always triggered such an exception when used too early, and this +change finally gives local bindings --- including class fields --- the +same meaning. + +This change is backwards-incompatible with prior releases of Racket. +Aside from exposing a few bugs, the change will mainly affect programs +that include + +(define undefined (letrec ([x x]) x)) + +to obtain the # value. In its stead, Racket provides the same +value via the `racket/undefined' library (which was introduced in the +previous release). Programmers are encouraged to use it in place of the +pattern above to obtain the "undefined" value. + +The release also includes the following SMALL CHANGES: + +* PLUMBERS generalize the flush-on-exit capability of primitive output + ports to enable arbitrary flushing actions and to give programmers + control over the timing of flushes (i.e., a composable `atexit'). New + functions include `current-plumber', `plumber-add-flush!', and + `plumber-flush-all'. + +* CONTRACTS: the contract system's random testing facility has been + strengthened so that it can easily find simple mistakes in contracted + data structure implementations (e.g. an accidental reverse of a + conditional in a heap invariant check). + +* REDEX: the semantics of mis-match patterns (variables followed by _!_) + inside ellipses has changed in a backwards-incompatible way. This + change simplifies the patterns' semantics and increases the usefulness + of these patterns. + +* TEACHING LANGUAGES: `check-random' is an addition to the preferred + unit testing framework in the teaching languages. It enables the + testing of students' functions that use random-number + generation. (Thanks to David Van Horn (UMaryland) for proposing this + idea.) + +* Upgraded and normalized versions of GRAPHICS LIBRARIES and + dependencies (Pango, Cairo, GLib, etc.) that are bundled with Racket + on Windows and Mac OS X. For example, FreeType support is consistently + enabled. + +* TYPED RACKET: its standard library includes contracted exports from + the Racket standard library, such as the formatting combinators of + `racket/format'. It also supports Racket's asynchronous channels; see + the `typed/racket/async-channel' library. + +* SSL: The openssl library supports forward secrecy via DHE and ECDHE + cipher suites (thanks to Edward Lee) and Server Name Indication + (thanks to Jay Kominek). + +* The `mzlib/class100' library has been REMOVED. Use `racket/class' + instead.