I did a mini-experiment today, and was surprised.

Specifically, my guess was that changing the language of a file from 

#lang typed/racket

to

#lang typed/racket/base

and adding the newly-necessary requires:

(require racket/match
         racket/list
         racket/math)

… would result in faster compile times and smaller .zo files. Neither of these 
was true; compilation time rose slightly, from about 3.35 seconds to about 3.45 
seconds, and the .zo file went from about 58K up to about 59K. 

I also tried to trim the imports by using ‘only-in’ and a local definition for 
‘natural’, leading to this replacement for the require:

(require racket/match
         (only-in racket/list first rest second third fourth group-by)
         ;racket/math
         )

(define natural? exact-nonnegative-integer?)

… but the compilation time stayed about the same, and the generated .zo was 
about the same size.

I then checked on startup times for the compiled file, and they were apparently 
the same (0.57 seconds) for both versions. 

So, my question is this: does it actually make sense to spend time stripping 
down files from typed/racket to typed/racket/base? 

A related question with a possibly totally different answer: what about time 
spent stripping files down from racket to racket/base? Is this also not worth 
it?

Thanks!

John



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to