fix bad syntax in define-macro, (ice-9 match), and (oop goops)
authorAndy Wingo <wingo@pobox.com>
Sat, 25 Apr 2009 10:50:53 +0000 (12:50 +0200)
committerAndy Wingo <wingo@pobox.com>
Sat, 25 Apr 2009 10:50:53 +0000 (12:50 +0200)
commit2ce560b944c8af2047415612835fcd23fa3de473
treed215cb00f16bf1b22507f10c679cd908648427d9
parent0ee32d0131b49ee0661669b7a0b595d0a6565de4
fix bad syntax in define-macro, (ice-9 match), and (oop goops)

* module/ice-9/boot-9.scm (define-macro): Use syntax-case to destructure
  macro arguments, so we get good errors.

* module/ice-9/match.scm (defstruct, define-const-structure): Don't
  unquote in the `defstruct' macro as a value in expansions.

* module/oop/goops.scm (standard-define-class): Can't define a macro with
  `define', use `define-syntax' instead.
  (define-accessor): Use syntax-rules. Doesn't give us much in this case.
  (toplevel-define!): New helper, to let us keep GOOPS' behavior with the
  new expander. Some solution that works lexically and at the toplevel
  would be nice, though.
  (define-method): Reimplement with syntax-rules -- soooo much nicer.

* module/oop/goops/dispatch.scm (lookup-create-cmethod): Don't define
  within an expression.
module/ice-9/boot-9.scm
module/ice-9/match.scm
module/oop/goops.scm
module/oop/goops/dispatch.scm