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.
17 ;; (The #|DEF|# here is to help find this definition with lexical search.)
18 (#|def|# (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.
32 ;; (The #|DEF|# here is to help find this definition with lexical search.)
33 (#|def|# (sb!alien-internals:alien-value)
34 (sap (required-argument) :type sb!sys:system-area-pointer)
35 (type (required-argument) :type sb!alien::alien-type)))