posted by Eli Barzilay

Racket version 5.3 is now available from

http://racket-lang.org/ Release Highlights::

Submodules are nested module declarations that can be loaded and run independently from the enclosing module. See also the overview of submodules.

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 new images/flomap library defines floating-point bitmaps and fast image processing operations on them. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks.

The new json library supports parsing and generating JSON. (Originally based on Dave Herman’s planet library.)

racket/string is extended with a set of simplified string manipulation functions that are more convenient than using regexps. regexp-match* and friends can now be used with new keyword arguments to return specific matched regexp group/s and gaps between matches.

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.

The 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.