Release Announcement for v6.3

71 views
Skip to first unread message

Ryan Culpepper

unread,
Oct 30, 2015, 2:20:11 PM10/30/15
to d...@racket-lang.org
The release announcement sketch that I have so far is below. Please
mail me new items and/or edits.

(The items below represent only the main repository. Please email me
items for other repositories in the main distribution.)
----------------------------------------------------------------------

mflatt:
- switch to set-of-scopes expander (fc5e32e5)
- toward deterministic bytecode generation (2661d469)

robby:
- add and use late-neg projections (13964c41)

stamourv:
- many unstable merges, etc (91c422bb, ..., 5c9995ee)

stchang:
- add free-id-sets (7d434d26)

asumu:
- implement class sealing/unsealing (c2cd44c9)

dfeltey:
- improvements to unit/c (b16f0b24)

Tim Brown:
- add net/url-strings library (9473f394)

Stefan:
- added crypto-random-bytes

----------------------------------------------------------------------

Vincent St-Amour

unread,
Oct 30, 2015, 2:39:51 PM10/30/15
to Ryan Culpepper, d...@racket-lang.org
Here's a draft for the TR changes:

- Typed Racket fully supports submodules.
- The `typed/racket/unsafe` library provides import and export forms
that circumvent contract generation. This improves performance for
typed-untyped interaction at the cost of safety and debuggability.
- Typed Racket provides experimental support for units (from `racket/unit`).
- The experimental `define-new-subtype` form allows overlaying finer
distinctions between otherwise identical types, similar to Haskell's
`newtype`.
- The `Promise` type constructor changes in a backwards-imcompatible
way to exclude promises created with `promise/name`.


For the unstable changes, how much detail do we want? Listing the fate
of each of the 40+ unstable subcollects is probably too much, but just
saying "unstable is out of the distribution, some of its goodies have
been merged" is probably too little. Any thoughts?

Vincent
> --
> You received this message because you are subscribed to the Google Groups "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+...@googlegroups.com.
> To post to this group, send email to racke...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/5633B4CB.2050901%40ccs.neu.edu.
> For more options, visit https://groups.google.com/d/optout.

Asumu Takikawa

unread,
Oct 30, 2015, 2:43:40 PM10/30/15
to Ryan Culpepper, d...@racket-lang.org
On 2015-10-30 14:19:55 -0400, Ryan Culpepper wrote:
> asumu:
> - implement class sealing/unsealing (c2cd44c9)

I don't think this is worth mentioning. It's a feature whose client is mainly
TR's implementation, not end users.

Cheers,
Asumu

Asumu Takikawa

unread,
Oct 30, 2015, 2:44:42 PM10/30/15
to Vincent St-Amour, Ryan Culpepper, d...@racket-lang.org
On 2015-10-30 13:39:48 -0500, Vincent St-Amour wrote:
> For the unstable changes, how much detail do we want? Listing the fate
> of each of the 40+ unstable subcollects is probably too much, but just
> saying "unstable is out of the distribution, some of its goodies have
> been merged" is probably too little. Any thoughts?

How about blogging in detail about the changes and then just linking to the
blog entry? (in addition to that short blurb)

Cheers,
Asumu

Sam Tobin-Hochstadt

unread,
Oct 30, 2015, 2:49:23 PM10/30/15
to Vincent St-Amour, Ryan Culpepper, d...@racket-lang.org
On Fri, Oct 30, 2015 at 2:40 PM Vincent St-Amour <stam...@eecs.northwestern.edu> wrote:
Here's a draft for the TR changes:

- Typed Racket fully supports submodules.

This we need to flesh out a bit more. How about:

Submodules are now fully supported in Typed Racket. Previously, some uses of submodules would produce internal errors, making it hard to `module+ test` and `module+ main` effectively in Typed Racket. The switch to the set-of-scopes expander fixed these problems, and submodules are now happily at home in Typed Racket.
 
