1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-05 03:30:24 +02:00
guile/module/system
Andy Wingo 7d1c45d38e fix macro compilation via hooking into eval-case
* 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.
2008-05-14 14:47:29 +02:00
..
base fix macro compilation via hooking into eval-case 2008-05-14 14:47:29 +02:00
il Update Makefile.am's; remove slib import 2008-05-13 00:07:40 +02:00
repl Update Makefile.am's; remove slib import 2008-05-13 00:07:40 +02:00
vm Update Makefile.am's; remove slib import 2008-05-13 00:07:40 +02:00
.cvsignore *** empty log message *** 2001-04-22 02:13:48 +00:00
Makefile.am Update Makefile.am's; remove slib import 2008-05-13 00:07:40 +02:00