;;;; files for more information.
(in-package "SB!ALIEN")
-
-(file-comment
- "$Header$")
\f
;;;; utility functions
(setf (gethash name *alien-type-classes*)
(make-alien-type-class :name name :include include)))))
-(defconstant method-slot-alist
+(defparameter *method-slot-alist*
'((:unparse . alien-type-class-unparse)
(:type= . alien-type-class-type=)
(:subtypep . alien-type-class-subtypep)
(:result-tn . alien-type-class-result-tn)))
(defun method-slot (method)
- (cdr (or (assoc method method-slot-alist)
+ (cdr (or (assoc method *method-slot-alist*)
(error "no method ~S" method))))
) ; EVAL-WHEN
-;;; We define a keyword "BOA" constructor so that we can reference the slot
-;;; names in init forms.
+;;; We define a keyword "BOA" constructor so that we can reference the
+;;; slot names in init forms.
(def!macro def-alien-type-class ((name &key include include-args) &rest slots)
(let ((defstruct-name
(intern (concatenate 'string "ALIEN-" (symbol-name name) "-TYPE"))))
kind ; Kind of from mapping, :vector or :alist.
offset) ; Offset to add to value for :vector from mapping.
-(def-alien-type-translator enum (&whole type
- name
+(def-alien-type-translator enum (&whole
+ type name
&rest mappings
&environment env)
(cond (mappings
`(sap-ref-double ,sap (/ ,offset sb!vm:byte-bits)))
#!+long-float
-(def-alien-type-class (long-float :include (float (:bits #!+x86 96 #!+sparc 128))
+(def-alien-type-class (long-float :include (float (:bits #!+x86 96
+ #!+sparc 128))
:include-args (type)))
#!+long-float