mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 20:00:19 +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:
parent
a52b96a70a
commit
8f43eb2b42
2 changed files with 7 additions and 3 deletions
|
@ -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))
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue