Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-11 Thread Matthias Felleisen
We discussed this idea early on -- based on work by Casey and Robby and our own reasoning -- and I am pretty sure it was on your list. If it is not there, we should bring it in quickly. This should improve performance quite a bit. -- Matthias On Sep 10, 2013, at 4:59 AM, Sam Tobin-Hochstadt

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Sam Tobin-Hochstadt
On Mon, Sep 9, 2013 at 11:35 AM, Neil Toronto neil.toro...@gmail.com wrote: Nice, and thanks for the explanation. Just to make sure I get it: does this mean fully expanded TR modules are smaller? Yes. Does it reduce the number of generated contracts? No. On 09/08/2013 12:24 PM, Sam

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Neil Toronto
Nice, and thanks for the explanation. Just to make sure I get it: does this mean fully expanded TR modules are smaller? Does it reduce the number of generated contracts? On 09/08/2013 12:24 PM, Sam Tobin-Hochstadt wrote: Typed Racket has to expand into code that registers the type of each

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Eric Dobson
I have ideas to remove about the contracts from TR code, but currently that is only prototyped. Example: #lang typed/racket (provide f) (: f (Number - Number)) (define (f x) x) Currently f is exported with the contract (number? . - . number?), but this can be safely reduced to (number . - .

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Robby Findler
FWIW, this is something that's been studied in small calculi in the literature. Nothing that will have to get thru all of the little details that you have to get right to make it work in a real language design like TR, but maybe you'll find some useful ways to look at the problem. (Mostly the

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Sam Tobin-Hochstadt
Not only did our own Sam write about this, but he thought that he changed Typed Racket to do this. Am I missing something here, or are you describing more optimization than we do already or ...? Sam On Sep 9, 2013 8:33 PM, Robby Findler ro...@eecs.northwestern.edu wrote: FWIW, this is something

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Eric Dobson
When did you add this? Last time I checked (June-ish) this was not added. Can you point to the code that does it? On Mon, Sep 9, 2013 at 5:55 PM, Sam Tobin-Hochstadt sa...@cs.indiana.edu wrote: Not only did our own Sam write about this, but he thought that he changed Typed Racket to do this. Am

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Robby Findler
Our own Sam: one step ahead. :) Robby On Mon, Sep 9, 2013 at 7:55 PM, Sam Tobin-Hochstadt sa...@cs.indiana.eduwrote: Not only did our own Sam write about this, but he thought that he changed Typed Racket to do this. Am I missing something here, or are you describing more optimization than

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-09 Thread Sam Tobin-Hochstadt
I implemented what I thought would do this a long time ago, so if it isn't there then I must be misremembering or things have changed in the code to make it not happen. Sam On Sep 9, 2013 9:13 PM, Eric Dobson eric.n.dob...@gmail.com wrote: When did you add this? Last time I checked (June-ish)

Re: [racket-dev] [plt] Push #27446: master branch updated

2013-09-08 Thread Sam Tobin-Hochstadt
Typed Racket has to expand into code that registers the type of each module-top-level identifier in the global environment so that other modules can find the types to typecheck with. For example, this program: #lang typed/racket (provide x) (define: x : Integer 1) expands into (greatly