Racket v5.0.1
posted by Eli Barzilay
Racket version 5.0.1 is now available from http://racket-lang.org/
-
Datalog is a lightweight deductive database system with Racket integration. It is now available in the
datalogcollection and with#lang datalog. -
Racklog provides Prolog-style logic programming in Racket, adapted from Dorai Sitaram’s Schelog package. It is available in the
racklogcollection and now as#lang racklog. -
By default
make installandraco setupcompile collections in parallel on all available processors. (Useraco setup -j 1to disable, if necessary.) -
Changes (as part of 5.0) in the
racketlanguage compared to theschemelanguage: constructor-style printing, astructalternative todefine-structthat fits more naturally withmatchand constructor-style printing, bytecode-dependency management via SHA–1 hashes instead of just timestamps (where theopenssl/sha1library provides the SHA–1 hash function), a reorganization ofscheme/foreignintoffi/unsafeand associated libraries, and new printing functionseprintfanddisplayln. Also, a generator fromracket/generatoris required to have the form(generator () body ...), which supports a planned extension to let a generator accept arguments. -
Changes to the
racketlanguage (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 (seecurrent-subprocess-custodian-mode,subprocess-group-enabled), the JIT supports additional unboxing flonum operations and unsafe variants,ffi/unsafeprovides an asychronous-call mechanism to deal with foreign threads, a new "." modifier for format string directives (e.g., "~.s" and "~.a") limits the respective output to(error-print-width)characters. -
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.
-
We are working on an optimizing version of Typed Racket that takes advantage of type information for certain classes of programs. This project is a work in progress. For those interested, see the documentation for
#:optimized. -
The
web-server/formletslibrary adds aformlet*form that allows dynamic formlet construction, as opposed toformletwhich requires syntactic Xexprs and static formlets. Several new library formlets are added. -
The
syntax/parselibrary has new support for matching literals at different phases using the#:phaseargument for literals and literal sets. -
RackUnit now includes a GUI test runner as
rackunit/gui. -
The
2htdp/imagelibrary now includesflip-verticalandflip-horizontaloperations that mirror images (vertically and horizontally).