create-embedding-executable: fix namespace and module-declaration problem
This commit is contained in:
parent
252e4ce590
commit
8253994434
|
@ -0,0 +1,3 @@
|
||||||
|
#lang racket
|
||||||
|
|
||||||
|
"Ok"
|
|
@ -620,3 +620,16 @@
|
||||||
(try-reader)
|
(try-reader)
|
||||||
(try-planet)
|
(try-planet)
|
||||||
(try-*sl)
|
(try-*sl)
|
||||||
|
|
||||||
|
;; ----------------------------------------
|
||||||
|
;; Make sure that embedding does not break future module declarations
|
||||||
|
|
||||||
|
(let ()
|
||||||
|
(parameterize ([current-output-port (open-output-bytes)])
|
||||||
|
(write-module-bundle
|
||||||
|
#:modules (list (list #f (collection-file-path "embed-me24.rkt" "tests" "compiler" "embed")))))
|
||||||
|
|
||||||
|
(parameterize ([read-accept-reader #t]
|
||||||
|
[current-namespace (make-base-namespace)])
|
||||||
|
(eval (read (open-input-string "#lang racket 10")))))
|
||||||
|
|
||||||
|
|
|
@ -489,10 +489,16 @@
|
||||||
;; avoid potentially trying to redeclare cross-phase persistent modules,
|
;; avoid potentially trying to redeclare cross-phase persistent modules,
|
||||||
;; since redeclaration isn't allowed:
|
;; since redeclaration isn't allowed:
|
||||||
null
|
null
|
||||||
;; check for run-time paths by visinting the module in a fresh
|
;; check for run-time paths by visiting the module in an
|
||||||
;; namespace:
|
;; expand-time namespace:
|
||||||
(parameterize ([current-namespace expand-namespace])
|
(parameterize ([current-namespace expand-namespace])
|
||||||
(eval code)
|
(define no-submodule-code
|
||||||
|
;; Strip away submodules to avoid re-declaring them:
|
||||||
|
(module-compiled-submodules
|
||||||
|
(module-compiled-submodules code #f null)
|
||||||
|
#t
|
||||||
|
null))
|
||||||
|
(eval no-submodule-code)
|
||||||
(let ([module-path
|
(let ([module-path
|
||||||
(if (path? module-path)
|
(if (path? module-path)
|
||||||
(path->complete-path module-path)
|
(path->complete-path module-path)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user