diff --git a/collects/tests/typed-racket/performance/module-loading.rkt b/collects/tests/typed-racket/performance/module-loading.rkt new file mode 100644 index 00000000..780f375c --- /dev/null +++ b/collects/tests/typed-racket/performance/module-loading.rkt @@ -0,0 +1,25 @@ +#lang racket/load + +(require racket/base racket/stream racket/syntax) + +(define (make-mod name required-name) + #`(module #,name typed/racket/base + (require '#,required-name))) + + + +(define (make-program N) + (define the-names + (let () + (define (names) (stream-cons (generate-temporary) (names))) + (names))) + #`(begin + (module #,(stream-first the-names) typed/racket/base) + #,@(for/list ((_ N) + (name (stream-rest the-names)) + (required-name the-names)) + #`(begin + #,(make-mod name required-name) + (require '#,name))))) + +(time (eval (make-program 40)))