* module/system/base/compile.scm: Also import load-objcode from (system
vm core).
* module/language/scheme/translate.scm (lookup-transformer): Use
sc-expand3 in compilation mode when compiling macros. Yay, syncase
macros compile!
((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))
: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