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

2010-09-13 Thread Ryan Culpepper

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

2010-09-13 Thread Jay McCarthy
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

2010-09-13 Thread Ryan Culpepper

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

2010-09-13 Thread Robby Findler
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

2010-09-13 Thread Robby Findler
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

2010-09-13 Thread Eli Barzilay
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

2010-09-13 Thread Robby Findler
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

2010-09-13 Thread Eli Barzilay
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