Changeset 5377
- Timestamp:
- Oct 18, 2006, 6:38:57 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/l1-clos-boot.lisp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-clos-boot.lisp
r5267 r5377 1140 1140 1141 1141 (defun (setf info-type-kind) (val name) 1142 (setf (gethash name *type-kind-info*) val)) 1142 (if val 1143 (setf (gethash name *type-kind-info*) val) 1144 (remhash name *type-kind-info*))) 1143 1145 1144 1146 (defun missing-type-method (&rest foo) … … 1216 1218 (let ((cell (find-class-cell name class))) 1217 1219 (when cell 1218 (setf (info-type-kind name) :instance) 1220 (if (eq name (%class.name class)) 1221 (setf (info-type-kind name) :instance)) 1219 1222 (setf (cdr (the cons cell)) class)) 1220 1223 class)) … … 1253 1256 1254 1257 (queue-fixup 1255 (without-interrupts 1256 (defun set-find-class (name class) 1257 (setq name (require-type name 'symbol)) 1258 (let ((cell (find-class-cell name class))) 1259 (declare (type list cell)) 1260 (when *warn-if-redefine-kernel* 1261 (let ((old-class (cdr cell))) 1262 (when old-class 1263 (check-setf-find-class-protected-class old-class class name)))) 1264 (when (null class) 1265 (when cell 1266 (setf (cdr cell) nil)) 1267 (return-from set-find-class nil)) 1268 (setq class (require-type class 'class)) 1269 (when (built-in-type-p name) 1270 (unless (eq (cdr cell) class) 1271 (error "Cannot redefine built-in type name ~S" name))) 1272 (when (%deftype-expander name) 1273 (cerror "set ~S anyway, removing the ~*~S definition" 1274 "Cannot set ~S because type ~S is already defined by ~S" 1275 `(find-class ',name) name 'deftype) 1276 (%deftype name nil nil)) 1277 (setf (info-type-kind name) :instance) 1278 (setf (cdr cell) class))) 1279 ) ; end of without-interrupts 1280 ) ; end of queue-fixup 1258 (defun set-find-class (name class) 1259 (setq name (require-type name 'symbol)) 1260 (let ((cell (find-class-cell name class))) 1261 (declare (type list cell)) 1262 (let ((old-class (cdr cell))) 1263 (when old-class 1264 (when (eq (%class.name old-class) name) 1265 (setf (info-type-kind name) nil) 1266 (clear-type-cache)) 1267 (when *warn-if-redefine-kernel* 1268 (check-setf-find-class-protected-class old-class class name)))) 1269 (when (null class) 1270 (when cell 1271 (setf (cdr cell) nil)) 1272 (return-from set-find-class nil)) 1273 (setq class (require-type class 'class)) 1274 (when (built-in-type-p name) 1275 (unless (eq (cdr cell) class) 1276 (error "Cannot redefine built-in type name ~S" name))) 1277 (when (eq (%class.name class) name) 1278 (when (%deftype-expander name) 1279 (cerror "set ~S anyway, removing the ~*~S definition" 1280 "Cannot set ~S because type ~S is already defined by ~S" 1281 `(find-class ',name) name 'deftype) 1282 (%deftype name nil nil)) 1283 (setf (info-type-kind name) :instance)) 1284 (setf (cdr cell) class))) 1285 ) ; end of queue-fixup 1281 1286 1282 1287 … … 1510 1515 (defglobal *function-class* (make-built-in-class 'function)) 1511 1516 1517 (defun alias-class (name class) 1518 (setf (find-class name) class 1519 (info-type-kind name) :instance) 1520 class) 1521 1512 1522 ;;;Right now, all functions are compiled. 1513 1523 1514 1524 1515 1525 (defglobal *compiled-function-class* *function-class*) 1516 ( setf (find-class 'compiled-function)*compiled-function-class*)1526 (alias-class 'compiled-function *compiled-function-class*) 1517 1527 1518 1528 (defglobal *compiled-lexical-closure-class* … … 1655 1665 (defglobal *double-float-class* (make-built-in-class 'double-float (find-class 'float))) 1656 1666 (defglobal *single-float-class* (make-built-in-class 'single-float (find-class 'float))) 1657 ( setf (find-class 'short-float)*single-float-class*)1658 ( setf (find-class 'long-float)*double-float-class*)1667 (alias-class 'short-float *single-float-class*) 1668 (alias-class 'long-float *double-float-class*) 1659 1669 1660 1670 (make-built-in-class 'rational (find-class 'real)) … … 1674 1684 (make-built-in-class 'logical-pathname (find-class 'pathname)) 1675 1685 1676 (defglobal *base-char-class* ( setf (find-class 'base-char)*character-class*))1686 (defglobal *base-char-class* (alias-class 'base-char *character-class*)) 1677 1687 (defglobal *standard-char-class* (make-built-in-class 'standard-char *base-char-class*)) 1678 1688 1679 #+who-needs-extended-char1680 (make-built-in-class 'extended-char *character-class*)1681 1682 1689 (defglobal *keyword-class* (make-built-in-class 'keyword *symbol-class*)) 1683 1690 … … 1703 1710 (make-built-in-class 'double-float-vector *vector-class*) 1704 1711 (make-built-in-class 'short-float-vector *vector-class*) 1705 ( setf (find-class 'long-float-vector)(find-class 'double-float-vector))1706 ( setf (find-class 'single-float-vector)(find-class 'short-float-vector))1712 (alias-class 'long-float-vector (find-class 'double-float-vector)) 1713 (alias-class 'single-float-vector (find-class 'short-float-vector)) 1707 1714 (make-built-in-class 'simple-double-float-vector (find-class 'double-float-vector) (find-class 'simple-1d-array)) 1708 1715 (make-built-in-class 'simple-short-float-vector (find-class 'short-float-vector) (find-class 'simple-1d-array)) 1709 ( setf (find-class 'simple-long-float-vector)(find-class 'simple-double-float-vector))1710 ( setf (find-class 'simple-single-float-vector)(find-class 'simple-short-float-vector))1716 (alias-class 'simple-long-float-vector (find-class 'simple-double-float-vector)) 1717 (alias-class 'simple-single-float-vector (find-class 'simple-short-float-vector)) 1711 1718 ) 1712 1719
Note:
See TracChangeset
for help on using the changeset viewer.
