1.0.29.23: simple-fun and closure cleanups
authorNikodemus Siivola <nikodemus@random-state.net>
Sat, 20 Jun 2009 13:48:46 +0000 (13:48 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sat, 20 Jun 2009 13:48:46 +0000 (13:48 +0000)
commitdf871446529da0e83d670f35a9566c11d814be32
tree0aa02114fdd7aa7e264dca02a59942cc65b05a13
parentc593dc26733b179db6c12c7085ed76b762ac256b
1.0.29.23: simple-fun and closure cleanups

* Reorganize things a bit between kernel.lisp and target-misc.lisp for
  clarity, ditto for the package-data-lisp.expr.

* Define SIMPLE-FUN, CLOSURE, and FUNCALLABLE-INSTANCE types, and use
  them instead of manually checking for widetags in various places.

* Implement (SETF %FUN-LAMBDA-LIST), and make it work on interpreted
  functions as well by giving them an DEBUG-LAMBDA-LIST. Use in
  DEFMACRO and DEFINE-COMPILER-MACRO instead of looking at the widetags.

* Make (SETF %FUN-NAME) to work: on closures just change the name of
  the underlying function and let the callers beware. On interpreted
  functions change the new DEBUG-NAME slot instead of NAME. Use in
  DEFMACRO and DEFINE-COMPILER-MACRO.

* Implement and use DO-CLOSURE-VALUES to walk over closure environment
  instead of manually iterating over indexes.

* Use %FUN-FUN in FUN-DEBUG-FUN, and %FUN-LAMBDA-LIST in the
  SB-ACLREPL::INSPECTED-PARTS.

* Remove the commented out (SETF %FUN-NAME) from DEFUN: the compiler
  does the right thing, and for the debugger to have a useful name it
  has to be on the SIMPLE-FUN at any rate, so...

* Slightly nicer DESCRIBE of interpreted functions.
15 files changed:
contrib/sb-aclrepl/inspect.lisp
contrib/sb-introspect/sb-introspect.lisp
package-data-list.lisp-expr
src/code/debug-int.lisp
src/code/defboot.lisp
src/code/defmacro.lisp
src/code/describe.lisp
src/code/early-full-eval.lisp
src/code/fdefinition.lisp
src/code/kernel.lisp
src/code/macros.lisp
src/code/ntrace.lisp
src/code/target-defstruct.lisp
src/code/target-misc.lisp
version.lisp-expr