[racket-dev] Release Announcement for v5.0.1 -- near final
This is the final list, please see if you have any more changes --
specifically, the order is pretty much random.
----------------------------------------------------------------------
* 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/foreign' 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 `raco 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 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 `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'.
* `generator' from `racket/generator' is required 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!