1 ;;;; descriptions of DEFSTRUCTs which are to be handled before any others
3 ;;;; This software is part of the SBCL system. See the README file for
6 ;;;; This software is derived from the CMU CL system, which was
7 ;;;; written at Carnegie Mellon University and released into the
8 ;;;; public domain. The software is in the public domain and is
9 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
10 ;;;; files for more information.
12 (;; Define the STRUCTURE-OBJECT class as a subclass of
13 ;; INSTANCE. This has to be handled early because the design of the
14 ;; DEFSTRUCT system, dating back to pre-1999 CMU CL, requires that
15 ;; STRUCTURE-OBJECT be the first DEFSTRUCT executed.
16 ((structure-object (:alternate-metaclass sb!kernel:instance)
18 ;; (There are no slots.)
21 ;; The target ALIEN-VALUE class must be defined early in the cross-compiler
22 ;; build sequence in order to set up superclass relationships involving it.
24 ;; FIXME: Since this definition refers to SB!ALIEN:ALIEN-TYPE, which is also
25 ;; defined as a structure, perhaps it might be reasonable to add an entry,
26 ;; somewhere before this definition, to define SB!ALIEN:ALIEN-TYPE? That
27 ;; way, any tests for SB!ALIEN:ALIEN-TYPE in the slot accessor functions
28 ;; could be implemented more efficiently.
29 ((sb!alien-internals:alien-value)
30 (sap (required-argument) :type sb!sys:system-area-pointer)
31 (type (required-argument) :type sb!alien::alien-type)))