[racket-dev] Release Announcement for v5.0.1
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?
----------------------------------------------------------------------
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).
----------------------------------------------------------------------
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!