[racket-dev] drafting the v5.1 release announcement

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Wed Feb 9 16:48:16 EST 2011

2011/2/9 Jon Rafkind <rafkind at cs.utah.edu>:
> Here are some items I pulled from the commit log
> Robby:
> 823b6629aae7a1c668c2dffb2d89a16fc4a5889c
>    add an extra check to make sure drracket is more likely to startup
> when things go wrong in strange ways
>      Please merge to the 5.1 release branch
> ce4bf97bde32032b0663c623d8ef1f2158a96fae
>    monitor the font size preference in order to redo the one-line size
> computation for the search bar
>      closes PR 11687
> 0411cddba53914a33af88d720fd4d05634aac016
>    added set/c and made sets print as set, seteq, or seteqv
>      closes PR 11454
> 670d58d134eaf2dc5ed6ef4ea60f53d66321acda
>    added un/cache-image, a function that enables/disables the drawing
> cache in 2htdp/image images
> b77847904e4d05a731ca331c7d84e3532c980521
>    adjust the way the () colorer status thingy draws
> 2f009ca529fcbe4ebe496379a5403cbcf1a0cd14
>    changed the way equal<%> and snip% interact. Specifically:
>     - snip% now implements equal<%>
>       its equal-to? delegates to other-equal-to?.
>     - snip%'s other-equal-to and equal-hash-code and
>       equal-secondary-hash-code all just amount to using eq?. The
>       setup is here just to make snip% be the one that declares
>       that it implements equal<%> so that various snips can adjust
>       other-equal-to? (and the hash code methods)
>     - image-snip% no longer implements equal<%>
>       (but it extends snip% and it overrides other-equal-to?
>        and the hash-code methods to do what they always did)
> 4917d2af4a680de5380f0b82ef13f82d216d7d76
>    added freeze to 2htdp/image
> d1fe2766559133ba3913c5aef1f3f72c1a8be758
>    adjust the bug report form so that hitting return does not submit
> the bug report
>      as mentioned in PR 11551
> 0542d3ca7084579b1c209ee52e52edcc59a6ad53
>    added support for saving bug reports (for ease of offline submission)
>    also cleaned up a bunch of little things in the bug report
> implementation:
>     - the abort had race conditions
>     - formatted the collections a little bit better (hopefully)
>     - broke the implementation up into multiple files
>     - fixed broken interaction with drracket (the drracket frame mixin
> is now being used properly)
> 18dacad6c825e4fb18b37f1eae259d6c73419fc6
>    a first attempt at a rewording of the blame error messages to admit
> the possibility that the contract was wrong and also to claim that
> fixing the blamed module or the contract is all that is required
>    note that two test cases are failing, but only because they depend
> on the wording of the error messages; once that is set, I'll fix them.
> a63bbf82abb4b43b59d67ce9383c21b3ad1074ee
>    added current-trace-results
> Matthew:
> dfa36afa894ecc4a9626ecbe1ba36e4ff1f00a77
>    change `floating-point-bytes->real' to always produce a flonum
> ff0a591b7beaadf68053b1f0beba2595a442aef0
>    change FFI `_float' to coerce to Racket double-precision flonum
> 3ef32d915ba6d07e5191aa980ba0a936e1970462
>    make inexacts `eqv?' only when precision is the same
>     plus some other small fixes
> b5bc288f676a81129ea93aaffeaebefa18831879
>    Windows: fix `path-list-string->path-list' to throw away quotes
>     --- which seems to be what the command shell does with quotes in
>     PATH, at least; Microsoft isn't in the habit of documenting this
>     sort of thing
> fb406390b7dbb44f8811d2ff07f058019c026715
>    fix readline port to obey port protocol & use interaction port handler
>     --- in particular, it no longer blocks on a read request; the
>         call to the readline library now uses a separate thread,
>         so that the input port can return an event
> 069a7c2b4871477bf35a120b33ff5d7358e23a7c
>    add `current-get-interaction-input-port' and adjust `racket/gui'
>     so that GUI events are dispatched while a REPL is blocked on input
> b112fd76df4305b178a7e761fe0d29214a37c518
>    add `reparent' to `subwindow<%>'
> 98822cf1f989efd7c22f5d9587a65aeee29f26c0
>    adjust `racket/gui' and dependencies to survive a locked preference file
>     - adds a `#:timeout-lock-there' argument to `get-preference'
>     - fixes preference looup in `racket/gui'
>     - make preference names consistently use `GRacket' and consistently
>       fall back on `MrEd' names
>     - fix Emacs-style undo mode while we're at it
> d8e123753c40fadc6d51513cf1fa5e4eca614bc8
>    gtk: enable input-method (e.g., Chinese) support
> 79cd92859c9f6227abfd2a97ca0f3aa209d2c6eb
>    disable user-specific setup on `make install' by default
>     and add a `--enable-userspecific' flag for `configure'
> d6fc7da7501ff636ebf13639def6909aaa4feb47
>    add `refresh-now' to `canvas%'
>     --- this method doesn't have to be built in, but it
>         encapsulates a common and not-too-obvious pattern
> 13ddab969b7a071f3b0a532a19f579cdf6e2cb9a
>    enable ptherads by default for OpenBSD
> 55693e090f5f9686b286e69f1181565895194846
>    add `port-try-file-lock?' and `port-file-unlock'
> 7319b539f0fcef27637a507367e64bfce1808931
>    win64: initial CGC build
> cc82d3728525b5bac3f2cb91d249d5404a7a3bd0
>    Scribble Latex image support (missed an earlier commit)
> 421519994d42ccd5a731e6b0b914ddf283988318
>    make SSL listeners events
> aa7c4b53d9c2962536b3a37bb244600d7216289e
>    add `codeblock' to Scribble
> Matthias:
> 814a847323262813cd2382a020aaa152089b1501
>    made to-draw/on-draw in big-bang mandatory; Closes PR 11663
> Blake:
> 4676662e4b25f2c43433289433932523bd5c00aa
>    moved demodularizer from github to collects and added it to raco

* raco now supports an experimental "demodularizer" that collapses a
module's dependencies into a new module comprising the whole program.
This currently provides no performance improvement, but will be the
basis for providing cross-module optimization and dead-code
elimination. It is currently useful, however, for static analysis of
whole Racket programs.

> Mike:
> fa854f62fc22a81cbb3aa0efa1997ade18c9e7c3
>    Add vector signatures, and `vector-of' to the HtDP signature syntax.
> Vincent:
> 4ac36fd59bc35cb0d60cb050cfaae21d213064c8
>    Added the new single-precision float function to TR.
> ac76d963b0e4b70c17753b22833c630f3d71cd1b
>    Enable single-precision floats by default.
> 46f086282d7302e7e015109c9f945a92350e384c
>    Bytes are a sequence of the new Byte type.
> d4c93cc12e6df893ba2e782f0e0ea5529738315a
>    TR's numeric tower is now built from unions of non-overlapping base
> types.
>    A lot of the work that was done by special-casing number types can
> now be
>    done by TR's handling of unions. This makes it easier to add more
> numeric
>    types to the tower and should make writing down types for numeric
>    primitives much less error-prone.
>    In addition, this commit adds several numeric types that will help get
>    tighter bounds on integer arithmetic, such as Index types. They will
> have
>    to be integrated to the base environment before they can be useful.
> Casey:
> f7fd6ee68996564d73ed71055182c4c425c240d1
>    Changes the term generator to produce shorter sequences
>    It now uses the (local) size bound instead of the (global) attempt
> count.
> Kevin:
> b88ff8983710da79e8f4b2fc05748b08fc5e92cd
>    racket/draw gradient support
> Eli:
> 40610643bfc705dd014090ca9e3a0567b38a9567
>    Make `take' less forceful -- so now (take 0 (error "foo")) returns '()
>    instead of throwing an error.
> 9e302a7106f5cbfe3e08c2d6ae17775ce70ac8f6
>    Rename `sequence' library to `stream', move from `racket/base' to
> `racket'.
> Jay:
> d6d9f3ef8cbd8f6cd65e7e5d20e76fd69b01d968
>    Adding dynamic/c and coerce/c