- The `typed/racket/unsafe` library provides import and export forms
  that circumvent contract generation. This improves performance for
  typed-untyped interaction at the cost of safety and debuggability.
- Typed Racket provides experimental support for units (from `racket/unit`).
- The experimental `define-new-subtype` form allows overlaying finer
  distinctions between otherwise identical types, similar to Haskell's
  `newtype`.

Looks good.
 
- The `Promise` type constructor changes in a backwards-imcompatible
  way to exclude promises created with `promise/name`.

I think we should have a separate section of the release notes for incompatibilities, such as this and the need to depend on "unstable" etc, plus the new exports.
 
Sam

Neil Van Dyke

unread,
Oct 30, 2015, 2:59:59 PM10/30/15
to d...@racket-lang.org
What Asumu said, except that one time-honored engineering convention
would be for the detail to go into the release notes (in whatever form
that the release notes are currently kept).

If you wanted to, you could *also* put the detail into a blog entry, in
addition to in the release notes, but the release notes would be the
normative reference, and the blog entry would link to the release notes.

Neil V.

Robby Findler

unread,
Oct 30, 2015, 3:09:00 PM10/30/15
to Ryan Culpepper, d...@racket-lang.org
Here are some redex and drracket blurbs. I don't think the other
things I did are worth mentioning.

- Added a new tutorial based on a week-long Redex workshop in SLC

- Better syntax error checking for patterns that do not use holes correctly

- The or/c contract combinator takes the first matching higher-order
contract instead of insisting that there be exactly one.

- The blueboxes are more agressive about finding names to look up in
the docs, meaning they are useful much more often.

Robby

Vincent St-Amour

unread,
Oct 30, 2015, 3:09:17 PM10/30/15
to Neil Van Dyke, d...@racket-lang.org
That sounds like a good plan.

Individual additions are already documented with history annotations in
the docs (and most are too small to be included in the release notes of
their respective libraries), but a discussion of the overall changes,
with full detail, would be nice to have. I'll write that.

For now, I'm thinking of putting that on the blog, and in the `unstable`
release notes. I'm less sure about the latter, though, since `unstable`
is not actually part of the release anymore, but that's the one central
location where that info would make sense.

Vincent
> --
> You received this message because you are subscribed to the Google Groups "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+...@googlegroups.com.
> To post to this group, send email to racke...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/5633BE2D.10208%40neilvandyke.org.

Matthew Flatt

unread,
Oct 30, 2015, 3:10:46 PM10/30/15
to Ryan Culpepper, d...@racket-lang.org
At Fri, 30 Oct 2015 14:19:55 -0400, Ryan Culpepper wrote:
> mflatt:
> - switch to set-of-scopes expander (fc5e32e5)

* Racket's macro expander uses a new representation of binding called
"set of scopes". The new binding model provides a simpler
explanation of how macros preserve binding, especially across module
boundaries and in hygiene-bending expansions. The new expander is
mostly compatible with existing Racket macros, but there are some
incompatibilities. For details, see the POPL'16 paper:

http://www.cs.utah.edu/~mflatt/scope-sets/

(By early next week, I will move the existing content at that URL
and put the latest version of the paper there.)

> - toward deterministic bytecode generation (2661d469)

I don't think this is worth mentioning, since it's still just
"towards". Some little things will work better, but hopefully a lot of
little things work better in general.

Vincent St-Amour

unread,
Oct 30, 2015, 5:38:45 PM10/30/15
to Vincent St-Amour, Neil Van Dyke, d...@racket-lang.org
Blog post: http://blog.racket-lang.org/2015/10/retiring-unstable.html

Announcement item:

* The `unstable-*` packages are out of the main distribution.
Most of their contents have been either merged with established Racket
libraries or spun off as their own packages. This change is backwards
compatible for packages that properly list their dependencies.
Full details: http://blog.racket-lang.org/2015/10/retiring-unstable.html

Vincent
Reply all
Reply to author
Forward
0 new messages