From: Nikodemus S. <de...@us...> - 2009-06-20 14:12:44
|
Update of /cvsroot/sbcl/sbcl In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv9179 Modified Files: package-data-list.lisp-expr version.lisp-expr Log Message: 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. Index: package-data-list.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/package-data-list.lisp-expr,v retrieving revision 1.505 retrieving revision 1.506 diff -u -d -r1.505 -r1.506 --- package-data-list.lisp-expr 20 Jun 2009 11:37:25 -0000 1.505 +++ package-data-list.lisp-expr 20 Jun 2009 13:48:46 -0000 1.506 @@ -1231,7 +1231,6 @@ "%CHECK-BOUND" "%CHECK-GENERIC-SEQUENCE-BOUNDS" "%CHECK-VECTOR-SEQUENCE-BOUNDS" - "%CLOSURE-FUN" "%CLOSURE-INDEX-REF" "%COMPARE-AND-SWAP-CAR" "%COMPARE-AND-SWAP-CDR" "%COMPARE-AND-SWAP-INSTANCE-REF" @@ -1244,9 +1243,6 @@ "%FIND-POSITION-VECTOR-MACRO" "%FIND-POSITION-IF" "%FIND-POSITION-IF-VECTOR-MACRO" "%FIND-POSITION-IF-NOT" "%FIND-POSITION-IF-NOT-VECTOR-MACRO" - "%FUN-DOC" - "%FUN-FUN" - "%FUN-NAME" "%HYPOT" "%LDB" "%LOG" "%LOGB" "%LOG10" "%LAST0" "%LAST1" @@ -1694,6 +1690,30 @@ "UB64-BASH-COPY" "SYSTEM-AREA-UB64-COPY" "COPY-UB64-TO-SYSTEM-AREA" "COPY-UB64-FROM-SYSTEM-AREA" + ;; SIMPLE-FUN type and accessors + "SIMPLE-FUN" + "SIMPLE-FUN-P" + "%SIMPLE-FUN-ARGLIST" + "%SIMPLE-FUN-NAME" + "%SIMPLE-FUN-NEXT" + "%SIMPLE-FUN-SELF" + "%SIMPLE-FUN-TYPE" + "%SIMPLE-FUN-XREFS" + + ;; CLOSURE type and accessors + "CLOSURE" + "CLOSUREP" + "DO-CLOSURE-VALUES" + "%CLOSURE-FUN" + "%CLOSURE-INDEX-REF" + "%CLOSURE-VALUES" + + ;; Abstract function accessors + "%FUN-DOC" + "%FUN-FUN" + "%FUN-LAMBDA-LIST" + "%FUN-NAME" + "FDEFN" "MAKE-FDEFN" "FDEFN-P" "FDEFN-NAME" "FDEFN-FUN" "FDEFN-MAKUNBOUND" "OUTER-FDEFN" "%COERCE-CALLABLE-TO-FUN" "FUN-SUBTYPE" @@ -1713,19 +1733,18 @@ "DD-RAW-LENGTH" "NOTE-NAME-DEFINED" "%CODE-CODE-SIZE" "DD-SLOTS" "DD-INCLUDE" "SLOT-SETTER-LAMBDA-FORM" "%IMAGPART" "DSD-ACCESSOR-NAME" "%CODE-DEBUG-INFO" - "LAYOUT-CLASSOID" "LAYOUT-INVALID" "%SIMPLE-FUN-NAME" + "LAYOUT-CLASSOID" "LAYOUT-INVALID" "DSD-TYPE" "%INSTANCEP" "DEFSTRUCT-SLOT-DESCRIPTION" - "%SIMPLE-FUN-ARGLIST" "%SIMPLE-FUN-NEXT" "DD-PREDICATE-NAME" "CLASSOID-PROPER-NAME" "%NOTE-TYPE-DEFINED" "LAYOUT-INFO" "%SET-INSTANCE-LAYOUT" "DD-DEFAULT-CONSTRUCTOR" - "LAYOUT-OF" "%SIMPLE-FUN-SELF" "%REALPART" + "LAYOUT-OF" "%REALPART" "STRUCTURE-CLASSOID-P" "DSD-INDEX" "STRUCTURE-CLASSOID" - "%INSTANCE-LAYOUT" "LAYOUT-CLOS-HASH" "%SIMPLE-FUN-TYPE" + "%INSTANCE-LAYOUT" "LAYOUT-CLOS-HASH" "PROCLAIM-AS-FUN-NAME" "BECOME-DEFINED-FUN-NAME" "%NUMERATOR" "CLASSOID-TYPEP" "DSD-READ-ONLY" "DSD-DEFAULT" "LAYOUT-INHERITS" "DD-LENGTH" - "%CODE-ENTRY-POINTS" "%DENOMINATOR" "%SIMPLE-FUN-XREFS" + "%CODE-ENTRY-POINTS" "%DENOMINATOR" "%OTHER-POINTER-P" "STANDARD-CLASSOID" "CLASSOID-OF" @@ -2681,7 +2700,9 @@ :export ("INTERPRETED-FUNCTION" "INTERPRETED-FUNCTION-P" "INTERPRETED-FUNCTION-NAME" + "INTERPRETED-FUNCTION-DEBUG-NAME" "INTERPRETED-FUNCTION-LAMBDA-LIST" + "INTERPRETED-FUNCTION-DEBUG-LAMBDA-LIST" "INTERPRETED-FUNCTION-DOCUMENTATION" "INTERPRETED-FUNCTION-BODY" "INTERPRETED-FUNCTION-SOURCE-LOCATION" Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.4516 retrieving revision 1.4517 diff -u -d -r1.4516 -r1.4517 --- version.lisp-expr 20 Jun 2009 09:31:50 -0000 1.4516 +++ version.lisp-expr 20 Jun 2009 13:48:47 -0000 1.4517 @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.29.21" +"1.0.29.23" |