From 8f9fcb02f37531cde1daa9695ce540be9ab9348c Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 28 Feb 2018 19:36:28 -0700 Subject: [PATCH] expander: fix sealed initial parameterization --- racket/collects/racket/place/private/th-place.rkt | 2 +- racket/src/expander/boot/handler.rkt | 7 ++++++- racket/src/racket/src/startup.inc | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/racket/collects/racket/place/private/th-place.rkt b/racket/collects/racket/place/private/th-place.rkt index 9a69d4cf80..ea1117de21 100644 --- a/racket/collects/racket/place/private/th-place.rkt +++ b/racket/collects/racket/place/private/th-place.rkt @@ -58,7 +58,7 @@ (lambda () (with-continuation-mark parameterization-key - orig-paramz + (get-original-parameterization) (parameterize ([current-namespace (make-base-namespace)] [current-custodian cust] [exit-handler (lambda (v) diff --git a/racket/src/expander/boot/handler.rkt b/racket/src/expander/boot/handler.rkt index d0535191ac..b073a2e30c 100644 --- a/racket/src/expander/boot/handler.rkt +++ b/racket/src/expander/boot/handler.rkt @@ -674,10 +674,15 @@ (reparameterize (continuation-mark-set-first #f parameterization-key)))) +(define (get-original-parameterization) + orig-paramz) + ;; ---------------------------------------- ;; For historical uses of '#%boot (define boot-primitives (hash 'boot boot 'seal seal - 'orig-paramz orig-paramz)) + ;; Historically, exported a `orig-paramz` after place + ;; initialization, but we now need an indirection + 'get-original-parameterization get-original-parameterization)) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index b5dae70606..996f19615e 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -59963,7 +59963,10 @@ static const char *startup_source = "(define-values" "(seal)" "(lambda()(begin(set! orig-paramz(reparameterize(continuation-mark-set-first #f parameterization-key))))))" -"(define-values(boot-primitives)(hash 'boot boot 'seal seal 'orig-paramz orig-paramz))" +"(define-values(get-original-parameterization)(lambda()(begin orig-paramz)))" +"(define-values" +"(boot-primitives)" +"(hash 'boot boot 'seal seal 'get-original-parameterization get-original-parameterization))" "(define-values" "(prepare-next-phase-namespace)" "(lambda(ctx_75)"