[racket-dev] Release Announcement for v5.3.1

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Oct 28 17:07:26 EDT 2012

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
> <matthias at 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
>>> <robby at 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 <samth at ccs.neu.edu> wrote:
>>>> 
>>>>> On Wed, Oct 24, 2012 at 8:29 PM, Ryan Culpepper <ryan at 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
>>>>> samth at ccs.neu.edu
>>>>> _________________________
>>>>> Racket Developers list:
>>>>> http://lists.racket-lang.org/dev
>>> 
>>> 
>>> 
>>> --
>>> sam th
>>> samth at ccs.neu.edu
>>> _________________________
>>> Racket Developers list:
>>> http://lists.racket-lang.org/dev
>> 
> 
> 
> 
> -- 
> sam th
> samth at ccs.neu.edu

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4373 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20121028/a5ee2c16/attachment.p7s>

Posted on the dev mailing list.