Remove release announcements.
These are now in the `racket/racket-lang-org` repository.
This commit is contained in:
parent
93ca457c56
commit
93d1fbd0ad
|
@ -1,3 +0,0 @@
|
||||||
The format of each release-anouncement file is the release date in
|
|
||||||
seconds (like the result of `(current-seconds)`), any amount of
|
|
||||||
whitespace, and the the release announcement.
|
|
|
@ -1,64 +0,0 @@
|
||||||
1280887792
|
|
||||||
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).
|
|
|
@ -1,58 +0,0 @@
|
||||||
1289106828
|
|
||||||
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.
|
|
|
@ -1,36 +0,0 @@
|
||||||
1275916233
|
|
||||||
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.
|
|
|
@ -1,64 +0,0 @@
|
||||||
1304146952
|
|
||||||
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.
|
|
|
@ -1,52 +0,0 @@
|
||||||
1312399420
|
|
||||||
Racket v5.1.2
|
|
||||||
|
|
||||||
* The download page includes 64-bit installers for Mac OS X,
|
|
||||||
Windows, and two Debian flavors. Racket now supports OS X Lion.
|
|
||||||
|
|
||||||
* Racket now includes a new `racket/place' library to support
|
|
||||||
parallelism, complementing `racket/future'. Racket's parallel
|
|
||||||
build process is now based on places instead of multiple OS
|
|
||||||
processes.
|
|
||||||
|
|
||||||
Places support share-nothing parallelism and message-passing
|
|
||||||
communication. Compared to futures, places are heavyweight, but
|
|
||||||
they have a simpler performance model.
|
|
||||||
|
|
||||||
* The syntax-certificate system has been replaced by a syntax-taint
|
|
||||||
system. Both certificates and taints were designed to protect
|
|
||||||
otherwise inaccessible bindings from abuse when they appear in
|
|
||||||
macro expansions. Taints are simpler and lighter, and the switch
|
|
||||||
closes known holes in the certificate system. Macros that are not
|
|
||||||
implemented with `syntax-rules' or `define-syntax-rule', however,
|
|
||||||
must explicitly use `syntax-protect' to protect their expansions
|
|
||||||
from abuse.
|
|
||||||
|
|
||||||
* The `net/url' library supports HTTPS connections, but beware that
|
|
||||||
by default all sites are accepted (equivalent to ignoring a
|
|
||||||
browser's warnings about untrusted certificates).
|
|
||||||
|
|
||||||
* Error messages in the student languages use a simplified
|
|
||||||
vocabulary and consistent phrasings. If you maintain curriculum
|
|
||||||
material or teachpacks then please consider updating. See the
|
|
||||||
"Error Message Composition Guidelines" section in the
|
|
||||||
documentation for details.
|
|
||||||
|
|
||||||
* Typed Racket: almost all core Racket data structures and
|
|
||||||
operations are now accessible in Typed Racket (most of this work
|
|
||||||
is due to prolific contributor Eric Dobson). The performance of
|
|
||||||
the typechecker has been significantly improved.
|
|
||||||
|
|
||||||
* The `scriblib/bibtex' library supports BibTeX-formatted citation
|
|
||||||
databases in Scribble documents. BibTeX can be tricky to parse,
|
|
||||||
so please report failed entries as bug reports.
|
|
||||||
|
|
||||||
* The `for' forms now support an `#:unless' clause, and a
|
|
||||||
nonnegative integer can be used as a sequence. The new `compose1'
|
|
||||||
function creates single-valued composition functions. The
|
|
||||||
`racket/function' library now provides `identity', `thunk', and
|
|
||||||
`thunk*'.
|
|
||||||
|
|
||||||
* The license has been clarified: we now use LGPLv2.1 uniformly.
|
|
||||||
(The license file used to specify LGPLv2, contrary to the download
|
|
||||||
pages.)
|
|
|
@ -1,6 +0,0 @@
|
||||||
1313480645
|
|
||||||
Racket v5.1.3
|
|
||||||
|
|
||||||
This is a bugfix release, resolving the DrRacket issue with the contour
|
|
||||||
view. In addition, two tex files with problematic licensing were
|
|
||||||
removed.
|
|
|
@ -1,79 +0,0 @@
|
||||||
1297739878
|
|
||||||
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?)
|
|
|
@ -1,48 +0,0 @@
|
||||||
1332774630
|
|
||||||
Racket v5.2.1
|
|
||||||
|
|
||||||
* Performance improvements include the use of epoll()/kqueue() instead
|
|
||||||
of select() for the Racket thread scheduler, cross-module inlining of
|
|
||||||
small functions, and the use of SSE instead of x87 for JIT-compiled
|
|
||||||
floating-point operations on platforms where SSE is always available
|
|
||||||
(including x86_64 platforms). A related change is the interning of
|
|
||||||
literal numbers, strings, byte strings, characters, and regexps that
|
|
||||||
appear in code and syntax objects.
|
|
||||||
|
|
||||||
* DrRacket uses a set of composable ray-traced icons available from the
|
|
||||||
new `images' library collection.
|
|
||||||
|
|
||||||
* Typed Racket's `typecheck-fail' form allows macro creators to
|
|
||||||
customize the error messages that Typed Racket produces. This is
|
|
||||||
especially useful when creating pattern matching macros.
|
|
||||||
|
|
||||||
* The performance of Redex's matcher has been substantially improved;
|
|
||||||
depending on the model you should see improvements between 2x and 50x
|
|
||||||
in the time it takes to reduce terms.
|
|
||||||
|
|
||||||
* Plots look nicer and are more correct at very small and very large
|
|
||||||
scales. New features include customizable dual axis ticks and
|
|
||||||
transforms (e.g., log axes, date and currency ticks, axis interval
|
|
||||||
collapse and stretch), stacked histograms, and 3D vector fields. The
|
|
||||||
legacy `fit' function and libfit have been removed.
|
|
||||||
|
|
||||||
* The `2htdp/universe' library's `big-bang' form supports an
|
|
||||||
experimental game pad key handler.
|
|
||||||
|
|
||||||
* The `db' library now supports nested transactions and PostgreSQL
|
|
||||||
arrays. Bugs involving MySQL authentication and memory corruption in
|
|
||||||
the SQLite bindings have been fixed.
|
|
||||||
|
|
||||||
* The Macro Stepper tool in DrRacket no longer executes a program after
|
|
||||||
expanding it.
|
|
||||||
|
|
||||||
* In the DMdA teaching languages, infinite recursive signatures
|
|
||||||
("streams", for example) with no intervening `mixed' are now
|
|
||||||
supported, and the signatures of record definitions without fields now
|
|
||||||
have generators for use with `property'.
|
|
||||||
|
|
||||||
* MysterX's ActiveX support is deprecated and will be removed in the
|
|
||||||
next release. MysterX's core COM functionality will become deprecated
|
|
||||||
in the next release, but COM functionality will be supported for the
|
|
||||||
foreseeable future as a compatibility layer over a forthcoming
|
|
||||||
`ffi/com' library.
|
|
|
@ -1,132 +0,0 @@
|
||||||
1320893942
|
|
||||||
Racket v5.2
|
|
||||||
|
|
||||||
Release Highlights:
|
|
||||||
|
|
||||||
* DrRacket comes with an experimental, on-line check syntax tool,
|
|
||||||
although this new tool is disabled default. See below for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
* The new `db' library offers a high-level, functional interface to
|
|
||||||
popular relational database systems, including PostgreSQL, MySQL,
|
|
||||||
and SQLite, as well as other systems via ODBC.
|
|
||||||
|
|
||||||
* A new XREPL collection provides convenient commands for a plain
|
|
||||||
racket REPL. It is particularly convenient for people who prefer
|
|
||||||
console-based work and alternative editors. See also the new
|
|
||||||
chapter on command-line tools and other editors at the end of the
|
|
||||||
Racket Guide.
|
|
||||||
|
|
||||||
* The `plot' collection has been reimplemented in Racket. It now
|
|
||||||
offers PDF output, log axes, histograms, and more. Some code that
|
|
||||||
uses `plot' will still work, and some will need light porting.
|
|
||||||
The `plot/compat' module offers expedient backward compatibility.
|
|
||||||
|
|
||||||
* DrRacket uses more conventional key bindings: `C-t' creates a new
|
|
||||||
tab, `C-w' closes the current one, and `C-r' runs the definitions.
|
|
||||||
On Mac OS X, the Command key is used. See "Defining Custom
|
|
||||||
Shortcuts" in the DrRacket manual for an example that uses the old
|
|
||||||
key bindings.
|
|
||||||
|
|
||||||
* The new `raco link' command registers a directory as a collection,
|
|
||||||
which allows the collection directory to reside outside the
|
|
||||||
"collects" tree and without changing the PLTCOLLECTS environment
|
|
||||||
variable.
|
|
||||||
|
|
||||||
* Typed Racket:
|
|
||||||
- Typed Racket provides static performance debugging support to
|
|
||||||
show which code gets optimized and point out code that does not.
|
|
||||||
Use the "Performance Report" button in DrRacket.
|
|
||||||
- More intuitive types in printouts in the REPL and in error
|
|
||||||
messages. Use `:query-result-type' to explore types, or
|
|
||||||
`:print-type' for a full printout.
|
|
||||||
- Typed Racket now supports defining function with optional
|
|
||||||
arguments using the same syntax as Racket.
|
|
||||||
|
|
||||||
* Redex now supports specifying (and testing and automatically
|
|
||||||
typesetting) judgment forms including type systems and SOS-style
|
|
||||||
operational semantics.
|
|
||||||
|
|
||||||
* Fixed several GUI problems, including problems on Ubuntu 11.10
|
|
||||||
(GTK+ 3) and 64-bit Mac OS X.
|
|
||||||
|
|
||||||
* Internal-definition expansion has changed to use `let*' semantics
|
|
||||||
for sequences that contain no back references. This change
|
|
||||||
removes a performance penalty for using internal definitions
|
|
||||||
instead of `let' in common cases, and it only changes the meaning
|
|
||||||
of programs that capture continuations in internal definitions.
|
|
||||||
Internal definitions are now considered preferable in style to
|
|
||||||
`let'.
|
|
||||||
|
|
||||||
* Support for `begin-for-syntax' has been generalized; modules may
|
|
||||||
now define and export both value bindings and syntax bindings
|
|
||||||
(macros) at phase 1 and higher.
|
|
||||||
|
|
||||||
Due to a bug, phase 1 syntax (or higher) is not available in
|
|
||||||
DrRacket's `#lang'-based REPL. A simple workaround is to disable
|
|
||||||
debugging in DrRacket (see "no debugging" radio button in detailed
|
|
||||||
language dialog).
|
|
||||||
|
|
||||||
Additional Items:
|
|
||||||
|
|
||||||
* The `racket/gui' library (and Slideshow) provides more support for
|
|
||||||
multiple-screen displays.
|
|
||||||
|
|
||||||
* DrRacket remembers whether an opened file used LF or CRLF line
|
|
||||||
endings, and will continue using the same. When creating a new
|
|
||||||
file, a preference determines how it is saved.
|
|
||||||
|
|
||||||
* `net/url' can now follow HTTP redirections.
|
|
||||||
|
|
||||||
* The LNCS and JFP class files are no longer distributed with
|
|
||||||
Racket. Instead, they are downloaded on demand.
|
|
||||||
|
|
||||||
* The Algol language implementation is now available as a plain
|
|
||||||
language using `#lang algol60'.
|
|
||||||
|
|
||||||
* The Racket-to-C compiler (as accessed via `raco ctool' or `mzc')
|
|
||||||
has been removed; Racket's JIT has long provided better
|
|
||||||
performance, and the FFI provides better access to C libraries.
|
|
||||||
|
|
||||||
* Contracts can be applied to exports with the new `contract-out'
|
|
||||||
form within `provide', instead of a separate `provide/contract'
|
|
||||||
form. (The new `contract-out' form is implemented as a new kind
|
|
||||||
of "provide pre-transformer".)
|
|
||||||
|
|
||||||
* The `date*' structure type is an extension of `date' with
|
|
||||||
`nanosecond' and `time-zone-name' fields.
|
|
||||||
|
|
||||||
* New looping constructs: `for/sum' and `for/product'.
|
|
||||||
|
|
||||||
* Direct calls to keyword-accepting functions are now optimized to
|
|
||||||
eliminate the overhead of keywords. In addition, the compiler
|
|
||||||
detects and logs warnings for keyword-argument mismatches.
|
|
||||||
|
|
||||||
* The libfit interface is available from `plot/deprecated/fit', and
|
|
||||||
will be removed in the near future.
|
|
||||||
|
|
||||||
* The Unix installer has been re-done, and it is now more robust.
|
|
||||||
|
|
||||||
* The built-in reader and printer support for Honu is removed.
|
|
||||||
(This functionality is re-implemented in Racket.)
|
|
||||||
|
|
||||||
On-line Check Syntax:
|
|
||||||
|
|
||||||
DrRacket now provides an on-line version of the syntax check tool,
|
|
||||||
which means that syntax checking runs automatically while you
|
|
||||||
continue to edit a program. With this tool enabled, its annotations
|
|
||||||
(e.g., binding arrows) and actions (e.g., the renaming refactoring
|
|
||||||
and direct documentation links) are almost always available.
|
|
||||||
|
|
||||||
We have noticed that on-line syntax checking renders DrRacket
|
|
||||||
unstable on occasion, perhaps because it relies on relatively new
|
|
||||||
support for parallelism. Occurrences of the problem are rare, but
|
|
||||||
they are not rare enough, which is why we have disabled the tool by
|
|
||||||
default. At the same time, current users of the tool find it so
|
|
||||||
valuable that we felt it should be included in the release. We
|
|
||||||
expect to track down the remaining problems and enable the tool by
|
|
||||||
default in near-future release.
|
|
||||||
|
|
||||||
To enable on-line syntax checking (for `#lang'-based programs only),
|
|
||||||
click on the red dot in the bottom right of DrRacket's window. To
|
|
||||||
turn it off, click there again.
|
|
|
@ -1,73 +0,0 @@
|
||||||
1352317841
|
|
||||||
Racket v5.3.1
|
|
||||||
|
|
||||||
Racket:
|
|
||||||
|
|
||||||
* The `case' form dispatches on characters, fixnums, symbols, and
|
|
||||||
keywords in logarithmic time. (Thanks to Jon Zeppieri.)
|
|
||||||
|
|
||||||
* The new `racket/format' library provides new and improved
|
|
||||||
string-formatting functions.
|
|
||||||
|
|
||||||
* Logging tools include improved filtering support based on the name
|
|
||||||
of a logger. A new `define-logger' form simplifies the use of
|
|
||||||
named loggers. Forms such as `log-debug' now support string
|
|
||||||
formatting.
|
|
||||||
|
|
||||||
* The `for' forms now support `#:break' and `#:final' clauses.
|
|
||||||
|
|
||||||
* The new PLTCOMPILEDROOTS environment variable configures the
|
|
||||||
search path for compiled bytecode.
|
|
||||||
|
|
||||||
DrRacket:
|
|
||||||
|
|
||||||
* Check Syntax now summarizes the documentation (i.e., the blue
|
|
||||||
boxes) for the identifier at the insertion point in the top-right
|
|
||||||
corner of the definitions window.
|
|
||||||
|
|
||||||
* Check Syntax now runs continuously for programs that declare their
|
|
||||||
language within the source. This mode has been available for
|
|
||||||
several of the past releases, but now enabled by default.
|
|
||||||
|
|
||||||
* DrRacket can spell-check string constants (enable this in the Edit
|
|
||||||
menu).
|
|
||||||
|
|
||||||
Typed Racket:
|
|
||||||
|
|
||||||
* Typed Racket interprets the Any type as a different contract.
|
|
||||||
This may signal dynamic errors in some existing mixed
|
|
||||||
typed/untyped programs. The normal fix is to replace a use of Any
|
|
||||||
with a more specific types.
|
|
||||||
|
|
||||||
* NaN is included in all of Typed Racket's floating-point types,
|
|
||||||
which makes precise floating-point types easier to use.
|
|
||||||
|
|
||||||
* Typed Racket supports a `cast' operation with support for
|
|
||||||
higher-order types.
|
|
||||||
|
|
||||||
* Typed Racket provides the `:query-type/args' and
|
|
||||||
`:query-type/result' utilities to explore types at the REPL.
|
|
||||||
|
|
||||||
Miscellaneous:
|
|
||||||
|
|
||||||
* The `compatibility' collection provides features from Racket
|
|
||||||
relatives, such as `defmacro' and mutable lists. These features
|
|
||||||
are provided to ease porting code to Racket. Avoid them in modern
|
|
||||||
Racket code.
|
|
||||||
|
|
||||||
* Screenshots of the widgets provided by the Racket GUI library are
|
|
||||||
included in the documentation. (Thanks to Diogo F. S. Ramos.)
|
|
||||||
|
|
||||||
* FrTime was ported to racket lang. (Thanks to Patrick Mahoney.)
|
|
||||||
|
|
||||||
Deprecation:
|
|
||||||
|
|
||||||
The following has been deprecated and will be removed in the January
|
|
||||||
2013 release:
|
|
||||||
|
|
||||||
* the `planet' command-line tool; use `raco planet' instead.
|
|
||||||
|
|
||||||
The following has been deprecated and will be removed in the August
|
|
||||||
2013 release:
|
|
||||||
|
|
||||||
* the `mzlib/class100' library; use `racket/class' instead.
|
|
|
@ -1,88 +0,0 @@
|
||||||
1359691127
|
|
||||||
Racket v5.3.2
|
|
||||||
|
|
||||||
Core Libraries:
|
|
||||||
|
|
||||||
* The new `math' library provides functions and data structures for
|
|
||||||
working with numbers and collections of numbers. Functions include
|
|
||||||
non-elementary (such as gamma, zeta, Lambert's W), number-theoretic
|
|
||||||
(factorization, modular arithmetic), linear algebra (arithmetic,
|
|
||||||
decompositions), and statistical (expected values, order statistics,
|
|
||||||
binning). Data structures include arbitrary-precision bigfloats,
|
|
||||||
probability distributions, and multidimensional arrays.
|
|
||||||
|
|
||||||
* The new `file/untar', `file/untgz', and `file/unzip' libraries support
|
|
||||||
unpacking widely used archive formats.
|
|
||||||
|
|
||||||
* The new `lazy-require' form allows programs to delay the loading and
|
|
||||||
instantiation of helper modules until they are needed.
|
|
||||||
|
|
||||||
* The new `data/bit-vector' library provides an implementation of bit
|
|
||||||
vectors (a mutable sequence of booleans) supporting popcount.
|
|
||||||
|
|
||||||
* The `racket/generic' library allows the specification of default
|
|
||||||
method implementations for core datatypes.
|
|
||||||
|
|
||||||
* The `openssl' library can verify hostnames and use the operating
|
|
||||||
system's certificate store to verify certificates.
|
|
||||||
|
|
||||||
Package System:
|
|
||||||
|
|
||||||
* A new package system is in beta release. This system will become
|
|
||||||
Planet's successor. It differs significantly from the latter. For
|
|
||||||
details, please read the documentation at
|
|
||||||
http://docs.racket-lang.org/planet2/ and list your packages on the new
|
|
||||||
index at https://pkg.racket-lang.org/.
|
|
||||||
|
|
||||||
* The `raco test' command supports testing by collection and package, in
|
|
||||||
addition to by directory and file, with the "-c" and "-p" options.
|
|
||||||
|
|
||||||
Teaching Libraries:
|
|
||||||
|
|
||||||
* batch-io: the read and write functions work on Unix-style standard
|
|
||||||
input and output.
|
|
||||||
|
|
||||||
DrRacket:
|
|
||||||
|
|
||||||
* DrRacket's GUI is more responsive.
|
|
||||||
|
|
||||||
* The automatic parenthesis insertion mode is improved.
|
|
||||||
|
|
||||||
Scribble:
|
|
||||||
|
|
||||||
* Scribble renders Markdown format files via the "--markdown"
|
|
||||||
command-line flag. Example use case: Generate documentation hosted on
|
|
||||||
GitHub or BitBucket.
|
|
||||||
|
|
||||||
* Documentation cross-reference information is stored in an SQLite3
|
|
||||||
database, which means that SQLite3 is required for building Racket
|
|
||||||
documentation on Unix/Linux machines (but SQLite3 is included in
|
|
||||||
Racket distributions for Windows and Mac OS X).
|
|
||||||
|
|
||||||
Using a database for cross-reference information significantly reduces
|
|
||||||
the initial footprint of DrRacket, since DrRacket no longer needs to
|
|
||||||
load all cross-reference information.
|
|
||||||
|
|
||||||
Typed Racket:
|
|
||||||
|
|
||||||
* Typed Racket programs can require `plot/typed' to draw plots. List-
|
|
||||||
and vector-accepting functions accept general sequences.
|
|
||||||
|
|
||||||
* Typed Racket supports Racket's delimited continuation and continuation
|
|
||||||
mark operators.
|
|
||||||
|
|
||||||
Redex:
|
|
||||||
|
|
||||||
* Added more support for `define-judgment-form', including random
|
|
||||||
generation for well-formed judgments and visualization of judgments.
|
|
||||||
|
|
||||||
Deprecation:
|
|
||||||
|
|
||||||
The following have been removed in this release:
|
|
||||||
|
|
||||||
* the `planet' command-line tool; use `raco planet' instead.
|
|
||||||
|
|
||||||
The following has been deprecated and will be removed in the August 2013
|
|
||||||
release:
|
|
||||||
|
|
||||||
* the `mzlib/class100' library; use `racket/class' instead.
|
|
|
@ -1,6 +0,0 @@
|
||||||
1360960689
|
|
||||||
Racket v5.3.3
|
|
||||||
|
|
||||||
This is a bug-fix release to address a flaw in DrRacket v5.3.2
|
|
||||||
concerning interactions between the contour window and the syntax
|
|
||||||
coloring.
|
|
|
@ -1,22 +0,0 @@
|
||||||
1368030118
|
|
||||||
Racket v5.3.4
|
|
||||||
|
|
||||||
* Extflonums (80-bit floating-point numbers) are supported on some
|
|
||||||
x86/x86_64 platforms -- including Windows, and including platforms
|
|
||||||
where Racket is compiled to use SSE instructions for flonum
|
|
||||||
arithmetic. Thanks to Michael Filonenko.
|
|
||||||
|
|
||||||
* OS X: DrRacket and all of the other apps are now signed with an
|
|
||||||
official key.
|
|
||||||
|
|
||||||
* Tally Maze: a new game based an enumeration of 2d mazes.
|
|
||||||
|
|
||||||
* The Optimization Coach, a DrRacket plugin, has been moved from the
|
|
||||||
Racket distribution to the Racket package repository. Install it
|
|
||||||
with: raco pkg install optimization-coach
|
|
||||||
|
|
||||||
* Redex: `define-union-language' now merges productions when
|
|
||||||
languages define the same nonterminals. Thanks to William Bowman.
|
|
||||||
|
|
||||||
* The `srfi/19' library is now compatible with the date structure
|
|
||||||
type exported by `racket/base'.
|
|
|
@ -1,7 +0,0 @@
|
||||||
1371553231
|
|
||||||
Racket v5.3.5
|
|
||||||
|
|
||||||
This is a special-purpose release to match the arrival of "Realm of
|
|
||||||
Racket" in bookstores. Racket v.5.3.5 adds a single `realm'
|
|
||||||
collection to the v5.3.4 release. The new collection contains the
|
|
||||||
source code that readers of Realm may wish to use for experiments.
|
|
|
@ -1,5 +0,0 @@
|
||||||
1376138835
|
|
||||||
Racket v5.3.6
|
|
||||||
|
|
||||||
Racket v5.3.6 is a bug-fix release. It eliminates errors from v5.3.5
|
|
||||||
that people have found over the summer.
|
|
|
@ -1,82 +0,0 @@
|
||||||
1344312796
|
|
||||||
Racket v5.3
|
|
||||||
|
|
||||||
* Submodules are nested module declarations that can be loaded and
|
|
||||||
run independently from the enclosing module. For an overview of
|
|
||||||
submodules, see
|
|
||||||
|
|
||||||
http://blog.racket-lang.org/2012/06/submodules.html
|
|
||||||
|
|
||||||
* The futures visualizer is a graphical profiling tool for parallel
|
|
||||||
programs using futures. The tool shows a detailed execution
|
|
||||||
timeline depicting the migration of futures between threads, and
|
|
||||||
gives detailed information about each runtime synchronization that
|
|
||||||
occurred during program execution. In addition, `would-be-future'
|
|
||||||
is a special type of future that always executes sequentially and
|
|
||||||
records all potential barricades a regular future would encounter.
|
|
||||||
|
|
||||||
* Optimization Coach (formerly Performance Report) reports
|
|
||||||
information about Racket's inlining optimizations. Optimization
|
|
||||||
Coach can be launched in any language through the View menu.
|
|
||||||
|
|
||||||
* The new `images/flomap' library defines floating-point bitmaps and
|
|
||||||
fast image processing operations on them. It is written in Typed
|
|
||||||
Racket, so Typed Racket code may use it without the cost of
|
|
||||||
contract checks.
|
|
||||||
|
|
||||||
* The new `json' library supports parsing and generating JSON.
|
|
||||||
(Originally based on Dave Herman's planet library.)
|
|
||||||
|
|
||||||
* `racket/string' is extended with a set of simplified string
|
|
||||||
manipulation functions that are more convenient than using
|
|
||||||
regexps. `regexp-match*' and friends can now be used with new
|
|
||||||
keyword arguments to return specific matched regexp group/s and
|
|
||||||
gaps between matches.
|
|
||||||
|
|
||||||
* The new `racket/generic' library allows generic function
|
|
||||||
definitions, which dispatch to methods added to a structure type
|
|
||||||
via the new `#:methods' keyword.
|
|
||||||
|
|
||||||
* The `class' form supports declaring a method abstract. An
|
|
||||||
abstract method prevents a class from being instantiated unless it
|
|
||||||
is overridden.
|
|
||||||
|
|
||||||
* The contract library comes with support for interfaces, generics,
|
|
||||||
prompts, continuation-marks, and structs.
|
|
||||||
|
|
||||||
* Most error messages use a new multi-line format that is more
|
|
||||||
consistent with contract errors and accommodates more information.
|
|
||||||
|
|
||||||
* Typed Racket supports function definitions with keyword arguments;
|
|
||||||
the startup time of Typed Racket programs has been sharply
|
|
||||||
reduced.
|
|
||||||
|
|
||||||
* The new `ffi/com' library replaces MysterX; a compatibility
|
|
||||||
`mysterx' library remains, but without ActiveX support. The new
|
|
||||||
`ffi/unsafe/com' library offers a more primitive and direct way to
|
|
||||||
use COM classes and methods.
|
|
||||||
|
|
||||||
* There is now a very complete completion code for zsh. It is not
|
|
||||||
included in the distribution though; get it at http://goo.gl/DU8JK
|
|
||||||
(This script and the bash completions will be included in the
|
|
||||||
standard installers in future versions.)
|
|
||||||
|
|
||||||
--- DEPRECATION ----------------------------------------------------
|
|
||||||
|
|
||||||
Effective this release:
|
|
||||||
|
|
||||||
- The `tex2page' and `combinator-parser' libraries have been moved
|
|
||||||
from the Racket distribution to PLaneT:
|
|
||||||
|
|
||||||
(require (planet plt/tex2page))
|
|
||||||
(require (planet plt/combinator-parser))
|
|
||||||
|
|
||||||
The following has been deprecated and will be removed in the
|
|
||||||
January 2013 release:
|
|
||||||
|
|
||||||
- the `planet' command-line tool; use `raco planet' instead.
|
|
||||||
|
|
||||||
The following has been deprecated and will be removed in the
|
|
||||||
August 2013 release:
|
|
||||||
|
|
||||||
- the `mzlib/class100' library; use `racket/class' instead.
|
|
|
@ -1,83 +0,0 @@
|
||||||
1390668968
|
|
||||||
Racket v5.92
|
|
||||||
|
|
||||||
Racket 5.92 has a new package system, including a catalog of
|
|
||||||
hundreds of already-available packages. Please visit
|
|
||||||
|
|
||||||
http://pkgs.racket-lang.org/
|
|
||||||
|
|
||||||
for an overview of the packages.
|
|
||||||
|
|
||||||
Recent releases included the "beta" versions of the package system.
|
|
||||||
Racket version 5.92 incorporates many improvements suggested by these
|
|
||||||
preliminary experiences:
|
|
||||||
|
|
||||||
* A package is treated as a single collection by default, so it is
|
|
||||||
even easier to use a Github repository as a package. Get started
|
|
||||||
quickly:
|
|
||||||
http://docs.racket-lang.org/pkg/getting-started.html
|
|
||||||
|
|
||||||
* DrRacket includes a new package manager GUI, available via the
|
|
||||||
File|Package Manager ... menu item. The GUI is also available
|
|
||||||
as a stand-alone program via the "gui-pkg-manager" package.
|
|
||||||
|
|
||||||
* The main Racket distribution has been separated into about 200
|
|
||||||
packages. The Racket installer combines the core system with
|
|
||||||
bundled versions of these packages.
|
|
||||||
|
|
||||||
Alternatively, you may now install a Minimal Racket distribution
|
|
||||||
--- which is about 1/10 the size of the main distribution --- and
|
|
||||||
add only those packages that you need.
|
|
||||||
|
|
||||||
* Package installation supports pre-built packages that include
|
|
||||||
compiled byte code and rendered documentation, meaning packages can
|
|
||||||
be installed quickly when built versions are available. All
|
|
||||||
packages in the main distribution are available in pre-built form.
|
|
||||||
|
|
||||||
Further improvements are in the works, notably including package
|
|
||||||
documentation on the package-catalog web site.
|
|
||||||
|
|
||||||
COMPATIBILITY NOTE: PLaneT, the previous Racket package system, will
|
|
||||||
remain in place for the foreseeable future, but we expect all package
|
|
||||||
work to shift to the new system.
|
|
||||||
|
|
||||||
Beyond the package system, this release brings a number of other
|
|
||||||
changes:
|
|
||||||
|
|
||||||
* Racket's HTML documentation has a new and improved look, thanks to
|
|
||||||
Matthew Butterick.
|
|
||||||
|
|
||||||
* The documentation includes a style guide, "How to Program Racket"
|
|
||||||
http://docs.racket-lang.org/style/
|
|
||||||
|
|
||||||
* Racket's JIT compiler supports the ARM architecture.
|
|
||||||
|
|
||||||
* Racket supports the Mac's Retina display mode.
|
|
||||||
|
|
||||||
* The performance of the Typed Racket compiler improved by 50% on
|
|
||||||
some typed programs; e.g., see http://bit.ly/1d0Ye4z
|
|
||||||
|
|
||||||
* The profiler provides a new mode that uses the errortrace library
|
|
||||||
to produce fine-grained profiles.
|
|
||||||
|
|
||||||
* A new contract profiler reports how much time programs spend
|
|
||||||
checking contracts, and which contracts are most expensive.
|
|
||||||
|
|
||||||
* The math/flonum library exports fast 105-bit precision operations.
|
|
||||||
|
|
||||||
* Check Syntax handles generated identifiers, especially those
|
|
||||||
introduced by struct (e.g. field selectors) and Redex (e.g., e_1,
|
|
||||||
e_2)
|
|
||||||
|
|
||||||
* 2htdp/batch-io includes functions for dealing with html/xml in
|
|
||||||
files and web sites as X-expressions plus conveniences for
|
|
||||||
web-based graph traversals.
|
|
||||||
|
|
||||||
* The `gen:set' generic interface extends set operations to work on
|
|
||||||
user-defined types that implement set methods, as well as on other
|
|
||||||
set-like built-in types, such as lists.
|
|
||||||
|
|
||||||
* Picts support conversion to SVG format.
|
|
||||||
|
|
||||||
* Under unix, Racket provides desktop entries (.desktop files) for
|
|
||||||
its graphical executables.
|
|
|
@ -1,19 +0,0 @@
|
||||||
1391210625
|
|
||||||
Racket v5.93
|
|
||||||
|
|
||||||
Version 5.93 repairs a few problems with the recent v5.92 release (in
|
|
||||||
preparation for a v6.0 release):
|
|
||||||
|
|
||||||
* fixed a low-level concurrency problem with the GUI library for Mac
|
|
||||||
OS X, which especially affected 32-bit builds;
|
|
||||||
|
|
||||||
* fixed GRacket-based launchers (such as `drracket`) in a Unix-style
|
|
||||||
installation;
|
|
||||||
|
|
||||||
* expanded the list of recognized OpenSSL library versions;
|
|
||||||
|
|
||||||
* fixed small CSS problems and inconsistencies (relative to v5.3.6) in
|
|
||||||
the new Scribble style as used by the Racket documentation; and
|
|
||||||
|
|
||||||
* added the version number back to the "racket" directory within the
|
|
||||||
source distribution bundle.
|
|
|
@ -1,62 +0,0 @@
|
||||||
1399579520
|
|
||||||
Racket v6.0.1
|
|
||||||
|
|
||||||
* A new `racket/undefined` library exports `undefined` as the value
|
|
||||||
currently produced by
|
|
||||||
|
|
||||||
(letrec ([x x]) x)
|
|
||||||
|
|
||||||
This library anticipates a future where that expression will raise
|
|
||||||
an exception. The `racket/undefined` library will continue to offer
|
|
||||||
the `undefined` value as a bridge between versions and as a last
|
|
||||||
resort.
|
|
||||||
|
|
||||||
* The drawing and GUI libraries provide improved support for
|
|
||||||
high-resolution bitmaps and their use on Retina displays. For
|
|
||||||
example, `read-bitmap` includes a `#:try-@2x?` option to trigger
|
|
||||||
substitutions through the usual "@2x" naming convention.
|
|
||||||
|
|
||||||
* Check Syntax cooperates with Typed Racket to show arrows and other
|
|
||||||
Check Syntax highlighting even when there is a type error.
|
|
||||||
|
|
||||||
* Functions provided via contract-out that have first-order contracts
|
|
||||||
perform better.
|
|
||||||
|
|
||||||
* The contract boundary between typed/untyped modules is much less
|
|
||||||
expensive. Typed Racket now avoids generating contracts for places
|
|
||||||
where contracts failures cannot happen.
|
|
||||||
|
|
||||||
* Occurrence typing now works better with when/unless. Example:
|
|
||||||
|
|
||||||
(let ((x (read)))
|
|
||||||
(unless (number? x) (error 'bad-input))
|
|
||||||
(add1 x))
|
|
||||||
|
|
||||||
* Types in Typed Racket are now pretty-printed.
|
|
||||||
|
|
||||||
* Function types can now be written in prefix style, which is now
|
|
||||||
preferred and is used for printing. Infix function types are still
|
|
||||||
accepted for backwards compatibility.
|
|
||||||
|
|
||||||
* A new `->*' type constructor is used for writing types for functions
|
|
||||||
with optional and keyword arguments. The notation is similar to the
|
|
||||||
matching contract combinator.
|
|
||||||
|
|
||||||
* Typed Racket forms do not have a `:' suffix by default now. For
|
|
||||||
example, the `struct' form replaces `struct:'. The suffixed versions
|
|
||||||
are all provided for backwards compatibility.
|
|
||||||
|
|
||||||
* Typed Racket now has preliminary support for classes and
|
|
||||||
objects. However, it is still experimental and the APIs are subject
|
|
||||||
to change.
|
|
||||||
|
|
||||||
* Type aliases in Typed Racket now support recursion and mutual
|
|
||||||
recursion. For example, `(define-type (MyList X) (U Null (Pair X
|
|
||||||
(MyList X))))' is now a valid type alias.
|
|
||||||
|
|
||||||
* Plot correctly renders intersecting 3D graphs and non-grid-aligned
|
|
||||||
3D rectangles.
|
|
||||||
|
|
||||||
* Elements in plots output in PDF/PS format have the same relative
|
|
||||||
scale as in other formats. In particular, it is not necessary to
|
|
||||||
adjust `plot-font-size` to make PDF plots look the same as PNG.
|
|
|
@ -1,87 +0,0 @@
|
||||||
1393453108
|
|
||||||
Racket v6.0
|
|
||||||
|
|
||||||
Racket 6.0 has a new package system, including a catalog of
|
|
||||||
hundreds of already-available packages. Please visit
|
|
||||||
|
|
||||||
http://pkgs.racket-lang.org/
|
|
||||||
|
|
||||||
for an overview of the packages.
|
|
||||||
|
|
||||||
Racket versions 5.3.4 through 5.3.6 included "beta" versions of the
|
|
||||||
package system. Racket version 6.0 incorporates many improvements
|
|
||||||
suggested by preliminary experiences in those versions:
|
|
||||||
|
|
||||||
* A package is treated as a single collection by default, so it is
|
|
||||||
even easier to use a GitHub repository as a package. Get started
|
|
||||||
quickly:
|
|
||||||
http://docs.racket-lang.org/pkg/getting-started.html
|
|
||||||
|
|
||||||
* DrRacket includes a new package manager GUI, available via the
|
|
||||||
File|Package Manager ... menu item. The GUI is also available
|
|
||||||
as a stand-alone program via the "gui-pkg-manager" package.
|
|
||||||
|
|
||||||
* The main Racket distribution has been separated into about 200
|
|
||||||
packages. The Racket installer combines the core system with
|
|
||||||
bundled versions of these packages.
|
|
||||||
|
|
||||||
Alternatively, you may now install a Minimal Racket distribution
|
|
||||||
--- which is about 1/10 the size of the main distribution --- and
|
|
||||||
add only those packages that you need.
|
|
||||||
|
|
||||||
* Package installation supports pre-built packages that include
|
|
||||||
compiled byte code and rendered documentation, meaning packages can
|
|
||||||
be installed quickly when built versions are available. All
|
|
||||||
packages in the main distribution are available in pre-built form.
|
|
||||||
|
|
||||||
The recent 5.92 and 5.93 releases served as release candidates for 6.0,
|
|
||||||
and 6.0 includes a few additional repairs related to the package
|
|
||||||
system.
|
|
||||||
|
|
||||||
Further improvements to the package system are in the works, notably
|
|
||||||
including package documentation on the package-catalog web site.
|
|
||||||
|
|
||||||
COMPATIBILITY NOTE: PLaneT, the previous Racket package system, will
|
|
||||||
remain in place for the foreseeable future, but we expect all package
|
|
||||||
work to shift to the new system.
|
|
||||||
|
|
||||||
Beyond the package system, this release brings a number of other
|
|
||||||
changes:
|
|
||||||
|
|
||||||
* Racket's HTML documentation has a new and improved look, thanks to
|
|
||||||
Matthew Butterick.
|
|
||||||
|
|
||||||
* The documentation includes a style guide, "How to Program Racket"
|
|
||||||
http://docs.racket-lang.org/style/
|
|
||||||
|
|
||||||
* Racket's JIT compiler supports the ARM architecture.
|
|
||||||
|
|
||||||
* Racket supports the Mac's Retina display mode.
|
|
||||||
|
|
||||||
* The performance of the Typed Racket compiler improved by 50% on
|
|
||||||
some typed programs; e.g., see http://bit.ly/1d0Ye4z
|
|
||||||
|
|
||||||
* The profiler provides a new mode that uses the errortrace library
|
|
||||||
to produce fine-grained profiles.
|
|
||||||
|
|
||||||
* A new contract profiler reports how much time programs spend
|
|
||||||
checking contracts, and which contracts are most expensive.
|
|
||||||
|
|
||||||
* The math/flonum library exports fast 105-bit precision operations.
|
|
||||||
|
|
||||||
* Check Syntax handles generated identifiers, especially those
|
|
||||||
introduced by struct (e.g. field selectors) and Redex (e.g., e_1,
|
|
||||||
e_2)
|
|
||||||
|
|
||||||
* 2htdp/batch-io includes functions for dealing with html/xml in
|
|
||||||
files and web sites as X-expressions plus conveniences for
|
|
||||||
web-based graph traversals.
|
|
||||||
|
|
||||||
* The `gen:set' generic interface extends set operations to work on
|
|
||||||
user-defined types that implement set methods, as well as on other
|
|
||||||
set-like built-in types, such as lists.
|
|
||||||
|
|
||||||
* Picts support conversion to SVG format.
|
|
||||||
|
|
||||||
* Under unix, Racket provides desktop entries (.desktop files) for
|
|
||||||
its graphical executables.
|
|
|
@ -1,60 +0,0 @@
|
||||||
1415051299
|
|
||||||
Racket v6.1.1
|
|
||||||
|
|
||||||
* The MAC OS X YOSEMITE compatibility problems are fixed. We
|
|
||||||
bundled a patched Pango text-drawing library with Racket.
|
|
||||||
|
|
||||||
* The WINDOWS [32-bit] releases fixes the window-update crashes.
|
|
||||||
We bundled a patched Cairo drawing library with Racket.
|
|
||||||
|
|
||||||
* TYPED RACKET closes two safety holes in the exception system.
|
|
||||||
The revised type system restricts `raise' to send only
|
|
||||||
instances of the `exn' structure type and flat data to
|
|
||||||
handlers. It also checks exception handlers properly.
|
|
||||||
NOTE: Previously well-typed programs may fail to typecheck.
|
|
||||||
|
|
||||||
* TYPED RACKET'S typed regions support casts and predicates.
|
|
||||||
|
|
||||||
* 2HTDP/IMAGE'S notion of equality ignores an image's baseline.
|
|
||||||
|
|
||||||
* The PACKAGE MANAGER supports a binary library installation mode,
|
|
||||||
which allows users to install packages without source or documentation.
|
|
||||||
Use the `--binary-lib' option with `raco pkg install'.
|
|
||||||
|
|
||||||
* The new DRRACKET-TOOL-LIB package factors out parts of DrRacket's
|
|
||||||
IDE so that they can be reused with other editors, such as Emacs.
|
|
||||||
|
|
||||||
* The COMPILER'S use-before-defined analysis has been repaired for
|
|
||||||
certain forms of nested `letrec', some `let' forms, and some
|
|
||||||
uses of `set!' or `with-continuation-mark'.
|
|
||||||
|
|
||||||
* The COMPILER performs additional bytecode optimizations.
|
|
||||||
Thanks to Gustavo Massaccesi.
|
|
||||||
|
|
||||||
* The CML library comes with a new `replace-evt' event constructor.
|
|
||||||
Thanks to Jan Dvořák.
|
|
||||||
|
|
||||||
* REDEX'S benchmark suite comes with a description of the benchmark
|
|
||||||
programs.
|
|
||||||
|
|
||||||
* REDEX'S metafunctions can be typeset using the "large left brace"
|
|
||||||
notation for conditionals.
|
|
||||||
|
|
||||||
* The CONTRACT library comes with an improved `contract-stronger?'.
|
|
||||||
Its error messages note that the contract itself might be wrong.
|
|
||||||
|
|
||||||
* The GUI library is DPI-aware on Windows.
|
|
||||||
|
|
||||||
* The OPENSSL library supports Server Name Indication for servers.
|
|
||||||
Thanks to Jay Kominek.
|
|
||||||
|
|
||||||
* The SYNTAX/PARSE library allows the definition of new pattern
|
|
||||||
forms via pattern expanders, similar to match expanders.
|
|
||||||
Thanks to Alex Knauth.
|
|
||||||
|
|
||||||
* OpenGL on Linux no longer depends on libgtkgl, and core profiles
|
|
||||||
are supported (see `set-legacy?').
|
|
||||||
|
|
||||||
* The TEACHING LANGUAGES' unit test framework supports
|
|
||||||
`check-satisfied', a construct for checking whether a result
|
|
||||||
satisfies a predicate, e.g.: (check-satisfied (sort l) sorted?)
|
|
|
@ -1,65 +0,0 @@
|
||||||
1407000198
|
|
||||||
Racket 6.1
|
|
||||||
|
|
||||||
The MAJOR INNOVATION concerns local recursive variable definitions.
|
|
||||||
Instead of initializing variables with an `undefined' value, Racket
|
|
||||||
raises an exception when such a variable is used before its definition.
|
|
||||||
(Thanks to Claire Alvis for adapting Dybvig's "Fixing Letrec" work.)
|
|
||||||
|
|
||||||
Since programs are rarely intended to produce #<undefined>, raising an
|
|
||||||
exception provides early and improved feedback. Module-level variables
|
|
||||||
have always triggered such an exception when used too early, and this
|
|
||||||
change finally gives local bindings --- including class fields --- the
|
|
||||||
same meaning.
|
|
||||||
|
|
||||||
This change is backwards-incompatible with prior releases of Racket.
|
|
||||||
Aside from exposing a few bugs, the change will mainly affect programs
|
|
||||||
that include
|
|
||||||
|
|
||||||
(define undefined (letrec ([x x]) x))
|
|
||||||
|
|
||||||
to obtain the #<undefined> value. In its stead, Racket provides the same
|
|
||||||
value via the `racket/undefined' library (which was introduced in the
|
|
||||||
previous release). Programmers are encouraged to use it in place of the
|
|
||||||
pattern above to obtain the "undefined" value.
|
|
||||||
|
|
||||||
The release also includes the following SMALL CHANGES:
|
|
||||||
|
|
||||||
* PLUMBERS generalize the flush-on-exit capability of primitive output
|
|
||||||
ports to enable arbitrary flushing actions and to give programmers
|
|
||||||
control over the timing of flushes (i.e., a composable `atexit'). New
|
|
||||||
functions include `current-plumber', `plumber-add-flush!', and
|
|
||||||
`plumber-flush-all'.
|
|
||||||
|
|
||||||
* CONTRACTS: the contract system's random testing facility has been
|
|
||||||
strengthened so that it can easily find simple mistakes in contracted
|
|
||||||
data structure implementations (e.g. an accidental reverse of a
|
|
||||||
conditional in a heap invariant check).
|
|
||||||
|
|
||||||
* REDEX: the semantics of mis-match patterns (variables followed by _!_)
|
|
||||||
inside ellipses has changed in a backwards-incompatible way. This
|
|
||||||
change simplifies the patterns' semantics and increases the usefulness
|
|
||||||
of these patterns.
|
|
||||||
|
|
||||||
* TEACHING LANGUAGES: `check-random' is an addition to the preferred
|
|
||||||
unit testing framework in the teaching languages. It enables the
|
|
||||||
testing of students' functions that use random-number
|
|
||||||
generation. (Thanks to David Van Horn (UMaryland) for proposing this
|
|
||||||
idea.)
|
|
||||||
|
|
||||||
* Upgraded and normalized versions of GRAPHICS LIBRARIES and
|
|
||||||
dependencies (Pango, Cairo, GLib, etc.) that are bundled with Racket
|
|
||||||
on Windows and Mac OS X. For example, FreeType support is consistently
|
|
||||||
enabled.
|
|
||||||
|
|
||||||
* TYPED RACKET: its standard library includes contracted exports from
|
|
||||||
the Racket standard library, such as the formatting combinators of
|
|
||||||
`racket/format'. It also supports Racket's asynchronous channels; see
|
|
||||||
the `typed/racket/async-channel' library.
|
|
||||||
|
|
||||||
* SSL: The openssl library supports forward secrecy via DHE and ECDHE
|
|
||||||
cipher suites (thanks to Edward Lee) and Server Name Indication
|
|
||||||
(thanks to Jay Kominek).
|
|
||||||
|
|
||||||
* The `mzlib/class100' library has been REMOVED. Use `racket/class'
|
|
||||||
instead.
|
|
Loading…
Reference in New Issue
Block a user