diff --git a/module/language/scheme/translate.scm b/module/language/scheme/translate.scm index 87f4435bb..618544a45 100644 --- a/module/language/scheme/translate.scm +++ b/module/language/scheme/translate.scm @@ -63,9 +63,13 @@ ((and (macro? val) (eq? (macro-name val) 'sc-macro)) ;; syncase! - (let ((syncase (module-ref (resolve-interface '(ice-9 syncase)) 'syncase))) + (let* ((the-syncase-module (resolve-module '(ice-9 syncase))) + (eec (module-ref the-syncase-module 'expansion-eval-closure)) + (sc-expand3 (module-ref the-syncase-module 'sc-expand3))) (lambda (env loc exp) - (retrans (syncase exp))))) + (retrans + (with-fluids ((eec (module-eval-closure (current-module)))) + (sc-expand3 exp 'c '(compile load eval))))))) ((macro? val) (syntax-error #f "unknown kind of macro" head)) diff --git a/module/system/base/compile.scm b/module/system/base/compile.scm index 803dfc31d..537d81ed1 100644 --- a/module/system/base/compile.scm +++ b/module/system/base/compile.scm @@ -25,7 +25,7 @@ :use-module (system il compile) :use-module (system il glil) :use-module ((system vm core) - :select (the-vm vm-load objcode->u8vector)) + :select (the-vm vm-load objcode->u8vector load-objcode)) :use-module (system vm assemble) :use-module (ice-9 regex) :export (syntax-error compile-file load-source-file load-file