Re: [racket-dev] contract-out

2011-09-25 Thread J. Ian Johnson
Everyone rolling their own is bad. We want people to contract their code, and they don't want to always pay for the overhead. #2 sounds the best, since that could be again abstracted over by the user, this time with one line instead of the sevel it takes to implement provide-cond-contract. This

Re: [racket-dev] contract-out

2011-09-25 Thread Sam Tobin-Hochstadt
Right now, in the Typed Racket implementation, there's forms like this: (provide-cond-contract [foo foo?]) Option #2 would be something like this: (provide (cond-contract-out enable-contracts? [foo foo?])) and everywhere has to reference the `enable-contracts?' identifier. I'm not convinced

Re: [racket-dev] contract-out

2011-09-25 Thread Carl Eastlund
How about we write a define-toggle-contract-out form, so everyone can define their own without actually implementing their own. Something like so: (define-toggle-contract-out my-contract-out #:disable) ;; comment out keyword to enable (provide (my-contract-out [thing thing/c])) Carl Eastlund On

Re: [racket-dev] contract-out

2011-09-25 Thread Sam Tobin-Hochstadt
That's the best solution I've come up with, which is basically the abstraction I suggested under #4. sam th On Sunday, September 25, 2011, Carl Eastlund wrote: How about we write a define-toggle-contract-out form, so everyone can define their own without actually implementing their own.

Re: [racket-dev] contract-out

2011-09-25 Thread Eli Barzilay
IMO, a better approach for disabling contracts is to have the client decide whether it wants the contracted version or the plain one -- which is a rough mirror of how unsafe operations are done (with the choice being made by requiring one file or another). Then, there could be a facility that

Re: [racket-dev] contract-out

2011-09-25 Thread Sam Tobin-Hochstadt
On Sun, Sep 25, 2011 at 8:14 PM, Eli Barzilay e...@barzilay.org wrote: IMO, a better approach for disabling contracts is to have the client decide whether it wants the contracted version or the plain one -- which is a rough mirror of how unsafe operations are done (with the choice being made

[racket-dev] weirdness with racket or typed racket module requiring startup time?

2011-09-25 Thread Danny Yoo
In Whalesong, I've been watching where the compile-time is going, because I want to make it more pleasant to use. When I compile hello world, it takes about three seconds to complete the compile on my machine. Out of a lark, I wanted to see what the base-line was for just loading up the modules

Re: [racket-dev] weirdness with racket or typed racket module requiring startup time?

2011-09-25 Thread Sam Tobin-Hochstadt
On Sun, Sep 25, 2011 at 9:24 PM, Danny Yoo d...@cs.wpi.edu wrote: [snip TR taking a long time to load] Is that something that's supposed to happen?  I guess I'm just trying to understand the repercussions of requiring a module from Typed Racket into regular Racket. This looks a little worse

Re: [racket-dev] contract-out

2011-09-25 Thread Eli Barzilay
An hour and a half ago, Sam Tobin-Hochstadt wrote: On Sun, Sep 25, 2011 at 8:14 PM, Eli Barzilay e...@barzilay.org wrote: IMO, a better approach for disabling contracts is to have the client decide whether it wants the contracted version or the plain one -- which is a rough mirror of how

Re: [racket-dev] contract-out

2011-09-25 Thread Sam Tobin-Hochstadt
On Sun, Sep 25, 2011 at 9:36 PM, Eli Barzilay e...@barzilay.org wrote: An hour and a half ago, Sam Tobin-Hochstadt wrote: On Sun, Sep 25, 2011 at 8:14 PM, Eli Barzilay e...@barzilay.org wrote: IMO, a better approach for disabling contracts is to have the client decide whether it wants the

Re: [racket-dev] weirdness with racket or typed racket module requiring startup time?

2011-09-25 Thread Neil Van Dyke
Danny Yoo wrote at 09/25/2011 09:24 PM: I'm observing about a 100ms cost here for something that I expected to be a no-op, because the module has already been required. You think you could be taking a small GC hit then? PLTSTDERR=debug environment variable might show GC info. Or add