From: Alexey D. <ade...@us...> - 2002-10-10 07:16:20
|
Update of /cvsroot/sbcl/sbcl In directory usw-pr-cvs1:/tmp/cvs-serv31829 Modified Files: BUGS package-data-list.lisp-expr version.lisp-expr Log Message: 0.7.8.23: * Fixed bug 204: (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) inside MACROLET. * Expanders, introduced by MACROLET, are defined in a restricted lexical environment. * SB-C:LEXENV-FIND works in any package. Index: BUGS =================================================================== RCS file: /cvsroot/sbcl/sbcl/BUGS,v retrieving revision 1.203 retrieving revision 1.204 diff -u -d -r1.203 -r1.204 --- BUGS 8 Oct 2002 08:24:06 -0000 1.203 +++ BUGS 10 Oct 2002 07:16:14 -0000 1.204 @@ -649,6 +649,12 @@ but actual specification quoted above says that the actual behavior is undefined. + (Since 0.7.8.23 macroexpanders are defined in a restricted version + of the lexical environment, containing no lexical variables and + functions, which seems to conform to ANSI and CLtL2, but signalling + a STYLE-WARNING for references to variables similar to locals might + be a good thing.) + 125: (as reported by Gabe Garza on cmucl-help 2001-09-21) (defvar *tmp* 3) @@ -1222,19 +1228,13 @@ This situation may appear during optimizing away degenerate cases of certain functions: see bugs 54, 192b. -204: - (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) inside MACROLET evaluates its - argument in the null lexical environment. E.g. compiling file with - - (macrolet ((def (x) `(print ,x))) - (eval-when (:compile-toplevel) - (def 'hello))) - - causes - - debugger invoked on condition of type UNDEFINED-FUNCTION: - The function DEF is undefined. - +205: "environment issues in cross compiler" + (These bugs have no impact on user code, but should be fixed or + documented.) + a. Macroexpanders introduced with MACROLET are defined in the null + lexical environment. + b. The body of (EVAL-WHEN (:COMPILE-TOPLEVEL) ...) is evaluated in + the null lexical environment. DEFUNCT CATEGORIES OF BUGS IR1-#: Index: package-data-list.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/package-data-list.lisp-expr,v retrieving revision 1.180 retrieving revision 1.181 diff -u -d -r1.180 -r1.181 --- package-data-list.lisp-expr 2 Oct 2002 23:22:47 -0000 1.180 +++ package-data-list.lisp-expr 10 Oct 2002 07:16:14 -0000 1.181 @@ -192,8 +192,9 @@ "*BACKEND-SUBFEATURES*" "*BACKEND-T-PRIMITIVE-TYPE*" - "*CODE-SEGMENT*" + "*CODE-SEGMENT*" "*COUNT-VOP-USAGES*" "*ELSEWHERE*" "*FREE-FUNS*" + "*LEXENV*" "*SETF-ASSUMED-FBOUNDP*" "*SUPPRESS-VALUES-DECLARATION*" @@ -209,12 +210,13 @@ "CHECK-FIXNUM" "CHECK-FUN" "CHECK-SIGNED-BYTE-32" "CHECK-SYMBOL" "CHECK-UNSIGNED-BYTE-32" "CLOSURE-INIT" "CLOSURE-REF" - "CODE-CONSTANT-REF" "CODE-CONSTANT-SET" + "CODE-CONSTANT-REF" "CODE-CONSTANT-SET" + "COMPILE-IN-LEXENV" "COMPILE-LAMBDA-FOR-DEFUN" "%COMPILER-DEFUN" "COMPILER-ERROR" "COMPONENT" "COMPONENT-HEADER-LENGTH" "COMPONENT-INFO" "COMPONENT-LIVE-TN" "COMPUTE-FUN" - "COMPUTE-OLD-NFP" "COPY-MORE-ARG" + "COMPUTE-OLD-NFP" "COPY-MORE-ARG" "CURRENT-BINDING-POINTER" "CURRENT-NFP-TN" "CURRENT-STACK-POINTER" "DEALLOC-ALIEN-STACK-SPACE" "DEALLOC-NUMBER-STACK-SPACE" "DEF-BOOLEAN-ATTRIBUTE" @@ -238,7 +240,8 @@ "IR2-PHYSENV-NUMBER-STACK-P" "KNOWN-CALL-LOCAL" "KNOWN-RETURN" "LAMBDA-INDEPENDENT-OF-LEXENV-P" - "LAMBDA-WITH-LEXENV" "LOCATION=" "LTN-ANNOTATE" + "LAMBDA-WITH-LEXENV" "LEXENV-FIND" + "LOCATION=" "LTN-ANNOTATE" "MAKE-ALIAS-TN" "MAKE-CATCH-BLOCK" "MAKE-CLOSURE" "MAKE-CONSTANT-TN" "MAKE-FIXNUM" "MAKE-LOAD-TIME-CONSTANT-TN" "MAKE-N-TNS" "MAKE-NORMAL-TN" @@ -574,7 +577,7 @@ ;; weak pointers and finalization "CANCEL-FINALIZATION" - "FINALIZE" + "FINALIZE" "HASH-TABLE-WEAK-P" "MAKE-WEAK-POINTER" "WEAK-POINTER" "WEAK-POINTER-P" "WEAK-POINTER-VALUE" @@ -678,7 +681,7 @@ ;; hash mixing operations "MIX" "MIXF" - + ;; I'm not convinced that FDEFINITIONs are the ideal ;; solution, so exposing ways to peek into the system ;; seems undesirable, since it makes it harder to get @@ -699,7 +702,7 @@ ;; stuff for hinting to the compiler "NAMED-LAMBDA" - + ;; other variations on DEFFOO stuff useful for bootstrapping ;; and cross-compiling "DEFMACRO-MUNDANELY" @@ -714,7 +717,7 @@ "FASTBIG-INCF-PCOUNTER-OR-FIXNUM" "INCF-PCOUNTER" "INCF-PCOUNTER-OR-FIXNUM" - "MAKE-PCOUNTER" + "MAKE-PCOUNTER" "PCOUNTER" "PCOUNTER->INTEGER" "PCOUNTER-OR-FIXNUM->INTEGER" @@ -724,7 +727,7 @@ ;; miscellaneous non-standard but handy user-level functions.. "ASSQ" "DELQ" "MEMQ" "POSQ" "NEQ" "%FIND-PACKAGE-OR-LOSE" "FIND-UNDELETED-PACKAGE-OR-LOSE" - "SANE-PACKAGE" + "SANE-PACKAGE" "CYCLIC-LIST-P" "COMPOUND-OBJECT-P" "SWAPPED-ARGS-FUN" @@ -748,7 +751,7 @@ ;; ..and CONDITIONs.. "BUG" "UNSUPPORTED-OPERATOR" - + ;; ..and DEFTYPEs.. "INDEX" "LOAD/STORE-INDEX" "SIGNED-BYTE-WITH-A-BITE-OUT" @@ -762,7 +765,7 @@ "SINGLE-FLOATP" "FIXNUMP" "BIGNUMP" - "RATIOP" + "RATIOP" ;; encapsulation "ARG-LIST" @@ -818,7 +821,7 @@ ;; cross-compilation bootstrap hacks which turn into ;; placeholders in a target system - "UNCROSS" + "UNCROSS" ;; might as well be shared among the various files which ;; need it: @@ -849,7 +852,8 @@ "SYMBOL-SELF-EVALUATING-P" "PRINT-PRETTY-ON-STREAM-P" "LOOKS-LIKE-NAME-OF-SPECIAL-VAR-P" - "POSITIVE-PRIMEP" + "POSITIVE-PRIMEP" + "EVAL-IN-LEXENV" ;; These could be moved back into SB!EXT if someone has ;; compelling reasons, but hopefully we can get by @@ -884,7 +888,7 @@ ;; hackery to help set up for cold init "!BEGIN-COLLECTING-COLD-INIT-FORMS" - "!COLD-INIT-FORMS" + "!COLD-INIT-FORMS" "COLD-FSET" "!DEFUN-FROM-COLLECTED-COLD-INIT-FORMS")) @@ -1306,7 +1310,7 @@ "SHOW-CONDITION" "CASE-FAILURE" "NAMESTRING-PARSE-ERROR" "NAMESTRING-PARSE-ERROR-OFFSET" "DESCRIBE-CONDITION" - + "!COLD-INIT" "!UNINTERN-INIT-ONLY-STUFF" "!GLOBALDB-COLD-INIT" "!FDEFN-COLD-INIT" "!TYPE-CLASS-COLD-INIT" "!TYPEDEFS-COLD-INIT" Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.574 retrieving revision 1.575 diff -u -d -r1.574 -r1.575 --- version.lisp-expr 9 Oct 2002 17:03:32 -0000 1.574 +++ version.lisp-expr 10 Oct 2002 07:16:14 -0000 1.575 @@ -18,4 +18,4 @@ ;;; internal versions off the main CVS branch, it gets hairier, e.g. ;;; "0.pre7.14.flaky4.13".) -"0.7.8.22" +"0.7.8.23" |