These were removed by a different commit.

> Stevie:
> a04b8d989936e64e29d2ae123da39159c2cdf2e6
>    Change instanceof/c to allow more contracts.
>    Now instanceof/c no longer checks explicitly for a class/c contract, so
>    or/c or and/c of class/c contracts succeed.
> 92775c5e4ee55986da9fec18a171c59b8fb4f64f
>    Add instanceof.
>    The instanceof contract combinator takes a class contract.  The
> resulting
>    contract protects objects using the external field and method contracts
>    in the class contract.
> 0c4658f718ad9a4d5b857c06785650247316d705
>    Conversion of -> to impersonators.
> On 02/09/2011 01:37 PM, Matthew Flatt wrote:
>> Let's get the ball rolling on the release announcement. Here are draft
>> bullets for the drawing and GUI libraries:
>>  * The `racket/draw' library --- which implements the drawing half the
>>    GUI toolkit --- is a new implementation built on top of the Cairo
>>    drawing library and the Pango text-rendering library.
>>    The `racket/draw' library 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 `racket/gui/base' library is a new implementation built on top
>>    of Win32 under Windows, Cocoa (instead of Carbon) under Mac OS X,
>>    and Gtk (instead of Xt) under Unix/X.
>>    Unix/X users will see the biggest difference with this change.
>>    DrRacket and all Racket GUI programs take on the desktop theme for
>>    menus, buttons, and other GUI widgets.
>>    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 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).
>> _________________________________________________
>>   For list-related administrative tasks:
>>   http://lists.racket-lang.org/listinfo/dev
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University

"The glory of God is Intelligence" - D&C 93

Posted on the dev mailing list.