Replace eval-case with eval-when
authorAndy Wingo <wingo@pobox.com>
Fri, 6 Mar 2009 12:29:13 +0000 (13:29 +0100)
committerAndy Wingo <wingo@pobox.com>
Fri, 6 Mar 2009 12:29:13 +0000 (13:29 +0100)
commitb15dea6857f531941063e91e2a89204e0754a99f
treea2998216dc005d502ed28f2b6f93fc6078238631
parent07e01c4cf9e9812af8790ebb4b5f7fb8d9463fa8
Replace eval-case with eval-when

* module/ice-9/boot-9.scm (eval-when): Replace eval-case with eval-when.
  Eval-when is *much* simpler, and more expressive to boot. Perhaps in
  the future we'll get 'visit and 'revisit too.

* module/ice-9/deprecated.scm (eval-case): Provide mostly-working
  deprecated version of eval-case.

* module/ice-9/boot-9.scm (defmacro, define-macro): Relax condition: we
  can make defmacros that are not at the toplevel now. But in the future
  we should replace this implementation of defmacros with one written in
  syntax-case.
  (define-module, use-modules, use-syntax): Allow at non-toplevel.
  (define-public, defmacro-public, export, re-export): Don't evaluate at
  compile-time, I can't see how that helps things. Allow `export' and
  `re-export' at non-toplevel.

* module/ice-9/getopt-long.scm:
* module/ice-9/i18n.scm:
* module/oop/goops.scm:
* module/oop/goops/compile.scm:
* module/oop/goops/dispatch.scm: Switch to use eval-when, not
  eval-case.

* module/language/scheme/compile-ghil.scm (eval-when): Replace eval-case
  transformer with eval-when transformer. Sooooo much simpler, and it
  will get better once we separate expansion from compilation.

* module/language/scheme/expand.scm (quasiquote): Hm, expand quasiquote
  properly. Not hygienic. Syncase needed.
  (lambda): Handle internal defines with docstrings propertly.
module/ice-9/boot-9.scm
module/ice-9/deprecated.scm
module/ice-9/getopt-long.scm
module/ice-9/i18n.scm
module/language/scheme/compile-ghil.scm
module/language/scheme/expand.scm
module/oop/goops.scm
module/oop/goops/compile.scm
module/oop/goops/dispatch.scm