1.0.48.28: make TRULY-THE macroexpandable
authorNikodemus Siivola <nikodemus@random-state.net>
Sat, 28 May 2011 12:27:36 +0000 (12:27 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sat, 28 May 2011 12:27:36 +0000 (12:27 +0000)
commita7a4ca961ef0f587a2549bd9433eef7ddb845ab7
tree638ece6cff7c7707b1d00a4bcad14b8045178380
parentffb003f5648f1abe64561c8a426878774e10a21b
1.0.48.28: make TRULY-THE macroexpandable

  lp#771673

  * MACRO-FUNCTION no longer checks :FUNCTION :KIND, allowing us to have
    special operators with macro-expansions in the first place.

  * Add %MACROEXPAND and %MACROEXPAND which are careful not to expand special
    forms, and use them in place of SB!XC:MACROEXPAND.

  * Set the :FUNCTION :MACRO-FUNCTION into an expander that just converts
    it to THE. This only happens when someone explicitly calls MACROEXPAND
    or uses MACRO-FUNCTION directly -- never in the compiler.

  * Also add a SETF-expander.
21 files changed:
NEWS
package-data-list.lisp-expr
src/code/defboot.lisp
src/code/early-setf.lisp
src/code/host-alieneval.lisp
src/code/loop.lisp
src/code/macroexpand.lisp
src/code/macros.lisp
src/compiler/assem.lisp
src/compiler/constantp.lisp
src/compiler/fndb.lisp
src/compiler/fopcompile.lisp
src/compiler/info-functions.lisp
src/compiler/ir1-translators.lisp
src/compiler/main.lisp
src/pcl/slots-boot.lisp
src/pcl/time.lisp
src/pcl/vector.lisp
src/pcl/walk.lisp
tests/compiler.pure.lisp
version.lisp-expr