Re: [racket-dev] [plt] Push #21079: master branch updated
Jay McCarthy wrote: I didn't see any data/heap tests. Jay I still need to add them. Docs, too. Ryan _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21079: master branch updated
I didn't see any data/heap tests. Jay _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21079: master branch updated
Robby Findler wrote: On Mon, Sep 13, 2010 at 4:18 PM, wrote: a3d1ff4 Ryan Culpepper 2010-09-09 17:29 : | added contracts (->i) to racket/dict : M collects/racket/dict.rkt | 190 - M collects/unstable/dirs.rkt | 13 ++-- Do you have a benchmark for splay trees or some app that uses them a lot that you can use to measure what kind of a performance hit you are taking from these contracts? Not yet, but I should be able to adapt the test into a stress test. Some hints for anyone else who'd like to try: There are two contract boundaries involved in dictionaries now. There's a boundary between the dictionary implementation and racket/dict, via prop:dict/contract and struct-type-property/c. There'a also a boundary between racket/dict and client modules. You can bypass the first boundary by using prop:dict instead of prop:dict/contract. You can bypass the second one by requiring dict-ref et al from racket/private/dict instead of racket/dict. Ryan _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21079: master branch updated
On Mon, Sep 13, 2010 at 4:18 PM, wrote: > > a3d1ff4 Ryan Culpepper 2010-09-09 17:29 > : > | added contracts (->i) to racket/dict > : > M collects/racket/dict.rkt | 190 - > M collects/unstable/dirs.rkt | 13 ++-- > Do you have a benchmark for splay trees or some app that uses them a lot that you can use to measure what kind of a performance hit you are taking from these contracts? Robby _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21078: master branch updated
But this is editing the user's preferences, not setting the defaults. Robby On Mon, Sep 13, 2010 at 3:52 PM, Eli Barzilay wrote: > On Sep 13, Robby Findler wrote: >> DrRacket doesn't yet have good tool support for such things, but it >> should at least look at the #lang line for indentation and probably >> will do that at some point (in which case the dialog will change to >> be letting you add things to what the #lang line specifies instead >> of just specifying everything). But not today, I'm sorry to say. > > Here's the code from my class tool: > > (define (add-form-specs) > (define (sethash! t key val) > (unless (hash-ref t key #f) (hash-set! t key val))) > (define (setalist l key val) > (if (assoc key l) l (cons (list key val) l))) > (let ([t (car (preferences:get 'framework:tabify))]) > (for ([s '(define: define-type)]) > (sethash! t s 'define)) > (for ([s '(lambda: cases)]) > (sethash! t s 'lambda))) > (let* ([l1 (preferences:get 'framework:square-bracket:cond/offset)] > [l2 (setalist l1 "define-type" 1)] > [l2 (setalist l2 "cases" 1)] > [l2 (setalist l2 "match" 1)]) > (unless (equal? l1 l2) > (preferences:set 'framework:square-bracket:cond/offset l2 > > (A minor extension to the preferences could probably even do that > without writing the file.) > > -- > ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: > http://barzilay.org/ Maze is Life! > _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21078: master branch updated
On Sep 13, Robby Findler wrote: > DrRacket doesn't yet have good tool support for such things, but it > should at least look at the #lang line for indentation and probably > will do that at some point (in which case the dialog will change to > be letting you add things to what the #lang line specifies instead > of just specifying everything). But not today, I'm sorry to say. Here's the code from my class tool: (define (add-form-specs) (define (sethash! t key val) (unless (hash-ref t key #f) (hash-set! t key val))) (define (setalist l key val) (if (assoc key l) l (cons (list key val) l))) (let ([t (car (preferences:get 'framework:tabify))]) (for ([s '(define: define-type)]) (sethash! t s 'define)) (for ([s '(lambda: cases)]) (sethash! t s 'lambda))) (let* ([l1 (preferences:get 'framework:square-bracket:cond/offset)] [l2 (setalist l1 "define-type" 1)] [l2 (setalist l2 "cases" 1)] [l2 (setalist l2 "match" 1)]) (unless (equal? l1 l2) (preferences:set 'framework:square-bracket:cond/offset l2 (A minor extension to the preferences could probably even do that without writing the file.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21078: master branch updated
DrRacket doesn't yet have good tool support for such things, but it should at least look at the #lang line for indentation and probably will do that at some point (in which case the dialog will change to be letting you add things to what the #lang line specifies instead of just specifying everything). But not today, I'm sorry to say. Robby On Mon, Sep 13, 2010 at 3:07 PM, Eli Barzilay wrote: > On Sep 13, j...@racket-lang.org wrote: >> collects/framework/private/main.rkt >> ~~~ >> --- OLD/collects/framework/private/main.rkt >> +++ NEW/collects/framework/private/main.rkt >> @@ -208,7 +208,10 @@ >> (let ([hash-table (make-hasheq)]) >> (for-each (λ (x) >> (hash-set! hash-table x 'define)) >> - '(struct local)) >> + '(struct >> + local >> + >> + define-type)) > > Why is this needed? Isn't the "def.*" regexp catching it? > >> for-all >> + >> + type-case > > But more importantly, why not do these things in tools, so there's no > need to add stuff to drracket whenever a new language pops up? > > > (That's how I added such forms for my course language.) > > -- > ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: > http://barzilay.org/ Maze is Life! > _ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] [plt] Push #21078: master branch updated
On Sep 13, j...@racket-lang.org wrote: > collects/framework/private/main.rkt > ~~~ > --- OLD/collects/framework/private/main.rkt > +++ NEW/collects/framework/private/main.rkt > @@ -208,7 +208,10 @@ > (let ([hash-table (make-hasheq)]) >(for-each (λ (x) >(hash-set! hash-table x 'define)) > -'(struct local)) > +'(struct > + local > + > + define-type)) Why is this needed? Isn't the "def.*" regexp catching it? > for-all > + > + type-case But more importantly, why not do these things in tools, so there's no need to add stuff to drracket whenever a new language pops up? (That's how I added such forms for my course language.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev