1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00

syncase macros compiling!

* 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!
This commit is contained in:
Andy Wingo 2008-05-19 10:38:18 +02:00
parent a52b96a70a
commit 8f43eb2b42
2 changed files with 7 additions and 3 deletions

View file

@ -63,9 +63,13 @@
((and (macro? val) (eq? (macro-name val) 'sc-macro)) ((and (macro? val) (eq? (macro-name val) 'sc-macro))
;; syncase! ;; 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) (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) ((macro? val)
(syntax-error #f "unknown kind of macro" head)) (syntax-error #f "unknown kind of macro" head))

View file

@ -25,7 +25,7 @@
:use-module (system il compile) :use-module (system il compile)
:use-module (system il glil) :use-module (system il glil)
:use-module ((system vm core) :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 (system vm assemble)
:use-module (ice-9 regex) :use-module (ice-9 regex)
:export (syntax-error compile-file load-source-file load-file :export (syntax-error compile-file load-source-file load-file