Re: [racket-dev] Release Announcement for v5.3.1

2012-10-28 Thread Matthew Flatt
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

2012-10-28 Thread Sam Tobin-Hochstadt
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

2012-10-28 Thread Robby Findler
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

2012-10-28 Thread Sam Tobin-Hochstadt
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

2012-10-28 Thread Matthias Felleisen

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

2012-10-28 Thread Sam Tobin-Hochstadt
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

2012-10-28 Thread Vincent St-Amour
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

2012-10-28 Thread Robby Findler
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

2012-10-28 Thread Vincent St-Amour
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

2012-10-28 Thread Matthias Felleisen

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

2012-10-28 Thread Sam Tobin-Hochstadt
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

2012-10-28 Thread Robby Findler
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

2012-10-27 Thread Robby Findler
* 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

2012-10-25 Thread Robby Findler
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