X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Flate-macros.lisp;h=dfd305c52ae709e8ccfb6e9dcac6af517f2614e9;hb=4cf50b1896b25f5337e7c258b0b560da00d47993;hp=9d617f2814847486746ea8aaabfbd6090a980ec5;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/compiler/late-macros.lisp b/src/compiler/late-macros.lisp index 9d617f2..dfd305c 100644 --- a/src/compiler/late-macros.lisp +++ b/src/compiler/late-macros.lisp @@ -33,7 +33,7 @@ NAME-attributes attribute-name* Return a set of the named attributes." - (let ((const-name (symbolicate name "-ATTRIBUTE-TRANSLATIONS")) + (let ((translations-name (symbolicate "*" name "-ATTRIBUTE-TRANSLATIONS*")) (test-name (symbolicate name "-ATTRIBUTEP"))) (collect ((alist)) (do ((mask 1 (ash mask 1)) @@ -42,13 +42,15 @@ (alist (cons (car names) mask))) `(progn + (eval-when (:compile-toplevel :load-toplevel :execute) - (defconstant ,const-name ',(alist))) + (defparameter ,translations-name ',(alist))) (defmacro ,test-name (attributes &rest attribute-names) "Automagically generated boolean attribute test function. See Def-Boolean-Attribute." - `(logtest ,(compute-attribute-mask attribute-names ,const-name) + `(logtest ,(compute-attribute-mask attribute-names + ,translations-name) (the attributes ,attributes))) (define-setf-expander ,test-name (place &rest attributes @@ -60,14 +62,14 @@ env (compute-attribute-mask attributes - ,const-name + ,translations-name ) ',test-name)) (defmacro ,(symbolicate name "-ATTRIBUTES") (&rest attribute-names) "Automagically generated boolean attribute creation function. See Def-Boolean-Attribute." - (compute-attribute-mask attribute-names ,const-name)))))) + (compute-attribute-mask attribute-names ,translations-name)))))) ;;; a helper function for the cross-compilation target Lisp code which ;;; DEF-BOOLEAN-ATTRIBUTE expands into