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