Refactor CONSTANTP a bit more.
commite9c29bcd12cecc8f2912d29bd6d66c61e8c273e7
authorDouglas Katzman <dougk@google.com>
Tue, 23 Feb 2016 02:34:59 +0000 (22 21:34 -0500)
committerDouglas Katzman <dougk@google.com>
Tue, 23 Feb 2016 02:45:16 +0000 (22 21:45 -0500)
tree0b678df3e6bf50098e65bf5ebdf81910006b151a
parentc486697891c0ec221d962de526a359b37f83ef90
Refactor CONSTANTP a bit more.

- Non-constant special forms don't fall into CONSTANT-FUNCTION-CALL-P.
  It rightly got NIL either way, but avoiding a useless test
  gives a measurable performance improvement.

- Malformed special forms always cause CONSTANTP to return NIL
  to match the behavior of at least 4 other Lisp implementations.

- UNWIND-PROTECT and M-V-PROG1 handlers do not cons.

- cold-init functions are not needed.
build-order.lisp-expr
src/code/cold-init.lisp
src/compiler/constantp.lisp
src/compiler/early-constantp.lisp [new file with mode: 0644]
src/compiler/late-constantp.lisp [deleted file]
tests/constantp.pure.lisp [new file with mode: 0644]