Changeset 9441


Ignore:
Timestamp:
May 9, 2008, 10:26:20 AM (11 years ago)
Author:
gb
Message:

Extend wrapper to include class-ordinal, cpl-bits slots.

Add TYPE-CELL, PACKAGE-REF.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711-perf/ccl/library/lispequ.lisp

    r8554 r9441  
    933933  %wrapper-set-slot-id-value            ; "fast" (SETF SLOT-VALUE) function
    934934  %wrapper-cpl                          ; cached cpl of %wrapper-class or NIL
     935  %wrapper-class-ordinal                ; cached copy of class-ordinal
     936  %wrapper-cpl-bits                     ; bitvector representation of cpl
    935937)
    936938
     
    959961(defmacro %cons-wrapper (class &optional
    960962                               (hash-index '(new-class-wrapper-hash-index)))
    961   `(%istruct 'class-wrapper ,hash-index ,class nil nil #'slot-id-lookup-no-slots nil nil #'%slot-id-ref-missing #'%slot-id-set-missing nil))
     963  (let* ((c (gensym)))
     964  `(let* ((,c ,class))
     965    (%istruct 'class-wrapper ,hash-index ,c nil nil #'slot-id-lookup-no-slots nil nil #'%slot-id-ref-missing #'%slot-id-set-missing nil (%class-ordinal ,c t) nil))))
    962966
    963967
     
    13181322(defmacro make-class-cell (name) `(%istruct 'class-cell ,name nil '%make-instance nil))
    13191323
     1324;;; Map between TYPE-SPECIFIERS and CTYPEs
     1325(def-accessors (type-cell) %svref
     1326  nil
     1327  type-cell-type-specifier
     1328  type-cell-ctype)
     1329
     1330(defmacro make-type-cell (specifier) `(%istruct 'type-cell ,specifier nil))
     1331
     1332;;; Map between package names and packages, sometimes.
     1333(def-accessors (package-ref) %svref
     1334  nil
     1335  package-ref.name                      ; a string
     1336  package-ref.pkg                       ; a package or NIL
     1337  )
     1338
     1339(defmacro make-package-ref (name) `(%istruct 'package-ref (string ,name) nil))
     1340
     1341
    13201342
    13211343(provide "LISPEQU")
Note: See TracChangeset for help on using the changeset viewer.