diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2012-07-01 02:18:55 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2012-07-01 02:18:55 +0200 |
commit | 540293601e7dcac9eb193d529d7b2413765f3c72 (patch) | |
tree | 28f08b8392a7a9d3c2b48809902c23771390f692 /scheme/racket/geiser | |
parent | 1312f42a54252fa4378d7dfbd68591f9e6275c1a (diff) | |
download | geiser-guile-540293601e7dcac9eb193d529d7b2413765f3c72.tar.gz geiser-guile-540293601e7dcac9eb193d529d7b2413765f3c72.tar.bz2 |
Racket: fix for module compilation for recent rackets
This one probably requires Racket 5.3, and incorporates some
parameterization to the module compilation and evaluation code in
Geiser's version of enter.rkt. I'm mostly mirroring what the latter
does, and i'm probably not completely understanding all corner cases,
so the two users of Geiser should keep an eye open for possible
breakage introduced by this patch.
Diffstat (limited to 'scheme/racket/geiser')
-rw-r--r-- | scheme/racket/geiser/enter.rkt | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/scheme/racket/geiser/enter.rkt b/scheme/racket/geiser/enter.rkt index cb33a55..e996527 100644 --- a/scheme/racket/geiser/enter.rkt +++ b/scheme/racket/geiser/enter.rkt @@ -85,12 +85,13 @@ (current-continuation-marks)))) (if name ;; Module load: - (let ([code (get-module-code path "compiled" compile - (lambda (ext loader?) - (load-extension ext) - #f) - #:notify (lambda (chosen) - (notify re? chosen)))] + (let ([code (get-module-code + path "compiled" + (lambda (e) + (parameterize ([compile-enforce-module-constants #f]) + (compile e))) + (lambda (ext loader?) (load-extension ext) #f) + #:notify (lambda (chosen) (notify re? chosen)))] [path (normal-case-path (simplify-path (path->complete-path path @@ -107,7 +108,8 @@ null))]) (add-paths! m (resolve-paths path))) ;; Evaluate the module: - (eval code)) + (parameterize ([current-module-declare-source path]) + (eval code))) ;; Not a module: (begin (notify re? path) |