Tags give the ability to mark specific points in history as being important
-
v5.1.1
6f8817d0 · ·Racket v5.1.1 * The new `racket/stream' library provides `stream-first', `stream-rest', a lazy `stream-cons', and so on. Streams are a subtype of sequences, so they work in `for' forms. Some sequence generators, such as `in-range', now produce streams. A `racket/sequence' library replaces the old `racket/stream' library. * The new `racket/syntax' library contains facilities useful for writing macros. The new `syntax/srcloc' and `syntax/location' libraries provide support for manipulating source locations. * The `racket/gui' library now supports multi-column list boxes and scrolling panels. * The new `ffi/file' library is useful for writing foreign library bindings that cooperate with Racket's security guard mechanism. * Generators from the `racket/generator' library can now have formal arguments that are used when the generator is fired up. * Single-precision floating-point support is now enabled by default. Single-precision floats print differently from their default double-precision counterparts, new primitives convert between the two precisions, and new reader syntax supports single-precision literals. * JIT improvements include a small change to aid x86 branch prediction on function-call returns, which can speed up some programs significantly. * Typed Racket: - The numeric tower has been entirely overhauled. TR programs can now use more precise types than before, and check more numeric properties, such as sign or range properties. - Fixnum optimizations have been improved and should apply more broadly. - The performance of the typechecker has been improved. In particular, dispatch on large union types should typecheck much faster than before. * The Stepper can now step through Lazy Racket programs. * The `racket/future' library includes `fsemaphore' values, the `future' primitive no longer freezes futures (so a future can spawn new futures), and `future' log messages are more informative. * PLaneT development links are now version-specific. * The `2htdp/image' library now includes `overlay/align', `underlay/align', `overlay/align/offset' and `underlay/align/offset'. * The network protocol for universes in `2htdp/universe' has changed, so that v5.1.1 is incompatible with earlier versions. * The "DrScheme" application (which simply ran DrRacket in the last few releases) has been removed. The "MrEd" GUI executables for Windows and Mac OS X have also been removed, although the "mred" console executable remains for Unix and Mac OS X to support old scripts. -
-
v5.1
bee619f0 · ·Racket v5.1 The most significant change in version 5.1 is a rewrite of the GUI library: http://blog.racket-lang.org/2010/12/racket-version-5.html Unix/X users will see the biggest difference with this change, because DrRacket and all Racket GUI programs now take on the desktop theme for menus, buttons, and other GUI widgets. In the long run, Racket GUI programs on all platforms will improve as a result of the library rewrite. In the short run, beware that this first release of a new library will inevitably include a new set of bugs. Version 5.1 changes in more detail: * The `racket/draw' library -- which implements the drawing half the GUI toolkit -- can be used independent of the `racket/gui/base' library and without a graphics display (e.g., without an X11 connection). The new library has one small incompatibility with the old GUI toolbox: 'xor drawing is no longer supported. The new library has many additional features: rotation and general affine transformations, PDF and SVG drawing contexts, gradients, and alpha-channel bitmaps. * The GRacket executable is no longer strictly necessary for running GUI programs, because the `racket/gui/base' library can be used from Racket. To the degree that a platform distinguishes GUI and console applications, however, the GRacket executable still offers some additional GUI-specific functionality (e.g., single-instance support). The new `racket/gui/base' library includes small incompatibilities with the old GUI toolbox: the `send-event', `current-ps-afm-file-paths', and `current-ps-cmap-file-paths' functions have been removed. The `racket/gui/base' library re-exports `racket/draw', so it includes the same drawing functionality as before (except for 'xor drawing). * The new `racket/snip' library can be used independently of `racket/gui/base' to work with graphical editor content (e.g., images in student programs). Like `racket/draw', the `racket/snip' library is re-exported by `racket/gui/base'. * The Web Server includes a backwards incompatible change that prevents X-expressions and lists of bytes from being directly returned from servlets. This change will increase performance for those types of responses and allow easier experimentation with response types. Please see "collects/web-server/compat/0/README" in the installation to learn about porting your servlets forward. Don't worry. It's easy. * The new `raco demodularize' tool collapses a module's dependencies into a single module comprising the whole program. This transformation currently provides no performance improvement, but is the basis for cross-module optimization and dead-code elimination tools to come. The transformation is currently useful for static analysis of whole Racket programs. * The picturing-programs teachpack, formerly installed via PLaneT, is now bundled with the standard distribution. Use the teachpack with `(require picturing-programs)' instead of `(require installed-teachpacks/picturing-programs)'. The old PLaneT-based installation procedure still works, but it now merely installs a stub that invokes the bundled version. * Slideshow picts, `racket/draw' bitmaps, and images created with `2htdp/image' can now be used directly in Scribble documents. More generally, the new `file/convertible' protocol enables any value that is convertible to a PNG and/or PDF stream to be used as an image in a Scribble document. * The Same game sports a new look and an improved scoring system. (The current known high score is 12,429; can you beat that?)
-
-
-
v5.0.2
371b00af · ·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.
-
v5.0.1
2c77ae5e · ·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).
-
-
-
-
-
-