[racket-dev] Release Announcement for v5.0.1

From: Ryan Culpepper (ryanc at ccs.neu.edu)
Date: Wed Jul 28 15:04:44 EDT 2010

Eli Barzilay wrote:
> The release announcement sketch that I have so far is below.  Please
> send edits or (changes in order) if you see anything.
> Still needed:
>   Ryan:
>     * Any public (and documented) syntax/parse & macro debugger
>       additions?
>     * macro-debugger/emit?
>     * GUI for rackunit?

Just these:

The syntax/parse library has new support for matching literals at 
different phases using the #:phase argument for literals and literal sets.

A GUI test runner has been added to RackUnit under rackunit/gui.

> ----------------------------------------------------------------------
> Racket version 5.0.1 is now available from
>   http://racket-lang.org/
> * Changes (as part of 5.0) in the `racket' language compared to the
>   `scheme' language include constructor-style printing, a `struct'
>   alternative to `define-struct' that fits more naturally with
>   `match' and constructor-style printing, bytecode-dependency
>   management via SHA-1 hashes instead of just timestamps, and a
>   reorganization of `scheme/foriegn' into `ffi/unsafe' and
>   associated libraries.
> * Changes to the `racket' language (since 5.0): internal-definition
>   positions allow mixing expressions with definitions, full
>   continuations can escape past a continuation barrier, custodians
>   can attempt to terminate subprocesses and subprocess groups (see
>   `current-subprocess-custodian-mode', `subprocess-group-enabled'),
>   the JIT supports additional unboxing flonum operations and unsafe
>   variants, and `ffi/unsafe' provides an asychronous-call mechanism
>   to deal with foreign threads.
> * By default `make install' and `raco setup' compile collections in
>   parallel on all available processors.  (Use `reaco setup -j 1' to
>   disable if necessary.)
> * A new "." modifier for format string directives (e.g., "~.s" and
>   "~.a") limits the respective output to (error-print-width)
>   characters.  New printout functions: `eprintf' and `displayln'.
> * The core type system of Typed Racket has been substantially
>   revised.  In particular, Typed Racket can now follow significantly
>   more sophisticated reasoning about the relationships between
>   predicates.  Additionally, Typed Racket now allows variable arity
>   types in more places, allowing programmers to specify
>   variable-arity lists.
> * Typed Racket now provides a type-based optimizer that is activated
>   when the code starts with `#:optimize'.  It can improve the
>   performance of many operations such as list, vector and struct
>   accesses and is especially useful for floating-point intensive
>   programs (which can get faster by a factor of 3).  This is feature
>   is still being developed, and it will become the default behavior
>   in the near future.
> * Datalog: a lightweight deductive database system with Racket
>   integration is available in the `datalog' collection and with
>   `#lang datalog'.
> * Racklog: Prolog-style logic programming in Racket, adapted from
>   Dorai Sitaram's Schelog package, is also included, available as a
>   `#lang racklog' too.
> * `openssl/sha1' provides a SHA1 hash function.
> * `web-server/formlets' adds a `formlet*' form that allows dynamic
>   formlet construction, as opposed to `formlet' which requires
>   syntactic Xexprs and static formlets.  Several new library
>   formlets are added.
> * The `generator' from `racket/generator' is requires to have this
>   form: (generator () body ...), due to a planned extension where a
>   generator will accept arguments.
> * The Advanced Student Language now supports hash-table primitives,
>   `define-datatype' for defining sets of related structs, and
>   `match' for pattern matching.
> * The `2htdp/image' library now includes `flip-vertical' and
>   `flip-horizontal' operations that mirror images (vertically and
>   horizontally).
> ----------------------------------------------------------------------

Posted on the dev mailing list.