mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-05 03:30:24 +02:00
* module/language/scheme/translate.scm (eval-at-compile-time) (&compile-time-module, expand-macro): Remove this attempt at dealing with macros. Instead, we're going to rely on macros being first-class, and just catch eval-case at the bottom. (lookup-transformer): Lookup all syntax transformers in the module's eval closure. We catch the primitive-macros, compiling them to ghil, and expand the rest. (lookup-transformer): Fold in trans-pair here. Add a hacky case for the unspecified value; the problem shows up when compiling e.g. (define-macro (plus! x) `(set! ,x (1+ x))), as a fallout from eval-case. (make-pmatch-transformers, primitive-syntax-table): Define the primitive syntax transformers as a data-driven table instead of a function. There's a bit of syntax, too. Eval-case was rewritten to use pmatch. * module/system/base/compile.scm (scheme): Define as a thunk instead of a value, so as to allow (language scheme translate) to be imported in the repl. Still, a hack. |
||
---|---|---|
.. | ||
base | ||
il | ||
repl | ||
vm | ||
.cvsignore | ||
Makefile.am |