[racket-dev] Release Announcement for v5.0.1
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).
> ----------------------------------------------------------------------
>