X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fearly-low.lisp;h=cfad90f782a44990aa9c4ad9dcb2eb7d759081db;hb=cd99f20d910298cbf5c2000e3dc3595fb0c8418b;hp=abca53479d4a7b66fea887003eb4cb77ab3d4384;hpb=95345bb533def44122ad6a1f61f06c3a0be3e9e3;p=sbcl.git diff --git a/src/pcl/early-low.lisp b/src/pcl/early-low.lisp index abca534..cfad90f 100644 --- a/src/pcl/early-low.lisp +++ b/src/pcl/early-low.lisp @@ -60,8 +60,64 @@ (classoid-layout classoid)) 'defstruct-description))))) +;;; Symbol contruction utilities +(defun format-symbol (package format-string &rest format-arguments) + (without-package-locks + (intern (apply #'format nil format-string format-arguments) package))) + +(defun make-class-symbol (class-name) + (format-symbol *pcl-package* "*THE-CLASS-~A*" (symbol-name class-name))) + +(defun make-wrapper-symbol (class-name) + (format-symbol *pcl-package* "*THE-WRAPPER-~A*" (symbol-name class-name))) + (defun condition-type-p (type) (and (symbolp type) (condition-classoid-p (find-classoid type nil)))) +(declaim (special *the-class-t* + *the-class-vector* *the-class-symbol* + *the-class-string* *the-class-sequence* + *the-class-rational* *the-class-ratio* + *the-class-number* *the-class-null* *the-class-list* + *the-class-integer* *the-class-float* *the-class-cons* + *the-class-complex* *the-class-character* + *the-class-bit-vector* *the-class-array* + *the-class-stream* + + *the-class-slot-object* + *the-class-structure-object* + *the-class-std-object* + *the-class-standard-object* + *the-class-funcallable-standard-object* + *the-class-class* + *the-class-generic-function* + *the-class-built-in-class* + *the-class-slot-class* + *the-class-condition-class* + *the-class-structure-class* + *the-class-std-class* + *the-class-standard-class* + *the-class-funcallable-standard-class* + *the-class-method* + *the-class-standard-method* + *the-class-standard-reader-method* + *the-class-standard-writer-method* + *the-class-standard-boundp-method* + *the-class-standard-generic-function* + *the-class-standard-effective-slot-definition* + + *the-eslotd-standard-class-slots* + *the-eslotd-funcallable-standard-class-slots*)) + +(declaim (special *the-wrapper-of-t* + *the-wrapper-of-vector* *the-wrapper-of-symbol* + *the-wrapper-of-string* *the-wrapper-of-sequence* + *the-wrapper-of-rational* *the-wrapper-of-ratio* + *the-wrapper-of-number* *the-wrapper-of-null* + *the-wrapper-of-list* *the-wrapper-of-integer* + *the-wrapper-of-float* *the-wrapper-of-cons* + *the-wrapper-of-complex* *the-wrapper-of-character* + *the-wrapper-of-bit-vector* *the-wrapper-of-array*)) + (/show "finished with early-low.lisp")