:name "SB!ALIEN-INTERNALS"
:doc "private: stuff for implementing ALIENs and friends"
:use ("CL")
- :export ("%CAST"
+ :export ("%ALIEN-VALUE"
+ "%CAST"
"%DEREF-ADDR" "%HEAP-ALIEN" "%HEAP-ALIEN-ADDR"
"%LOCAL-ALIEN-ADDR" "%LOCAL-ALIEN-FORCED-TO-MEMORY-P" "%SAP-ALIEN"
"%SET-DEREF" "%SET-HEAP-ALIEN" "%SET-LOCAL-ALIEN" "%SET-SLOT"
"ALIEN-SINGLE-FLOAT-TYPE-P" "ALIEN-SUBTYPE-P" "ALIEN-TYPE"
"ALIEN-TYPE-=" "ALIEN-TYPE-ALIGNMENT" "ALIEN-TYPE-BITS"
"ALIEN-TYPE-P" "ALIEN-TYPEP"
- "ALIEN-VALUE" "ALIEN-VALUE-TYPE"
+ "ALIEN-VALUE"
+ "ALIEN-VALUE-TYPE"
+ "ALIEN-VALUE-TYPEP"
"ALIEN-VALUE-SAP" "ALIEN-VALUE-P"
"ALIEN-VALUES-TYPE" "ALIEN-VALUES-TYPE-P"
"ALIEN-VALUES-TYPE-VALUES" "ALIGN-OFFSET" "ALIEN-VOID-TYPE-P"
"COMPUTE-NATURALIZE-LAMBDA" "DEFINE-ALIEN-TYPE-CLASS"
"DEFINE-ALIEN-TYPE-METHOD" "DEFINE-ALIEN-TYPE-TRANSLATOR"
"DEPORT" "DEPORT-ALLOC"
- "DEPOSIT-ALIEN-VALUE" "DISPOSE-LOCAL-ALIEN"
+ "DISPOSE-LOCAL-ALIEN"
"*ENTER-ALIEN-CALLBACK*" "ENTER-ALIEN-CALLBACK"
- "EXTRACT-ALIEN-VALUE"
"HEAP-ALIEN-INFO" "HEAP-ALIEN-INFO-P" "HEAP-ALIEN-INFO-SAP-FORM"
"HEAP-ALIEN-INFO-TYPE" "INVOKE-ALIEN-TYPE-METHOD" "LOCAL-ALIEN"
"LOCAL-ALIEN-INFO" "LOCAL-ALIEN-INFO-FORCE-TO-MEMORY-P"
"FLOAT-BIGNUM-RATIO" "MAKE-SMALL-BIGNUM"
"MULTIPLY-BIGNUM-AND-FIXNUM" "MULTIPLY-BIGNUMS"
"MULTIPLY-FIXNUMS" "NEGATE-BIGNUM"
- "SUBTRACT-BIGNUM" "SXHASH-BIGNUM"))
+ "%RANDOM-BIGNUM" "SUBTRACT-BIGNUM" "SXHASH-BIGNUM"))
#s(sb-cold:package-data
:name "SB!C"
"HALT"
"IF-EQ"
"IMMEDIATE-TN-P"
+ "INHIBIT-SAFEPOINTS"
"INLINE-SYNTACTIC-CLOSURE-LAMBDA"
"INSERT-STEP-CONDITIONS"
"IR2-COMPONENT-CONSTANTS" "IR2-CONVERT"
"LARGE-ALLOC"
"%SET-SIMPLE-FUN-SELF"
"VM-SUPPORT-ROUTINES-IMMEDIATE-CONSTANT-SC"
+ "VM-SUPPORT-ROUTINES-BOXED-IMMEDIATE-SC-P"
"VM-SUPPORT-ROUTINES-LOCATION-PRINT-NAME"
"VM-SUPPORT-ROUTINES-PRIMITIVE-TYPE-OF"
"VM-SUPPORT-ROUTINES-PRIMITIVE-TYPE"
"FRAME" "FRAME-CATCHES" "FRAME-CODE-LOCATION"
"FRAME-DEBUG-FUN" "FRAME-DOWN"
"FRAME-FUN-MISMATCH" "FRAME-NUMBER" "FRAME-P" "FRAME-UP"
+ "GET-TOPLEVEL-FORM"
"REPLACE-FRAME-CATCH-TAG"
"FUN-DEBUG-FUN" "FUN-END-COOKIE-VALID-P"
"INVALID-CONTROL-STACK-POINTER" "INVALID-VALUE"
"*USERINIT-PATHNAME-FUNCTION*"
"*SYSINIT-PATHNAME-FUNCTION*"
- ;; Atomic operations and types related to them
+ ;; Compare and Swap support
+ "CAS"
"COMPARE-AND-SWAP"
+ "DEFCAS"
+ "DEFINE-CAS-EXPANDER"
+ "GET-CAS-EXPANSION"
+
+ ;; Other atomic operations and types related to them
"ATOMIC-INCF"
"ATOMIC-DECF"
+ "ATOMIC-UPDATE"
+ "ATOMIC-PUSH"
+ "ATOMIC-POP"
"WORD"
"MOST-POSITIVE-WORD"
"GC" "GET-BYTES-CONSED"
"*GC-RUN-TIME*"
"PURIFY"
+ "DYNAMIC-SPACE-SIZE"
;; Gencgc only, but symbols exist for manual building
;; convenience on all platforms.
"GENERATION-AVERAGE-AGE"
;; Hooks into init & save sequences
"*INIT-HOOKS*" "*SAVE-HOOKS*" "*EXIT-HOOKS*"
+ ;; Controlling exiting other threads.
+ "*EXIT-TIMEOUT*"
+
;; There is no one right way to report progress on
;; hairy compiles.
"*COMPILE-PROGRESS*"
;; and one for controlling same at runtime
"*MUFFLED-WARNINGS*"
+ ;; specification which print errors to ignore ala *break-on-signal*
+ "*SUPPRESS-PRINT-ERRORS*"
+
;; extended declarations..
"ALWAYS-BOUND" "FREEZE-TYPE" "GLOBAL" "INHIBIT-WARNINGS"
"MAYBE-INLINE"
"*INVOKE-DEBUGGER-HOOK*"
;; miscellaneous useful supported extensions
- "QUIT"
+ "QUIT" "EXIT"
"*ED-FUNCTIONS*"
"*MODULE-PROVIDER-FUNCTIONS*"
"WITH-TIMEOUT" "TIMEOUT"
"TYPEXPAND-1" "TYPEXPAND" "TYPEXPAND-ALL"
"DEFINED-TYPE-NAME-P" "VALID-TYPE-SPECIFIER-P"
"DELETE-DIRECTORY"
+ "SET-SBCL-SOURCE-LOCATION"
+ "*DISASSEMBLE-ANNOTATE*"
;; stepping interface
"STEP-CONDITION" "STEP-FORM-CONDITION" "STEP-FINISHED-CONDITION"
"BAD-TYPE"
"CLOSED-STREAM-ERROR"
"COMPILED-PROGRAM-ERROR"
+ "COMPILER-MACRO-KEYWORD-PROBLEM"
"ENCAPSULATED-CONDITION"
"INTERPRETED-PROGRAM-ERROR"
"INVALID-ARRAY-ERROR"
"READ-EVALUATED-FORM"
"MAKE-UNPRINTABLE-OBJECT"
"POWER-OF-TWO-CEILING"
+ "PRINT-NOT-READABLE-ERROR"
;; ..and macros..
"COLLECT"
"!DEF-BOOLEAN-ATTRIBUTE"
"WITH-REBOUND-IO-SYNTAX"
"WITH-SANE-IO-SYNTAX"
+ "WITH-PROGRESSIVE-TIMEOUT"
;; ..and CONDITIONs..
"BUG"
"RETURN-CHAR-CODE" "RUBOUT-CHAR-CODE" "TAB-CHAR-CODE"
;; symbol-hacking idioms
- "KEYWORDICATE" "SYMBOLICATE"
+ "GENSYMIFY" "KEYWORDICATE" "SYMBOLICATE"
;; certainly doesn't belong in public extensions
;; FIXME: maybe belongs in %KERNEL with other typesystem stuff?
"+EMPTY-HT-SLOT+"
;; low-level i/o stuff
- "DONE-WITH-FAST-READ-BYTE"
"DONE-WITH-FAST-READ-CHAR"
"FAST-READ-BYTE"
"FAST-READ-BYTE-REFILL"
"FAST-READ-VAR-U-INTEGER"
"FILE-NAME"
"INTERN*"
- "PREPARE-FOR-FAST-READ-BYTE"
+ "WITH-FAST-READ-BYTE"
"PREPARE-FOR-FAST-READ-CHAR"
;; reflection of our backquote implementation that the
"%CONCATENATE-TO-STRING"
"%COS" "%COS-QUICK"
"%COSH" "%DATA-VECTOR-AND-INDEX" "%DEPOSIT-FIELD"
- "%DOUBLE-FLOAT" "%DPB" "%EQL" "%EXP" "%EXPM1"
+ "%DOUBLE-FLOAT" "%DPB" "%EQL"
+ "%EXIT"
+ "%EXP" "%EXPM1"
"%FLOOR"
"%FIND-POSITION"
"%FIND-POSITION-VECTOR-MACRO" "%FIND-POSITION-IF"
"%SET-VECTOR-RAW-BITS"
"%SET-SAP-REF-16" "%SET-SAP-REF-32" "%SET-SAP-REF-64"
"%SET-SAP-REF-WORD" "%SET-SAP-REF-8" "%SET-SAP-REF-DOUBLE"
- "%SET-SAP-REF-LONG" "%SET-SAP-REF-SAP"
+ "%SET-SAP-REF-LISPOBJ" "%SET-SAP-REF-LONG" "%SET-SAP-REF-SAP"
"%SET-SAP-REF-SINGLE" "%SET-SIGNED-SAP-REF-16"
"%SET-SIGNED-SAP-REF-32" "%SET-SIGNED-SAP-REF-64"
"%SET-SIGNED-SAP-REF-WORD"
"SPECIALIZABLE" "SPECIALIZABLE-VECTOR" "SPECIFIER-TYPE"
"STACK-REF" "STREAM-DESIGNATOR" "STRING-DESIGNATOR"
"STRING-FILL*"
- "STRING-SUBSEQ*"
"STRUCTURE-RAW-SLOT-TYPE-AND-SIZE" "SUB-GC"
"SYMBOLS-DESIGNATOR"
"%INSTANCE-LENGTH"
"UB64-BASH-COPY" "SYSTEM-AREA-UB64-COPY"
"COPY-UB64-TO-SYSTEM-AREA" "COPY-UB64-FROM-SYSTEM-AREA"
+ ;; Bit bashing position for bit-vectors
+ "%BIT-POSITION"
+ "%BIT-POSITION/0"
+ "%BIT-POSITION/1"
+
;; SIMPLE-FUN type and accessors
"SIMPLE-FUN"
"SIMPLE-FUN-P"
"%COERCE-CALLABLE-TO-FUN" "FUN-SUBTYPE"
"*MAXIMUM-ERROR-DEPTH*" "%SET-SYMBOL-PLIST"
"INFINITE-ERROR-PROTECT"
+ "FIND-CALLER-OF-NAMED-FRAME"
"FIND-CALLER-NAME-AND-FRAME"
"FIND-INTERRUPTED-NAME-AND-FRAME"
"%SET-SYMBOL-VALUE" "%SET-SYMBOL-GLOBAL-VALUE" "%SET-SYMBOL-PACKAGE"
#!+long-float "%RANDOM-LONG-FLOAT"
"%RANDOM-SINGLE-FLOAT" "STATIC-CLASSOID"
"%FUNCALLABLE-INSTANCE-INFO" "RANDOM-CHUNK" "BIG-RANDOM-CHUNK"
+ "N-RANDOM-CHUNK-BITS"
"LAYOUT-CLOS-HASH-LIMIT"
"BUILT-IN-CLASSOID-DIRECT-SUPERCLASSES"
"BUILT-IN-CLASSOID-TRANSLATION" "RANDOM-LAYOUT-CLOS-HASH"
"%SET-FUNCALLABLE-INSTANCE-LAYOUT"
"BASIC-STRUCTURE-CLASSOID"
"REGISTER-LAYOUT"
- "FUNCALLABLE-INSTANCE" "RANDOM-FIXNUM-MAX"
+ "FUNCALLABLE-INSTANCE"
"MAKE-STATIC-CLASSOID"
"%MAKE-SYMBOL"
"%FUNCALLABLE-INSTANCE-FUNCTION" "SYMBOL-HASH"
"INTERRUPT-THREAD"
"INTERRUPT-THREAD-ERROR"
"INTERRUPT-THREAD-ERROR-THREAD"
+ "RETURN-FROM-THREAD"
+ "ABORT-THREAD"
+ "MAIN-THREAD-P"
+ "MAIN-THREAD"
"JOIN-THREAD"
"JOIN-THREAD-ERROR"
"JOIN-THREAD-ERROR-THREAD"
"SEMAPHORE-COUNT"
"SIGNAL-SEMAPHORE"
"TRY-SEMAPHORE"
- "WAIT-ON-SEMAPHORE"))
+ "WAIT-ON-SEMAPHORE"
+ ;; Semaphore notification objects
+ "CLEAR-SEMAPHORE-NOTIFICATION"
+ "MAKE-SEMAPHORE-NOTIFICATION"
+ "SEMAPHORE-NOTIFICATION"
+ "SEMAPHORE-NOTIFICATION-STATUS"))
#s(sb-cold:package-data
:name "SB!LOOP"
;; SB!KERNEL.)
"%PRIMITIVE"
"%STANDARD-CHAR-P"
+ "*EXIT-ERROR-HANDLER*"
+ "*EXIT-IN-PROCESS*"
"*ALLOW-WITH-INTERRUPTS*"
"*INTERRUPTS-ENABLED*"
"*INTERRUPT-PENDING*"
+ #!+sb-thruption "*THRUPTION-PENDING*"
"*LINKAGE-INFO*"
"*LONG-SITE-NAME*" "*SHORT-SITE-NAME*"
"*PERIODIC-POLLING-FUNCTION*"
"ENABLE-INTERRUPT"
"ENSURE-DYNAMIC-FOREIGN-SYMBOL-ADDRESS"
"EXTERN-ALIEN-NAME"
+ "EXIT-CODE"
"FD-STREAM" "FD-STREAM-FD" "FD-STREAM-P"
"FIND-DYNAMIC-FOREIGN-SYMBOL-ADDRESS"
"FIND-FOREIGN-SYMBOL-ADDRESS"
"MACRO" "MAKE-FD-STREAM"
"MEMORY-FAULT-ERROR"
"MEMMOVE"
+ "OS-EXIT"
"OS-COLD-INIT-OR-REINIT" "OS-CONTEXT-T" "OUTPUT-RAW-BYTES"
"READ-N-BYTES"
"REMOVE-FD-HANDLER"
"SAP-INT"
"SAP-REF-16" "SAP-REF-32" "SAP-REF-64" "SAP-REF-WORD"
"SAP-REF-8"
- "SAP-REF-DOUBLE" "SAP-REF-LONG"
+ "SAP-REF-DOUBLE" "SAP-REF-LISPOBJ" "SAP-REF-LONG"
+ "SAP-REF-OCTETS"
"SAP-REF-SAP" "SAP-REF-SINGLE"
"SAP<" "SAP<=" "SAP=" "SAP>" "SAP>="
"SCRUB-CONTROL-STACK" "SERVE-ALL-EVENTS"
"TIOCGPGRP" "TIOCGWINSZ" "TIOCNOTTY" "TIOCSETC" "TIOCSETP"
"TIOCSLTC" "TIOCSPGRP" "TIOCSWINSZ" "TV-SEC" "TV-USEC"
"TZ-DSTTIME" "TZ-MINUTESWEST" "UID-T" "UNIX-CLOSE"
- "UNIX-CLOSEDIR" "UNIX-DIRENT-NAME" "UNIX-DUP""UNIX-EXIT"
+ "UNIX-CLOSEDIR" "UNIX-DIRENT-NAME" "UNIX-DUP"
"UNIX-FILE-MODE" "UNIX-FSTAT"
"UNIX-GETHOSTNAME" "UNIX-GETPID" "UNIX-GETRUSAGE"
- "UNIX-GETTIMEOFDAY" "UNIX-GETUID" "UNIX-GID" "UNIX-IOCTL"
+ "UNIX-GETTIMEOFDAY" "UNIX-GETUID" "UNIX-GID"
+ "UNIX-EXIT"
+ "UNIX-IOCTL"
"UNIX-ISATTY" "UNIX-LSEEK" "UNIX-LSTAT" "UNIX-MKDIR"
"UNIX-OPEN" "UNIX-OPENDIR" "UNIX-PATHNAME" "UNIX-PID"
"UNIX-PIPE" "UNIX-SIMPLE-POLL" "UNIX-READ" "UNIX-READDIR" "UNIX-READLINK" "UNIX-REALPATH"
"CONTEXT-FLOATING-POINT-MODES" "CONTEXT-FLOAT-REGISTER"
"CONTEXT-PC" "CONTEXT-REGISTER"
"CONTROL-STACK-SC-NUMBER" "COUNT-NO-OPS"
+ #!+sb-safepoint "CSP-SAFEPOINT-TRAP"
"*CURRENT-CATCH-BLOCK*"
"CURRENT-FLOAT-TRAP" "DEFINE-FOR-EACH-PRIMITIVE-OBJECT"
"DESCRIPTOR-REG-SC-NUMBER" "DESCRIPTOR-VS-NON-DESCRIPTOR-STORAGE"
"DOUBLE-FLOAT-WIDETAG" "DOUBLE-FLOAT-VALUE-SLOT"
"DOUBLE-INT-CARG-REG-SC-NUMBER" "DOUBLE-REG-SC-NUMBER"
"DOUBLE-STACK-SC-NUMBER"
- "ERROR-TRAP" "EVEN-FIXNUM-LOWTAG"
+ "EMIT-LONG-NOP" "ERROR-TRAP" "EVEN-FIXNUM-LOWTAG"
"EXPORTED-STATIC-SYMBOLS"
"FDEFN-FUN-SLOT" "FDEFN-NAME-SLOT" "FDEFN-RAW-ADDR-SLOT"
"FDEFN-SIZE" "FDEFN-WIDETAG" "FIXNUMIZE"
"GENCGC-RELEASE-GRANULARITY"
#!+ppc "PSEUDO-ATOMIC-INTERRUPTED-FLAG"
#!+ppc "PSEUDO-ATOMIC-FLAG"
+ #!+sb-safepoint "GLOBAL-SAFEPOINT-TRAP"
"GENESIS" "HALT-TRAP" "IGNORE-ME-SC-NUMBER"
"IMMEDIATE-CHARACTER-SC-NUMBER" "IMMEDIATE-SAP-SC-NUMBER"
"IMMEDIATE-SC-NUMBER"