tag:github.com,2008:https://github.com/OrangeToque/racket/releasesTags from racket2014-11-04T14:52:36Ztag:github.com,2008:Repository/28166794/v6.1.12014-11-04T14:52:36ZRacket v6.1.1<p>Racket v6.1.1</p>
<p>* The MAC OS X YOSEMITE compatibility problems are fixed. We
<br /> bundled a patched Pango text-drawing library with Racket.</p>
<p>* The WINDOWS [32-bit] releases fixes the window-update crashes.
<br /> We bundled a patched Cairo drawing library with Racket.</p>
<p>* TYPED RACKET closes two safety holes in the exception system.
<br /> The revised type system restricts `raise' to send only
<br /> instances of the `exn' structure type and flat data to
<br /> handlers. It also checks exception handlers properly.
<br /> NOTE: Previously well-typed programs may fail to typecheck.</p>
<p>* TYPED RACKET'S typed regions support casts and predicates.</p>
<p>* 2HTDP/IMAGE'S notion of equality ignores an image's baseline.</p>
<p>* The PACKAGE MANAGER supports a binary library installation mode,
<br /> which allows users to install packages without source or documentation.
<br /> Use the `--binary-lib' option with `raco pkg install'.</p>
<p>* The new DRRACKET-TOOL-LIB package factors out parts of DrRacket's
<br /> IDE so that they can be reused with other editors, such as Emacs.</p>
<p>* The COMPILER'S use-before-defined analysis has been repaired for
<br /> certain forms of nested `letrec', some `let' forms, and some
<br /> uses of `set!' or `with-continuation-mark'.</p>
<p>* The COMPILER performs additional bytecode optimizations.
<br /> Thanks to Gustavo Massaccesi.</p>
<p>* The CML library comes with a new `replace-evt' event constructor.
<br /> Thanks to Jan Dvořák.</p>
<p>* REDEX'S benchmark suite comes with a description of the benchmark
<br /> programs.</p>
<p>* REDEX'S metafunctions can be typeset using the "large left brace"
<br /> notation for conditionals.</p>
<p>* The CONTRACT library comes with an improved `contract-stronger?'.
<br /> Its error messages note that the contract itself might be wrong.</p>
<p>* The GUI library is DPI-aware on Windows.</p>
<p>* The OPENSSL library supports Server Name Indication for servers.
<br /> Thanks to Jay Kominek.</p>
<p>* The SYNTAX/PARSE library allows the definition of new pattern
<br /> forms via pattern expanders, similar to match expanders.
<br /> Thanks to Alex Knauth.</p>
<p>* OpenGL on Linux no longer depends on libgtkgl, and core profiles
<br /> are supported (see `set-legacy?').</p>
<p>* The TEACHING LANGUAGES' unit test framework supports
<br /> `check-satisfied', a construct for checking whether a result
<br /> satisfies a predicate, e.g.: (check-satisfied (sort l) sorted?)</p>rmculpeppertag:github.com,2008:Repository/28166794/v6.12014-08-02T17:51:28ZRacket v6.1<p>Racket v6.1</p>
<p>The MAJOR INNOVATION concerns local recursive variable definitions.
<br />Instead of initializing variables with an `undefined' value, Racket
<br />raises an exception when such a variable is used before its definition.
<br />(Thanks to Claire Alvis for adapting Dybvig's "Fixing Letrec" work.)</p>
<p>Since programs are rarely intended to produce #<undefined>, raising an
<br />exception provides early and improved feedback. Module-level variables
<br />have always triggered such an exception when used too early, and this
<br />change finally gives local bindings --- including class fields --- the
<br />same meaning.</p>
<p>This change is backwards-incompatible with prior releases of Racket.
<br />Aside from exposing a few bugs, the change will mainly affect programs
<br />that include</p>
<p>(define undefined (letrec ([x x]) x))</p>
<p>to obtain the #<undefined> value. In its stead, Racket provides the same
<br />value via the `racket/undefined' library (which was introduced in the
<br />previous release). Programmers are encouraged to use it in place of the
<br />pattern above to obtain the "undefined" value.</p>
<p>The release also includes the following SMALL CHANGES:</p>
<p>* PLUMBERS generalize the flush-on-exit capability of primitive output
<br /> ports to enable arbitrary flushing actions and to give programmers
<br /> control over the timing of flushes (i.e., a composable `atexit'). New
<br /> functions include `current-plumber', `plumber-add-flush!', and
<br /> `plumber-flush-all'.</p>
<p>* CONTRACTS: the contract system's random testing facility has been
<br /> strengthened so that it can easily find simple mistakes in contracted
<br /> data structure implementations (e.g. an accidental reverse of a
<br /> conditional in a heap invariant check).</p>
<p>* REDEX: the semantics of mis-match patterns (variables followed by _!_)
<br /> inside ellipses has changed in a backwards-incompatible way. This
<br /> change simplifies the patterns' semantics and increases the usefulness
<br /> of these patterns.</p>
<p>* TEACHING LANGUAGES: `check-random' is an addition to the preferred
<br /> unit testing framework in the teaching languages. It enables the
<br /> testing of students' functions that use random-number
<br /> generation. (Thanks to David Van Horn (UMaryland) for proposing this
<br /> idea.)</p>
<p>* Upgraded and normalized versions of GRAPHICS LIBRARIES and
<br /> dependencies (Pango, Cairo, GLib, etc.) that are bundled with Racket
<br /> on Windows and Mac OS X. For example, FreeType support is consistently
<br /> enabled.</p>
<p>* TYPED RACKET: its standard library includes contracted exports from
<br /> the Racket standard library, such as the formatting combinators of
<br /> `racket/format'. It also supports Racket's asynchronous channels; see
<br /> the `typed/racket/async-channel' library.</p>
<p>* SSL: The openssl library supports forward secrecy via DHE and ECDHE
<br /> cipher suites (thanks to Edward Lee) and Server Name Indication
<br /> (thanks to Jay Kominek).</p>
<p>* The `mzlib/class100' library has been REMOVED. Use `racket/class'
<br /> instead.</p>rmculpeppertag:github.com,2008:Repository/28166794/v6.0.12014-05-08T20:13:40ZRacket v6.0.1<p>Racket v6.0.1</p>
<p>* A new `racket/undefined` library exports `undefined` as the value
<br /> currently produced by</p>
<p> (letrec ([x x]) x)</p>
<p> This library anticipates a future where that expression will raise
<br /> an exception. The `racket/undefined` library will continue to offer
<br /> the `undefined` value as a bridge between versions and as a last
<br /> resort.</p>
<p>* The drawing and GUI libraries provide improved support for
<br /> high-resolution bitmaps and their use on Retina displays. For
<br /> example, `read-bitmap` includes a `#:try-<a class="user-mention notranslate" href="https://github.com/2x">@2x</a>?` option to trigger
<br /> substitutions through the usual "<a class="user-mention notranslate" href="https://github.com/2x">@2x</a>" naming convention.</p>
<p>* Check Syntax cooperates with Typed Racket to show arrows and other
<br /> Check Syntax highlighting even when there is a type error.</p>
<p>* Functions provided via contract-out that have first-order contracts
<br /> perform better.</p>
<p>* The contract boundary between typed/untyped modules is much less
<br /> expensive. Typed Racket now avoids generating contracts for places
<br /> where contracts failures cannot happen.</p>
<p>* Occurrence typing now works better with when/unless. Example:</p>
<p> (let ((x (read)))
<br /> (unless (number? x) (error 'bad-input))
<br /> (add1 x))</p>
<p>* Types in Typed Racket are now pretty-printed.</p>
<p>* Function types can now be written in prefix style, which is now
<br /> preferred and is used for printing. Infix function types are still
<br /> accepted for backwards compatibility.</p>
<p>* A new `->*' type constructor is used for writing types for functions
<br /> with optional and keyword arguments. The notation is similar to the
<br /> matching contract combinator.</p>
<p>* Typed Racket forms do not have a `:' suffix by default now. For
<br /> example, the `struct' form replaces `struct:'. The suffixed versions
<br /> are all provided for backwards compatibility.</p>
<p>* Typed Racket now has preliminary support for classes and
<br /> objects. However, it is still experimental and the APIs are subject
<br /> to change.</p>
<p>* Type aliases in Typed Racket now support recursion and mutual
<br /> recursion. For example, `(define-type (MyList X) (U Null (Pair X
<br /> (MyList X))))' is now a valid type alias.</p>
<p>* Plot correctly renders intersecting 3D graphs and non-grid-aligned
<br /> 3D rectangles.</p>
<p>* Elements in plots output in PDF/PS format have the same relative
<br /> scale as in other formats. In particular, it is not necessary to
<br /> adjust `plot-font-size` to make PDF plots look the same as PNG.</p>rmculpeppertag:github.com,2008:Repository/28166794/v6.02014-02-26T22:18:28ZRacket v6.0<p>Racket v6.0</p>
<p>Racket 6.0 has a new package system, including a catalog of
<br />hundreds of already-available packages. Please visit</p>
<p> <a href="http://pkgs.racket-lang.org/">http://pkgs.racket-lang.org/</a></p>
<p>for an overview of the packages.</p>
<p>Racket versions 5.3.4 through 5.3.6 included "beta" versions of the
<br />package system. Racket version 6.0 incorporates many improvements
<br />suggested by preliminary experiences in those versions:</p>
<p> * A package is treated as a single collection by default, so it is
<br /> even easier to use a GitHub repository as a package. Get started
<br /> quickly:
<br /> <a href="http://docs.racket-lang.org/pkg/getting-started.html">http://docs.racket-lang.org/pkg/getting-started.html</a></p>
<p> * DrRacket includes a new package manager GUI, available via the
<br /> File|Package Manager ... menu item. The GUI is also available
<br /> as a stand-alone program via the "gui-pkg-manager" package.</p>
<p> * The main Racket distribution has been separated into about 200
<br /> packages. The Racket installer combines the core system with
<br /> bundled versions of these packages.</p>
<p> Alternatively, you may now install a Minimal Racket distribution
<br /> --- which is about 1/10 the size of the main distribution --- and
<br /> add only those packages that you need.</p>
<p> * Package installation supports pre-built packages that include
<br /> compiled byte code and rendered documentation, meaning packages can
<br /> be installed quickly when built versions are available. All
<br /> packages in the main distribution are available in pre-built form.</p>
<p>The recent 5.92 and 5.93 releases served as release candidates for 6.0,
<br />and 6.0 includes a few additional repairs related to the package
<br />system.</p>
<p>Further improvements to the package system are in the works, notably
<br />including package documentation on the package-catalog web site.</p>
<p>COMPATIBILITY NOTE: PLaneT, the previous Racket package system, will
<br />remain in place for the foreseeable future, but we expect all package
<br />work to shift to the new system.</p>
<p>Beyond the package system, this release brings a number of other
<br />changes:</p>
<p> * Racket's HTML documentation has a new and improved look, thanks to
<br /> Matthew Butterick.</p>
<p> * The documentation includes a style guide, "How to Program Racket"
<br /> <a href="http://docs.racket-lang.org/style/">http://docs.racket-lang.org/style/</a></p>
<p> * Racket's JIT compiler supports the ARM architecture.</p>
<p> * Racket supports the Mac's Retina display mode.</p>
<p> * The performance of the Typed Racket compiler improved by 50% on
<br /> some typed programs; e.g., see <a href="http://bit.ly/1d0Ye4z">http://bit.ly/1d0Ye4z</a></p>
<p> * The profiler provides a new mode that uses the errortrace library
<br /> to produce fine-grained profiles.</p>
<p> * A new contract profiler reports how much time programs spend
<br /> checking contracts, and which contracts are most expensive.</p>
<p> * The math/flonum library exports fast 105-bit precision operations.</p>
<p> * Check Syntax handles generated identifiers, especially those
<br /> introduced by struct (e.g. field selectors) and Redex (e.g., e_1,
<br /> e_2)</p>
<p> * 2htdp/batch-io includes functions for dealing with html/xml in
<br /> files and web sites as X-expressions plus conveniences for
<br /> web-based graph traversals.</p>
<p> * The `gen:set' generic interface extends set operations to work on
<br /> user-defined types that implement set methods, as well as on other
<br /> set-like built-in types, such as lists.</p>
<p> * Picts support conversion to SVG format.</p>
<p> * Under unix, Racket provides desktop entries (.desktop files) for
<br /> its graphical executables.</p>rmculpeppertag:github.com,2008:Repository/28166794/v5.932014-01-31T23:23:45ZRacket v5.93<p>Racket v5.93</p>
<p>Version 5.93 repairs a few problems with the recent v5.92 release (in
<br />preparation for a v6.0 release):</p>
<p> * fixed a low-level concurrency problem with the GUI library for Mac
<br /> OS X, which especially affected 32-bit builds;</p>
<p> * fixed GRacket-based launchers (such as `drracket`) in a Unix-style
<br /> installation;</p>
<p> * expanded the list of recognized OpenSSL library versions;</p>
<p> * fixed small CSS problems and inconsistencies (relative to v5.3.6) in
<br /> the new Scribble style as used by the Racket documentation; and</p>
<p> * added the version number back to the "racket" directory within the
<br /> source distribution bundle.</p>rmculpeppertag:github.com,2008:Repository/28166794/v5.922014-01-25T16:56:08ZRacket v5.92<p>Racket v5.92</p>
<p>Racket 5.92 has a new package system, including a catalog of
<br />hundreds of already-available packages. Please visit</p>
<p> <a href="http://pkgs.racket-lang.org/">http://pkgs.racket-lang.org/</a></p>
<p>for an overview of the packages.</p>
<p>Recent releases included the "beta" versions of the package system.
<br />Racket version 5.92 incorporates many improvements suggested by these
<br />preliminary experiences:</p>
<p> * A package is treated as a single collection by default, so it is
<br /> even easier to use a Github repository as a package. Get started
<br /> quickly:
<br /> <a href="http://docs.racket-lang.org/pkg/getting-started.html">http://docs.racket-lang.org/pkg/getting-started.html</a></p>
<p> * DrRacket includes a new package manager GUI, available via the
<br /> File|Package Manager ... menu item. The GUI is also available
<br /> as a stand-alone program via the "gui-pkg-manager" package.</p>
<p> * The main Racket distribution has been separated into about 200
<br /> packages. The Racket installer combines the core system with
<br /> bundled versions of these packages.</p>
<p> Alternatively, you may now install a Minimal Racket distribution
<br /> --- which is about 1/10 the size of the main distribution --- and
<br /> add only those packages that you need.</p>
<p> * Package installation supports pre-built packages that include
<br /> compiled byte code and rendered documentation, meaning packages can
<br /> be installed quickly when built versions are available. All
<br /> packages in the main distribution are available in pre-built form.</p>
<p>Further improvements are in the works, notably including package
<br />documentation on the package-catalog web site.</p>
<p>COMPATIBILITY NOTE: PLaneT, the previous Racket package system, will
<br />remain in place for the foreseeable future, but we expect all package
<br />work to shift to the new system.</p>
<p>Beyond the package system, this release brings a number of other
<br />changes:</p>
<p> * Racket's HTML documentation has a new and improved look, thanks to
<br /> Matthew Butterick.</p>
<p> * The documentation includes a style guide, "How to Program Racket"
<br /> <a href="http://docs.racket-lang.org/style/">http://docs.racket-lang.org/style/</a></p>
<p> * Racket's JIT compiler supports the ARM architecture.</p>
<p> * Racket supports the Mac's Retina display mode.</p>
<p> * The performance of the Typed Racket compiler improved by 50% on
<br /> some typed programs; e.g., see <a href="http://bit.ly/1d0Ye4z">http://bit.ly/1d0Ye4z</a></p>
<p> * The profiler provides a new mode that uses the errortrace library
<br /> to produce fine-grained profiles.</p>
<p> * A new contract profiler reports how much time programs spend
<br /> checking contracts, and which contracts are most expensive.</p>
<p> * The math/flonum library exports fast 105-bit precision operations.</p>
<p> * Check Syntax handles generated identifiers, especially those
<br /> introduced by struct (e.g. field selectors) and Redex (e.g., e_1,
<br /> e_2)</p>
<p> * 2htdp/batch-io includes functions for dealing with html/xml in
<br /> files and web sites as X-expressions plus conveniences for
<br /> web-based graph traversals.</p>
<p> * The `gen:set' generic interface extends set operations to work on
<br /> user-defined types that implement set methods, as well as on other
<br /> set-like built-in types, such as lists.</p>
<p> * Picts support conversion to SVG format.</p>
<p> * Under unix, Racket provides desktop entries (.desktop files) for
<br /> its graphical executables.</p>rmculpeppertag:github.com,2008:Repository/28166794/v5.3.62013-08-10T12:47:15ZRacket v5.3.6<p>Racket v5.3.6</p>
<p>Racket v5.3.6 is a bug-fix release. It eliminates errors from v5.3.5
<br />that people have found over the summer.</p>elibarzilaytag:github.com,2008:Repository/28166794/v5.3.52013-06-18T11:00:31ZRacket v5.3.5<p>Racket v5.3.5</p>
<p>This is a special-purpose release to match the arrival of "Realm of
<br />Racket" in bookstores. Racket v.5.3.5 adds a single `realm'
<br />collection to the v5.3.4 release. The new collection contains the
<br />source code that readers of Realm may wish to use for experiments.</p>elibarzilaytag:github.com,2008:Repository/28166794/v5.3.42013-05-08T16:21:58ZRacket v5.3.4<p>Racket v5.3.4</p>
<p>* Extflonums (80-bit floating-point numbers) are supported on some
<br /> x86/x86_64 platforms -- including Windows, and including platforms
<br /> where Racket is compiled to use SSE instructions for flonum
<br /> arithmetic. Thanks to Michael Filonenko.</p>
<p>* OS X: DrRacket and all of the other apps are now signed with an
<br /> official key.</p>
<p>* Tally Maze: a new game based an enumeration of 2d mazes.</p>
<p>* The Optimization Coach, a DrRacket plugin, has been moved from the
<br /> Racket distribution to the Racket package repository. Install it
<br /> with: raco pkg install optimization-coach</p>
<p>* Redex: `define-union-language' now merges productions when
<br /> languages define the same nonterminals. Thanks to William Bowman.</p>
<p>* The `srfi/19' library is now compatible with the date structure
<br /> type exported by `racket/base'.</p>elibarzilaytag:github.com,2008:Repository/28166794/v5.3.32013-02-15T20:38:09ZRacket v5.3.3<p>Racket v5.3.3</p>
<p>This is a bug-fix release to address a flaw in DrRacket v5.3.2
<br />concerning interactions between the contour window and the syntax
<br />coloring.</p>elibarzilay