[racket-dev] Release Announcement for v5.3, second draft

From: Ryan Culpepper (ryan at cs.utah.edu)
Date: Wed Aug 1 08:34:28 EDT 2012

Below is the second draft of the release announcement items for
v5.3. Let me know if I've missed something.

* Submodules are nested module declarations that can be loaded and
   run independently from the enclosing module.  For an overview of
   submodules, see

     http://blog.racket-lang.org/2012/06/submodules.html

* The futures visualizer is a graphical profiling tool for parallel
   programs using futures.  The tool shows a detailed execution
   timeline depicting the migration of futures between threads, and
   gives detailed information about each runtime synchronization that
   occurred during program execution.  In addition, `would-be-future'
   is a special type of future that always executes sequentially and
   records all potential barricades a regular future would encounter.

* Optimization Coach (formerly Performance Report) reports information
   about Racket's inlining optimizations.  Optimization Coach can be
   launched in any language through the View menu.

* The API for fast floating-point bitmaps (flomaps) supports image
   processing operations, including pointwise arithmetic, gradients,
   blur, resizing with correct downsampling, arbitrary spatial
   transformations, and pict-like combiners.

* A new `json' library (derived from Dave Herman's PLaneT library) for
   parsing and generating JSON comes with the distribution.

* `racket/string' is extended with string manipulation functions that
   avoid some basic regexp tweaks. `regexp-match*' and friends come with
   new keyword arguments to return specific matched group/s and gaps.

* The new `racket/generic' library allows generic function definitions,
   which dispatch to methods added to a structure type via the new
   `#:methods' keyword.

* The `class' form supports declaring a method abstract.  An abstract
   method prevents a class from being instantiated unless it is
   overridden.

* The contract library comes with support for interfaces, generics,
   prompts, continuation-marks, and structs.

* Most error messages use a new multi-line format that is more
   consistent with contract errors and accommodates more information.

* Typed Racket supports function definitions with keyword arguments;
   the startup time of Typed Racket programs has been sharply reduced.

* A new `ffi/com' library replaces MysterX; a compatibility
   `mysterx' library remains, but without ActiveX support.  The new
   `ffi/unsafe/com' library offers a more primitive and direct way to
   use COM classes and methods.

* There is now a very complete completion code for zsh.  It is not
   included in the distribution though, get it at: http://goo.gl/DU8JK
   (This script and the bash completions will be included in the
   standard installers in future versions.)

* The `tex2page' and `combinator-parser' libraries have been moved
   from the Racket distribution to PLaneT.

=== DEPRECATION ==========================================

The following have been deprecated and will be removed in the
January 2013 release:

   - the `planet' command-line tool. Use `raco planet' instead.

The following have been deprecated and will be removed in the
August 2013 release:

   - the `mzlib/class100' library. Use `racket/class' instead.
   - the `define-contract-struct' form. Use `struct' with `struct/dc'
     contracts instead.

Posted on the dev mailing list.