Re: [racket-dev] Release Announcement for v5.3.1
At Wed, 24 Oct 2012 20:29:43 -0400, Ryan Culpepper wrote: mflatt: - new case implementation (by Jon Zeppieri) (7ccf0efce9) - for/vector improvements (8a26d83651) - add #:break, #:final to for forms (fc52248446) - add racket/format (b53e458e3f) - add define-logger etc (d92b9cb404) - log-error etc do format (fc0d605d18) - add current-compiled-file-roots, etc (4f351dd6b1) * 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' form now supports `#:break' and `#:final' clauses. * The new PLTCOMPILEDROOTS environment variable configures the search path for compiled bytecode. - ffi/unsafe: show errors from finalizers (1d8791c7c4) - new ffi/unsafe/custodian (42ef79c2ad) - ffi/com improvements (4e5b46405d, etc) - rackunit now part of mz distro (e9f522ba94) - add dynamic-get-field, etc (ba56fd72da) - thread initial prompt change (2f7d4b5eaf) - JIT stack traces on win64 (98cf0429f8) These seem too minor for a release announcement. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) Typed Racket now handles higher-order values provided to untyped modules under the type `Any` differently. This may lead to dynamic errors in some mixed typed/untyped programs, which can be fixed by using more specific types. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
Was it wrong before? Suboptimal somehow? On Oct 28, 2012, at 9:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) Typed Racket now handles higher-order values provided to untyped modules under the type `Any` differently. This may lead to dynamic errors in some mixed typed/untyped programs, which can be fixed by using more specific types. -- sam th sa...@ccs.neu.edu _ 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.1
On Sun, Oct 28, 2012 at 11:13 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Was it wrong before? Suboptimal somehow? It was suboptimal in that more operations should be allowed now (such as accessing elements of a mutable vector provided under the type `Any`). However, some of the errors that this has caused in practice make me think that the previous implementation was wrong as well, since some of the programs that broke shouldn't have worked. On Oct 28, 2012, at 9:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) Typed Racket now handles higher-order values provided to untyped modules under the type `Any` differently. This may lead to dynamic errors in some mixed typed/untyped programs, which can be fixed by using more specific types. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
Can you make succinct examples of operations that would have gone wrong with the past interpretation of Any and can you explain how the new interpretation will do better? Please share here. Thanks -- Matthias On Oct 28, 2012, at 11:36 AM, Sam Tobin-Hochstadt wrote: On Sun, Oct 28, 2012 at 11:13 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Was it wrong before? Suboptimal somehow? It was suboptimal in that more operations should be allowed now (such as accessing elements of a mutable vector provided under the type `Any`). However, some of the errors that this has caused in practice make me think that the previous implementation was wrong as well, since some of the programs that broke shouldn't have worked. On Oct 28, 2012, at 9:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) Typed Racket now handles higher-order values provided to untyped modules under the type `Any` differently. This may lead to dynamic errors in some mixed typed/untyped programs, which can be fixed by using more specific types. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu _ 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.1
On Sun, Oct 28, 2012 at 1:16 PM, Matthias Felleisen matth...@ccs.neu.edu wrote: Can you make succinct examples of operations that would have gone wrong with the past interpretation of Any and can you explain how the new interpretation will do better? Please share here. Here's a quick example: #lang racket/load (module m1 typed/racket (define: f : Any (vector 1 2 3)) (provide f)) (module m2 racket (require 'm1) (for/sum ([e f]) e)) (require 'm2) This produces 6, as expected, with the current system; the previous system would have errored because `f` would have been an opaque value. On Oct 28, 2012, at 11:36 AM, Sam Tobin-Hochstadt wrote: On Sun, Oct 28, 2012 at 11:13 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Was it wrong before? Suboptimal somehow? It was suboptimal in that more operations should be allowed now (such as accessing elements of a mutable vector provided under the type `Any`). However, some of the errors that this has caused in practice make me think that the previous implementation was wrong as well, since some of the programs that broke shouldn't have worked. On Oct 28, 2012, at 9:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) Typed Racket now handles higher-order values provided to untyped modules under the type `Any` differently. This may lead to dynamic errors in some mixed typed/untyped programs, which can be fixed by using more specific types. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
At Wed, 24 Oct 2012 20:29:43 -0400, Ryan Culpepper wrote: stamourv: - scheme language deprecation notice (68260a6c86) - compat: packages, mutable lists (800a328fe6) - NaN included in all float types (a6d5a98b61) * The `#lang scheme' language is deprecated. `#lang racket' should be used instead. * The `compatibility' collection provides features from Racket relatives, such as `defmacro' and mutable lists. These features are provided to ease porting code to Racket. We do not recommend using them in modern Racket code. * NaN is included in all of Typed Racket's floating-point types, which makes precise floating-point types easier to use. * Typed Racket provides the `:query-type/args' and `:query-type/result' utilities to explore types at the REPL. * Screenshots of the widgets provided by the Racket GUI library are included in the documentation. (Thanks to Diogo F. S. Ramos.) - optimization coach changes? Nothing major. Vincent _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
Is the first one is something new? Otherwise, I'm not sure that any of these should be in the release announcement, unless maybe there's something I'm missing about the changes? Robby On Sunday, October 28, 2012, Vincent St-Amour wrote: At Wed, 24 Oct 2012 20:29:43 -0400, Ryan Culpepper wrote: stamourv: - scheme language deprecation notice (68260a6c86) - compat: packages, mutable lists (800a328fe6) - NaN included in all float types (a6d5a98b61) * The `#lang scheme' language is deprecated. `#lang racket' should be used instead. * The `compatibility' collection provides features from Racket relatives, such as `defmacro' and mutable lists. These features are provided to ease porting code to Racket. We do not recommend using them in modern Racket code. * NaN is included in all of Typed Racket's floating-point types, which makes precise floating-point types easier to use. * Typed Racket provides the `:query-type/args' and `:query-type/result' utilities to explore types at the REPL. * Screenshots of the widgets provided by the Racket GUI library are included in the documentation. (Thanks to Diogo F. S. Ramos.) - optimization coach changes? Nothing major. Vincent _ 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.1
For the first one, the new part is the deprecation notice in the docs. Probably not worth including. The others items are not major changes. I don't mind if they're not included. Vincent At Sun, 28 Oct 2012 15:38:44 -0500, Robby Findler wrote: Is the first one is something new? Otherwise, I'm not sure that any of these should be in the release announcement, unless maybe there's something I'm missing about the changes? Robby On Sunday, October 28, 2012, Vincent St-Amour wrote: At Wed, 24 Oct 2012 20:29:43 -0400, Ryan Culpepper wrote: stamourv: - scheme language deprecation notice (68260a6c86) - compat: packages, mutable lists (800a328fe6) - NaN included in all float types (a6d5a98b61) * The `#lang scheme' language is deprecated. `#lang racket' should be used instead. * The `compatibility' collection provides features from Racket relatives, such as `defmacro' and mutable lists. These features are provided to ease porting code to Racket. We do not recommend using them in modern Racket code. * NaN is included in all of Typed Racket's floating-point types, which makes precise floating-point types easier to use. * Typed Racket provides the `:query-type/args' and `:query-type/result' utilities to explore types at the REPL. * Screenshots of the widgets provided by the Racket GUI library are included in the documentation. (Thanks to Diogo F. S. Ramos.) - optimization coach changes? Nothing major. Vincent _ 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.1
At least in principle, if such code exists, its authors think that it can't work and therefore won't run it (and get a result all of a sudden). Is it possible that code blows up under the new operation that wouldn't have blown up under the old one? -- Matthias On Oct 28, 2012, at 1:20 PM, Sam Tobin-Hochstadt wrote: On Sun, Oct 28, 2012 at 1:16 PM, Matthias Felleisen matth...@ccs.neu.edu wrote: Can you make succinct examples of operations that would have gone wrong with the past interpretation of Any and can you explain how the new interpretation will do better? Please share here. Here's a quick example: #lang racket/load (module m1 typed/racket (define: f : Any (vector 1 2 3)) (provide f)) (module m2 racket (require 'm1) (for/sum ([e f]) e)) (require 'm2) This produces 6, as expected, with the current system; the previous system would have errored because `f` would have been an opaque value. On Oct 28, 2012, at 11:36 AM, Sam Tobin-Hochstadt wrote: On Sun, Oct 28, 2012 at 11:13 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Was it wrong before? Suboptimal somehow? It was suboptimal in that more operations should be allowed now (such as accessing elements of a mutable vector provided under the type `Any`). However, some of the errors that this has caused in practice make me think that the previous implementation was wrong as well, since some of the programs that broke shouldn't have worked. On Oct 28, 2012, at 9:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) Typed Racket now handles higher-order values provided to untyped modules under the type `Any` differently. This may lead to dynamic errors in some mixed typed/untyped programs, which can be fixed by using more specific types. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
On Sun, Oct 28, 2012 at 5:07 PM, Matthias Felleisen matth...@ccs.neu.edu wrote: At least in principle, if such code exists, its authors think that it can't work and therefore won't run it (and get a result all of a sudden). Is it possible that code blows up under the new operation that wouldn't have blown up under the old one? Yes, in two senses: 1. There were clearly programs (such as the insert large letters dialog) that worked before, but didn't after. It's not entirely clear to me why these programs worked before. 2. It's easy to write programs that have catch-all cases for unknown values that would now trigger dynamic errors, as in: (cond [(vector? v) (vector-set! v 0 1)] [else (void)]) This will now error if `v` was provided by typed code at the type Any, whereas previously it would have gone into the catch-all case. -- Matthias On Oct 28, 2012, at 1:20 PM, Sam Tobin-Hochstadt wrote: On Sun, Oct 28, 2012 at 1:16 PM, Matthias Felleisen matth...@ccs.neu.edu wrote: Can you make succinct examples of operations that would have gone wrong with the past interpretation of Any and can you explain how the new interpretation will do better? Please share here. Here's a quick example: #lang racket/load (module m1 typed/racket (define: f : Any (vector 1 2 3)) (provide f)) (module m2 racket (require 'm1) (for/sum ([e f]) e)) (require 'm2) This produces 6, as expected, with the current system; the previous system would have errored because `f` would have been an opaque value. On Oct 28, 2012, at 11:36 AM, Sam Tobin-Hochstadt wrote: On Sun, Oct 28, 2012 at 11:13 AM, Robby Findler ro...@eecs.northwestern.edu wrote: Was it wrong before? Suboptimal somehow? It was suboptimal in that more operations should be allowed now (such as accessing elements of a mutable vector provided under the type `Any`). However, some of the errors that this has caused in practice make me think that the previous implementation was wrong as well, since some of the programs that broke shouldn't have worked. On Oct 28, 2012, at 9:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) Typed Racket now handles higher-order values provided to untyped modules under the type `Any` differently. This may lead to dynamic errors in some mixed typed/untyped programs, which can be fixed by using more specific types. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- sam th sa...@ccs.neu.edu -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
On second thought, I think we should include all of the bullets Vincent lists (below) and remove this one Matthew lists: On Sun, Oct 28, 2012 at 9:42 AM, Matthew Flatt mfl...@cs.utah.edu wrote: * The `for' form now supports `#:break' and `#:final' clauses. Robby On Sun, Oct 28, 2012 at 1:04 PM, Vincent St-Amour stamo...@ccs.neu.edu wrote: * The `#lang scheme' language is deprecated. `#lang racket' should be used instead. * The `compatibility' collection provides features from Racket relatives, such as `defmacro' and mutable lists. These features are provided to ease porting code to Racket. We do not recommend using them in modern Racket code. * NaN is included in all of Typed Racket's floating-point types, which makes precise floating-point types easier to use. * Typed Racket provides the `:query-type/args' and `:query-type/result' utilities to explore types at the REPL. * Screenshots of the widgets provided by the Racket GUI library are included in the documentation. (Thanks to Diogo F. S. Ramos.) _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Release Announcement for v5.3.1
* DrRacket now runs Check Syntax continuously in the background (by default; this was available in previous releases, but disabled by default) Robby On Wed, Oct 24, 2012 at 7:29 PM, Ryan Culpepper r...@cs.utah.edu wrote: The release announcement sketch that I have so far is below. Please mail me new items and/or edits. -- mflatt: - new case implementation (by Jon Zeppieri) (7ccf0efce9) - ffi/unsafe: show errors from finalizers (1d8791c7c4) - new ffi/unsafe/custodian (42ef79c2ad) - ffi/com improvements (4e5b46405d, etc) - for/vector improvements (8a26d83651) - add dynamic-get-field, etc (ba56fd72da) - thread initial prompt change (2f7d4b5eaf) - add racket/format (b53e458e3f) - log-error etc do format (fc0d605d18) - add define-logger etc (d92b9cb404) - add current-compiled-file-roots, etc (4f351dd6b1) - JIT stack traces on win64 (98cf0429f8) - add #:break, #:final to for forms (fc52248446) - rackunit now part of mz distro (e9f522ba94) robby: - define-judgment-form improvements (0369342bfe) - blue boxes (0c6734f782) frtime: - Patrick Mahoney ported frtime to racket lang (64e9bdd92d, 01ec2d3fde, etc) stamourv: - scheme language deprecation notice (68260a6c86) - compat: packages, mutable lists (800a328fe6) - NaN included in all float types (a6d5a98b61) - optimization coach changes? samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) ryanc: - readline speedup (5 vs 6) (ae843f9a62) - db postrgresql 9.2 support, etc (9d34f0f147) sperber: - provide 'provide' in DMdA langs (41d6d8f579) -- _ 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.1
I believe this is the first release where online check syntax is enabled by default. I'm not sure, but I also think that it hasn't been mentioned in the release notes before. Robby On Wednesday, October 24, 2012, Ryan Culpepper wrote: The release announcement sketch that I have so far is below. Please mail me new items and/or edits. --**--**-- mflatt: - new case implementation (by Jon Zeppieri) (7ccf0efce9) - ffi/unsafe: show errors from finalizers (1d8791c7c4) - new ffi/unsafe/custodian (42ef79c2ad) - ffi/com improvements (4e5b46405d, etc) - for/vector improvements (8a26d83651) - add dynamic-get-field, etc (ba56fd72da) - thread initial prompt change (2f7d4b5eaf) - add racket/format (b53e458e3f) - log-error etc do format (fc0d605d18) - add define-logger etc (d92b9cb404) - add current-compiled-file-roots, etc (4f351dd6b1) - JIT stack traces on win64 (98cf0429f8) - add #:break, #:final to for forms (fc52248446) - rackunit now part of mz distro (e9f522ba94) robby: - define-judgment-form improvements (0369342bfe) - blue boxes (0c6734f782) frtime: - Patrick Mahoney ported frtime to racket lang (64e9bdd92d, 01ec2d3fde, etc) stamourv: - scheme language deprecation notice (68260a6c86) - compat: packages, mutable lists (800a328fe6) - NaN included in all float types (a6d5a98b61) - optimization coach changes? samth: - type-contract fixes/changes (9e1cf579a4, 962f2472e1) - add #:opaque and #:struct to require/typed (9054d0db7d) ryanc: - readline speedup (5 vs 6) (ae843f9a62) - db postrgresql 9.2 support, etc (9d34f0f147) sperber: - provide 'provide' in DMdA langs (41d6d8f579) --**--**-- _ Racket Developers list: http://lists.racket-lang.org/**dev http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev