X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdefstruct.lisp;h=76f3c83e49cf19f35a801174c28f037e7b494ee0;hb=bd2df60f7c3f579a9c7610925c79a0e783adaa0e;hp=ec8162fe90164452ab3354908504698c99898bb2;hpb=edcaad65452eee6bff2017941ef6c33b26a5a2b0;p=sbcl.git diff --git a/src/code/defstruct.lisp b/src/code/defstruct.lisp index ec8162f..76f3c83 100644 --- a/src/code/defstruct.lisp +++ b/src/code/defstruct.lisp @@ -341,8 +341,8 @@ (declare (notinline find-classoid)) ,@(let ((pf (dd-print-function defstruct)) (po (dd-print-object defstruct)) - (x (gensym)) - (s (gensym))) + (x (sb!xc:gensym "OBJECT")) + (s (sb!xc:gensym "STREAM"))) ;; Giving empty :PRINT-OBJECT or :PRINT-FUNCTION options ;; leaves PO or PF equal to NIL. The user-level effect is ;; to generate a PRINT-OBJECT method specialized for the type, @@ -1243,7 +1243,7 @@ ;; included in that length to guarantee proper alignment of raw double float ;; slots, necessary for (at least) the SPARC backend. (let ((layout-length (dd-layout-length dd))) - (declare (index layout-length)) + (declare (type index layout-length)) (+ layout-length (mod (1+ layout-length) 2)))) ;;; This is called when we are about to define a structure class. It @@ -1447,7 +1447,7 @@ (types) (vals)) (dolist (slot (dd-slots defstruct)) - (let ((dum (gensym)) + (let ((dum (sb!xc:gensym "DUM")) (name (dsd-name slot))) (arglist `((,(keywordicate name) ,dum) ,(dsd-default slot))) (types (dsd-type slot)) @@ -1535,12 +1535,12 @@ (when auxp (arglist '&aux) (dolist (arg aux) - (arglist arg) (if (proper-list-of-length-p arg 2) - (let ((var (first arg))) - (vars var) - (types (get-slot var))) - (skipped-vars (if (consp arg) (first arg) arg)))))) + (let ((var (first arg))) + (arglist arg) + (vars var) + (types (get-slot var))) + (skipped-vars (if (consp arg) (first arg) arg)))))) (funcall creator defstruct (first boa) (arglist) (vars) (types) @@ -1744,8 +1744,8 @@ :dd-type dd-type)) (dd-slots (dd-slots dd)) (dd-length (1+ (length slot-names))) - (object-gensym (gensym "OBJECT")) - (new-value-gensym (gensym "NEW-VALUE-")) + (object-gensym (sb!xc:gensym "OBJECT")) + (new-value-gensym (sb!xc:gensym "NEW-VALUE-")) (delayed-layout-form `(%delayed-get-compiler-layout ,class-name))) (multiple-value-bind (raw-maker-form raw-reffer-operator) (ecase dd-type