[racket-dev] Release Announcement for v5.3, second draft
Below is the second draft of the release announcement items for v5.3. Let me know if I've missed something. * 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 API for fast floating-point bitmaps (flomaps) supports image processing operations, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. * A new `json' library (derived from Dave Herman's PLaneT library) for parsing and generating JSON comes with the distribution. * `racket/string' is extended with string manipulation functions that avoid some basic regexp tweaks. `regexp-match*' and friends come with new keyword arguments to return specific matched group/s and gaps. * 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. * A 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.) * The `tex2page' and `combinator-parser' libraries have been moved from the Racket distribution to PLaneT. === DEPRECATION == The following have been deprecated and will be removed in the January 2013 release: - the `planet' command-line tool. Use `raco planet' instead. The following have been deprecated and will be removed in the August 2013 release: - the `mzlib/class100' library. Use `racket/class' instead. - the `define-contract-struct' form. Use `struct' with `struct/dc' contracts instead. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On Wed, Aug 1, 2012 at 8:34 AM, Ryan Culpepper r...@cs.utah.edu wrote: * 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.) First, this link is broken. Second, I think we should *not* use URL shorteners here. There's no need to add another point of failure. If the link is too long, put it in a footnote. * The `tex2page' and `combinator-parser' libraries have been moved from the Racket distribution to PLaneT. This should include the URLs to the planet packages, and perhaps the `require` lines. The following have been deprecated and will be removed in the August 2013 release: - the `define-contract-struct' form. Use `struct' with `struct/dc' contracts instead. This entry surprises me. Has it been discussed on the list? `define-contract-struct` has rather different semantics, right? -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On 2012-08-01 09:44:13 -0400, Sam Tobin-Hochstadt wrote: * The `tex2page' and `combinator-parser' libraries have been moved from the Racket distribution to PLaneT. This should include the URLs to the planet packages, and perhaps the `require` lines. For convenience: http://planet.racket-lang.org/display.ss?package=combinator-parser.pltowner=plt http://planet.racket-lang.org/display.ss?package=tex2page.pltowner=plt (require (planet plt/tex2page)) (require (planet plt/combinator-parser)) Cheers, Asumu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On Wed, Aug 1, 2012 at 8:44 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: The following have been deprecated and will be removed in the August 2013 release: - the `define-contract-struct' form. Use `struct' with `struct/dc' contracts instead. This entry surprises me. Has it been discussed on the list? `define-contract-struct` has rather different semantics, right? What difference are you thinking of? Robby _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On Wednesday, August 1, 2012, Robby Findler wrote: On Wed, Aug 1, 2012 at 8:44 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edujavascript:; wrote: The following have been deprecated and will be removed in the August 2013 release: - the `define-contract-struct' form. Use `struct' with `struct/dc' contracts instead. This entry surprises me. Has it been discussed on the list? `define-contract-struct` has rather different semantics, right? What difference are you thinking of? `struct/dc` uses impersonators/chaperones to place contracts on the actual structure instances, whereas `define-contract-struct` wraps the accessor/constructor procedures, right? Sam -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On Wed, Aug 1, 2012 at 9:47 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wednesday, August 1, 2012, Robby Findler wrote: On Wed, Aug 1, 2012 at 8:44 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: The following have been deprecated and will be removed in the August 2013 release: - the `define-contract-struct' form. Use `struct' with `struct/dc' contracts instead. This entry surprises me. Has it been discussed on the list? `define-contract-struct` has rather different semantics, right? What difference are you thinking of? `struct/dc` uses impersonators/chaperones to place contracts on the actual structure instances, whereas `define-contract-struct` wraps the accessor/constructor procedures, right? No, that's wrong. struct/dc is like define-contract-struct. Check out the docs or the IFL 2007 paper on my pubs web page. Robby _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On Wed, Aug 1, 2012 at 10:52 AM, Robby Findler ro...@eecs.northwestern.edu wrote: On Wed, Aug 1, 2012 at 9:47 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wednesday, August 1, 2012, Robby Findler wrote: On Wed, Aug 1, 2012 at 8:44 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: The following have been deprecated and will be removed in the August 2013 release: - the `define-contract-struct' form. Use `struct' with `struct/dc' contracts instead. This entry surprises me. Has it been discussed on the list? `define-contract-struct` has rather different semantics, right? What difference are you thinking of? `struct/dc` uses impersonators/chaperones to place contracts on the actual structure instances, whereas `define-contract-struct` wraps the accessor/constructor procedures, right? No, that's wrong. struct/dc is like define-contract-struct. Check out the docs or the IFL 2007 paper on my pubs web page. Ah, I see. Sorry about that. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On Wed, Aug 1, 2012 at 8:44 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: The following have been deprecated and will be removed in the August 2013 release: - the `define-contract-struct' form. Use `struct' with `struct/dc' contracts instead. This entry surprises me. Has it been discussed on the list? Alright, perhaps it is better to just move the documentation to the compatibility manual instead of removing the implementation. The maintenance burden is probably not high enough to justify breaking others' programs. Ryan: can you remove this line from the release notes, please? Robby _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
On 08/01/2012 05:34 AM, Ryan Culpepper wrote: * The API for fast floating-point bitmaps (flomaps) supports image processing operations, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. This needs to mention Typed Racket. How about this? The new `images/flomap' library defines floating-point images and fast operations on them, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
How about this: * The API for fast floating-point bitmaps (flomaps) supports image processing operations. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. ? Robby On Wed, Aug 1, 2012 at 11:05 AM, Neil Toronto neil.toro...@gmail.com wrote: On 08/01/2012 05:34 AM, Ryan Culpepper wrote: * The API for fast floating-point bitmaps (flomaps) supports image processing operations, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. This needs to mention Typed Racket. How about this? The new `images/flomap' library defines floating-point images and fast operations on them, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
How about * The Typed Racket API for fast floating-point bitmaps (flomaps) supports a range of image process operations. See docs for details. On Aug 1, 2012, at 12:07 PM, Robby Findler wrote: How about this: * The API for fast floating-point bitmaps (flomaps) supports image processing operations. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. ? Robby On Wed, Aug 1, 2012 at 11:05 AM, Neil Toronto neil.toro...@gmail.com wrote: On 08/01/2012 05:34 AM, Ryan Culpepper wrote: * The API for fast floating-point bitmaps (flomaps) supports image processing operations, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. This needs to mention Typed Racket. How about this? The new `images/flomap' library defines floating-point images and fast operations on them, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
Eli had a problem with calling it a Typed Racket API, because it could connote that it's only available for Typed Racket programs. I agree with him. It doesn't hurt to repeat that it's easy to use TR libraries in untyped code, especially for official libraries. I prefer to have images/flomap somewhere in there so the library is easy to find, so I think a good short version would be: 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. Neil ⊥ On 08/01/2012 09:09 AM, Matthias Felleisen wrote: How about * The Typed Racket API for fast floating-point bitmaps (flomaps) supports a range of image process operations. See docs for details. On Aug 1, 2012, at 12:07 PM, Robby Findler wrote: How about this: * The API for fast floating-point bitmaps (flomaps) supports image processing operations. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. ? Robby On Wed, Aug 1, 2012 at 11:05 AM, Neil Toronto neil.toro...@gmail.com wrote: On 08/01/2012 05:34 AM, Ryan Culpepper wrote: * The API for fast floating-point bitmaps (flomaps) supports image processing operations, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. This needs to mention Typed Racket. How about this? The new `images/flomap' library defines floating-point images and fast operations on them, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
Whatever. On Aug 1, 2012, at 2:10 PM, Neil Toronto wrote: Eli had a problem with calling it a Typed Racket API, because it could connote that it's only available for Typed Racket programs. I agree with him. It doesn't hurt to repeat that it's easy to use TR libraries in untyped code, especially for official libraries. I prefer to have images/flomap somewhere in there so the library is easy to find, so I think a good short version would be: 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. Neil ⊥ On 08/01/2012 09:09 AM, Matthias Felleisen wrote: How about * The Typed Racket API for fast floating-point bitmaps (flomaps) supports a range of image process operations. See docs for details. On Aug 1, 2012, at 12:07 PM, Robby Findler wrote: How about this: * The API for fast floating-point bitmaps (flomaps) supports image processing operations. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. ? Robby On Wed, Aug 1, 2012 at 11:05 AM, Neil Toronto neil.toro...@gmail.com wrote: On 08/01/2012 05:34 AM, Ryan Culpepper wrote: * The API for fast floating-point bitmaps (flomaps) supports image processing operations, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. This needs to mention Typed Racket. How about this? The new `images/flomap' library defines floating-point images and fast operations on them, including pointwise arithmetic, gradients, blur, resizing with correct downsampling, arbitrary spatial transformations, and pict-like combiners. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
8 hours ago, Robby Findler wrote: How about this: * The API for fast floating-point bitmaps (flomaps) supports image processing operations. It is written in Typed Racket, so Typed Racket code may use it without the cost of contract checks. ? (This is a little fishy IMO, since if no-cost-from-TR is mentioned, then I think that cost-from-non-TR should be mentioned too...) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
10 hours ago, Asumu Takikawa wrote: On 2012-08-01 09:44:13 -0400, Sam Tobin-Hochstadt wrote: * The `tex2page' and `combinator-parser' libraries have been moved from the Racket distribution to PLaneT. This should include the URLs to the planet packages, and perhaps the `require` lines. For convenience: http://planet.racket-lang.org/display.ss?package=combinator-parser.pltowner=plt http://planet.racket-lang.org/display.ss?package=tex2page.pltowner=plt (require (planet plt/tex2page)) (require (planet plt/combinator-parser)) +1 for keeping the latter. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3, second draft
11 hours ago, Sam Tobin-Hochstadt wrote: On Wed, Aug 1, 2012 at 8:34 AM, Ryan Culpepper r...@cs.utah.edu wrote: * 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.) First, this link is broken. It points to the tag that will exist when 5.3 is released. Second, I think we should *not* use URL shorteners here. The link text is irrelevant in this case. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ Racket Developers list: http://lists.racket-lang.org/dev