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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to