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.
14 (;; Define the STRUCTURE-OBJECT class as a subclass of
15 ;; INSTANCE. This has to be handled early because the design of the
16 ;; DEFSTRUCT system, dating back to pre-1999 CMU CL, requires that
17 ;; STRUCTURE-OBJECT be the first DEFSTRUCT executed.
18 ((structure-object (:alternate-metaclass sb!kernel:instance)
20 ;; (There are no slots.)
23 ;; The target ALIEN-VALUE class must be defined early in the cross-compiler
24 ;; build sequence in order to set up superclass relationships involving it.
26 ;; FIXME: Since this definition refers to SB!ALIEN:ALIEN-TYPE, which is also
27 ;; defined as a structure, perhaps it might be reasonable to add an entry,
28 ;; somewhere before this definition, to define SB!ALIEN:ALIEN-TYPE? That
29 ;; way, any tests for SB!ALIEN:ALIEN-TYPE in the slot accessor functions
30 ;; could be implemented more efficiently.
31 ((sb!alien-internals:alien-value)
32 (sap (required-argument) :type sb!sys:system-area-pointer)
33 (type (required-argument) :type sb!alien::alien-type)))