Tags: 4z3/racket
Tags
Racket v5.0.2 * Typed Racket's optimizer is now turned on by default; error messages have been simplified and clarified. * Contracts: contracts on mutable containers allow functions or other higher order values, and contracts are checked when updating or dereferencing the containers. The new contracts are slower than the old ones, so the old check-once functionality is still available. A new dependent function contract combinator, `->i', properly assigns blame for contracts that violate themselves and the generated wrappers are more efficient than `->d'. (Although it does more checking so your contracts may be faster or slower). See the docs for `box/c', `hash/c', `vector/c', `vectorof' and `->i' for more details. * The `when', `unless', `cond', `case', and `match' forms (in `racket/base' and derived languages) now allow immediate internal definitions. * Web server: the formlets library provides more HTML form elements; `make-xexpr-response' supports a preamble for DTD declarations; `serve/servlet' supports stateless servlets. * New WebSocket implementation, see `net/websocket' for details. * The new `data' collection contains implementations of several data structures, including growable vectors and order-based dictionaries. * `racket/match' is now significantly faster * The Racket documentations are built in parallel by default. * The stepper is now compatible with programs using the Universe teachpack. * `2htdp/image': pinholes are now supported in the library (if you don't use pinhole primitives you will not see them); a number of new triangle functions added; supports conversion of images to color lists and back. Also, cropping has been improved for scenes; see the documentation section on the nitty-gritty of pixels for details. * Signatures have been moved to ASL, BSL, BSL+, ISL, and ISL+ (HtDP teaching languages) no longer support checked signatures. * Student languages: one-armed `check-error' in all levels; ASL is extended with hash operations, and `define-datatype'. * DMdA languages: Checking for parametric signatures is now eager. This catches errors earlier, but retains the asymptotic complexity properties; signatures for record types now have generators; `list-of' and `any' signatures are now provided.
Racket v5.0.1 * Datalog is a lightweight deductive database system with Racket integration. It is now available in the `datalog' collection and with `#lang datalog'. * Racklog provides Prolog-style logic programming in Racket, adapted from Dorai Sitaram's Schelog package. It is available in the `racklog' collection and now as `#lang racklog'. * By default `make install' and `raco setup' compile collections in parallel on all available processors. (Use `raco setup -j 1' to disable, if necessary.) * Changes (as part of 5.0) in the `racket' language compared to the `scheme' language: 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 (where the `openssl/sha1' library provides the SHA-1 hash function), a reorganization of `scheme/foreign' into `ffi/unsafe' and associated libraries, and new printing functions `eprintf' and `displayln'. Also, a generator from `racket/generator' is required to have the form `(generator () body ...)', which supports a planned extension to let a generator accept arguments. * 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, `ffi/unsafe' provides 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/formlets' library 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. * RackUnit now includes a GUI test runner as `rackunit/gui'. * The `2htdp/image' library now includes `flip-vertical' and `flip-horizontal' operations that mirror images (vertically and horizontally).
PLT is happy to announce the release of Racket, available from http://racket-lang.org/ With Racket, you can script command shells and web servers; you can quickly prototype animations and complex GUIs; regexps and threads are here to serve you. To organize your systems, you can mix and match classes, modules or components. Best of all, you start without writing down types. If you later wish to turn your script into a program, equip your Racket modules with explicit type declarations as you wish. And Racket doesn't just come as a typed variant; you can also write your modules in a purely functional and lazy dialect. Racket comes in so many flavors because Racket is much more than a standard scripting language or a plain programming language. Racket supports language extensibility to an unequaled degree. A Racket programmer knows that making up a new language is as easy as writing a new library. To help you start quickly, Racket includes batteries in all shapes and sizes, most importantly, extensive documentation and all kinds of libraries. Racket occupies a unique position between research and practice. It inherits many major ideas from language research, among them type safety (when the type system says that x is a number, then at runtime it always is a number) and memory safety (when some memory is reclaimed by the garbage collector it is impossible to still have a reference to it). At the same time, user demand governs rigid adherence to purely theoretical principles. Racket, formerly PLT Scheme, is a product of over 15 years of development. Although Racket starts with a mature software base and an established user community, its new name reflects our view that this is just the beginning of Racket's evolution.
PreviousNext