expander: fix eval of machine-independent top-level begin
This commit is contained in:
parent
f462ac6a31
commit
6e50aa088b
|
@ -3621,7 +3621,6 @@ case of module-leve bindings; it doesn't cover local bindings.
|
|||
#t
|
||||
`(has ,p)
|
||||
(for/or ([pr (in-list ctx)])
|
||||
(printf ">> ~s\n" (cdr pr))
|
||||
(and (cdr pr)
|
||||
(equal? p (srcloc-source (cdr pr))))))))
|
||||
(let ([m1 (parameterize ([current-load-relative-directory #f])
|
||||
|
@ -3633,6 +3632,18 @@ case of module-leve bindings; it doesn't cover local bindings.
|
|||
(check-name m1 (build-path (find-system-path 'temp-dir) "the-file.rkt"))
|
||||
(void)))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Make sure a top-level `begin` can be instantiated from
|
||||
;; machine-independent form
|
||||
|
||||
(let ([o (open-output-bytes)])
|
||||
(parameterize ([current-compile-target-machine #f])
|
||||
(write (compile '(begin (random) 10)) o))
|
||||
|
||||
(test 10 'top-begin/compile-any
|
||||
(eval (parameterize ([read-accept-compiled #t])
|
||||
(read (open-input-bytes (get-output-bytes o)))))))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -42662,7 +42662,7 @@ static const char *startup_source =
|
|||
"(begin"
|
||||
"(let-values(((data-instance_0)"
|
||||
"(instantiate-linklet$1"
|
||||
" data-linklet_0"
|
||||
"(force-compile-linklet data-linklet_0)"
|
||||
"(list"
|
||||
" deserialize-instance"
|
||||
"(let-values(((ns1_0) ns_0)"
|
||||
|
|
|
@ -48238,23 +48238,24 @@
|
|||
(define create-compiled-in-memorys-using-shared-data
|
||||
(lambda (tops_0 data-linklet_0 ns_0)
|
||||
(let ((data-instance_0
|
||||
(instantiate-linklet
|
||||
data-linklet_0
|
||||
(list
|
||||
deserialize-instance
|
||||
(let ((temp2_0 (namespace-phase ns_0)))
|
||||
(let ((temp3_0 (namespace-mpi ns_0)))
|
||||
(let ((temp4_0 (namespace-bulk-binding-registry ns_0)))
|
||||
(let ((temp5_0 (current-code-inspector)))
|
||||
(let ((temp4_1 temp4_0)
|
||||
(temp3_1 temp3_0)
|
||||
(temp2_1 temp2_0))
|
||||
(make-eager-instance-instance.1
|
||||
temp4_1
|
||||
temp2_1
|
||||
temp5_0
|
||||
ns_0
|
||||
temp3_1))))))))))
|
||||
(let ((app_0 (force-compile-linklet data-linklet_0)))
|
||||
(instantiate-linklet
|
||||
app_0
|
||||
(list
|
||||
deserialize-instance
|
||||
(let ((temp2_0 (namespace-phase ns_0)))
|
||||
(let ((temp3_0 (namespace-mpi ns_0)))
|
||||
(let ((temp4_0 (namespace-bulk-binding-registry ns_0)))
|
||||
(let ((temp5_0 (current-code-inspector)))
|
||||
(let ((temp4_1 temp4_0)
|
||||
(temp3_1 temp3_0)
|
||||
(temp2_1 temp2_0))
|
||||
(make-eager-instance-instance.1
|
||||
temp4_1
|
||||
temp2_1
|
||||
temp5_0
|
||||
ns_0
|
||||
temp3_1)))))))))))
|
||||
(let ((data_0
|
||||
(|#%name|
|
||||
data
|
||||
|
|
|
@ -7,13 +7,14 @@
|
|||
"../compile/reserved-symbol.rkt"
|
||||
"../compile/namespace-scope.rkt"
|
||||
"../compile/multi-top.rkt"
|
||||
"../compile/linklet.rkt")
|
||||
"../compile/linklet.rkt"
|
||||
"../compile/correlated-linklet.rkt")
|
||||
|
||||
(provide create-compiled-in-memorys-using-shared-data)
|
||||
|
||||
(define (create-compiled-in-memorys-using-shared-data tops data-linklet ns)
|
||||
(define data-instance
|
||||
(instantiate-linklet data-linklet
|
||||
(instantiate-linklet (force-compile-linklet data-linklet)
|
||||
(list deserialize-instance
|
||||
(make-eager-instance-instance
|
||||
#:namespace ns
|
||||
|
|
Loading…
Reference in New Issue
Block a user