Racket v6.0

posted by Ryan Culpepper

Racket version 6.0 is now available from

http://racket-lang.org/

Racket 6.0 has a new package system, including a catalog of hundreds of already-available packages. Please visit

http://pkgs.racket-lang.org/

for an overview of the packages.

Racket versions 5.3.4 through 5.3.6 included “beta” versions of the package system. Racket version 6.0 incorporates many improvements suggested by preliminary experiences in those versions:

A package is treated as a single collection by default, so it is even easier to use a GitHub repository as a package. Get started quickly: http://docs.racket-lang.org/pkg/getting-started.html

DrRacket includes a new package manager GUI, available via the File|Package Manager … menu item. The GUI is also available as a stand-alone program via the “gui-pkg-manager” package.

The main Racket distribution has been separated into about 200 packages. The Racket installer combines the core system with bundled versions of these packages.

Alternatively, you may now install a Minimal Racket distribution — which is about 1/10 the size of the main distribution — and add only those packages that you need.

Package installation supports pre-built packages that include compiled byte code and rendered documentation, meaning packages can be installed quickly when built versions are available. All packages in the main distribution are available in pre-built form.

The recent 5.92 and 5.93 releases served as release candidates for 6.0, and 6.0 includes a few additional repairs related to the package system.

Further improvements to the package system are in the works, notably including package documentation on the package-catalog web site.

COMPATIBILITY NOTE: PLaneT, the previous Racket package system, will remain in place for the foreseeable future, but we expect all package work to shift to the new system.

Beyond the package system, this release brings a number of other changes:

Racket’s HTML documentation has a new and improved look, thanks to Matthew Butterick.

The documentation includes a style guide, “How to Program Racket”.

Racket’s JIT compiler supports the ARM architecture.

Racket supports the Mac’s Retina display mode.

The performance of the Typed Racket compiler improved by 50% on some typed programs; e.g., see http://bit.ly/1d0Ye4z

The profiler provides a new mode that uses the errortrace library to produce fine-grained profiles.

A new contract profiler reports how much time programs spend checking contracts, and which contracts are most expensive.

The math/flonum library exports fast 105-bit precision operations.

Check Syntax handles generated identifiers, especially those introduced by struct (e.g. field selectors) and Redex (e.g., e_1, e_2)

2htdp/batch-io includes functions for dealing with html/xml in files and web sites as X-expressions plus conveniences for web-based graph traversals.

The `gen:set’ generic interface extends set operations to work on user-defined types that implement set methods, as well as on other set-like built-in types, such as lists.

Picts support conversion to SVG format.

Under unix, Racket provides desktop entries (.desktop files) for its graphical executables.

How do I install the minimal set? So far I can only find it mentioned in announcements but can never find any instruction.

— Yi D, 27 February 2014

To install Minimal Racket, follow the “All Versions” link from the download page, and then click "[download Racket Minimal]" on the first row of the table.

We plan to revise the download page so that the Minimal Racket option easier to find.

— Matthew Flatt, 27 February 2014

Will there be a section on compiling for ARM? Is it possible to target Android and use NDK? I have not been finding much on this.

— Chris Gill, 19 March 2014

Why don’t you provide source packages?

— Des Nerger, 27 April 2014