diff --git a/racket/src/expander/run.rkt b/racket/src/expander/run.rkt index 1cbbd35925..9ad1415983 100644 --- a/racket/src/expander/run.rkt +++ b/racket/src/expander/run.rkt @@ -334,6 +334,11 @@ [(linklet-as-s-expr? l) (linklet-as-s-expr l)] [else l])) +(define startup-submodule + (if submod-name + `(submod ,startup-module ,submod-name) + startup-module)) + (cond [expand? (pretty-write (syntax->datum (apply-to-module expand startup-module)))] @@ -343,16 +348,19 @@ (extract-linklets (apply-to-module compile startup-module)) #f)))] + [extract? + (unless cache-dir (error 'run "extract mode requires a cache directory")) + ;; Put target module in the cache without running it + (dynamic-require startup-module (void))] [else ;; Load and run the requested module (parameterize ([current-command-line-arguments (list->vector args)]) - (namespace-require (if submod-name - `(submod ,startup-module ,submod-name) - startup-module)))]) + (namespace-require startup-submodule))]) + (when extract? ;; Extract a bootstrapping slice of the requested module - (extract startup-module cache + (extract startup-submodule cache #:print-extracted-to print-extracted-to #:as-c? extract-to-c? #:as-decompiled? extract-to-decompiled? diff --git a/racket/src/io/Makefile b/racket/src/io/Makefile index a75618b0b8..9cd511d35c 100644 --- a/racket/src/io/Makefile +++ b/racket/src/io/Makefile @@ -36,7 +36,7 @@ io-src: $(RKTIO_DEP) $(RACO) make ../expander/bootstrap-run.rkt $(MAKE) io-src-generate -GENERATE_ARGS = -t main.rkt --submod main \ +GENERATE_ARGS = -t main.rkt \ --check-depends $(BUILDDIR)compiled/io-dep.rktd \ ++depend-module ../expander/bootstrap-run.rkt \ ++depend ../rktio/rktio.rktl \ diff --git a/racket/src/io/main.rkt b/racket/src/io/main.rkt index 807540f95b..50cf463ea7 100644 --- a/racket/src/io/main.rkt +++ b/racket/src/io/main.rkt @@ -65,5 +65,3 @@ (install-error-value->string-handler!) (init-current-directory!) (init-current-ports! in-fd out-fd err-fd cust plumber)) - -(module main racket/base) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 2e5e437786..0d9e947e26 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -73,6 +73,9 @@ static const char *startup_source = " (lambda (a_0 b_0) (begin (if (list? a_0) (append a_0 b_0) (raise-argument-error 'unquote-splicing \"list?\" a_0)))))" "(define-values(call/ec) call-with-escape-continuation)" "(define-values" +"(fixnum-for-every-system?)" +"(lambda(v_0)(begin(if(fixnum? v_0)(if(fx>= v_0 -536870912)(fx<= v_0 536870911) #f) #f))))" +"(define-values" "(bad-list$1)" " (lambda (who_0 orig-l_0) (begin 'bad-list (raise-mismatch-error who_0 \"not a proper list: \" orig-l_0))))" "(define-values" @@ -19097,7 +19100,7 @@ static const char *startup_source = "(let-values(((type_0)(read-byte/no-eof i_0)))" "(let-values(((tmp_0) type_0))" "(let-values(((index_0)" -"(if(fixnum? tmp_0)" +"(if(fixnum-for-every-system? tmp_0)" "(if(if(unsafe-fx>= tmp_0 1)" "(unsafe-fx< tmp_0 41)" " #f)" diff --git a/racket/src/thread/Makefile b/racket/src/thread/Makefile index 60934e8532..cc83f9c821 100644 --- a/racket/src/thread/Makefile +++ b/racket/src/thread/Makefile @@ -34,7 +34,7 @@ GLOBALS = --no-global \ ++global-ok log-place-event -GENERATE_ARGS = -t main.rkt --submod main \ +GENERATE_ARGS = -t main.rkt \ --check-depends $(BUILDDIR)compiled/thread-dep.rktd \ ++depend-module ../expander/bootstrap-run.rkt \ --depends $(BUILDDIR)compiled/thread-dep.rktd \ diff --git a/racket/src/thread/main.rkt b/racket/src/thread/main.rkt index db051b72e4..cee6e7c747 100644 --- a/racket/src/thread/main.rkt +++ b/racket/src/thread/main.rkt @@ -211,5 +211,3 @@ unsafe-os-semaphore-wait #%thread-instance) - -(module main racket/base)