X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fkernel.lisp;h=16546894d25365842cf76f8db6db15b92ec12579;hb=872175cd9cb5b4966a36d4bd92421cc407a0355b;hp=42fe9431ee98719b863780e7bf84ec07a3f6bf08;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/code/kernel.lisp b/src/code/kernel.lisp index 42fe943..1654689 100644 --- a/src/code/kernel.lisp +++ b/src/code/kernel.lisp @@ -11,117 +11,98 @@ (in-package "SB!KERNEL") +;;; Return the 24 bits of data in the header of object X, which must +;;; be an other-pointer object. (defun get-header-data (x) - #!+sb-doc - "Return the 24 bits of data in the header of object X, which must be an - other-pointer object." (get-header-data x)) +;;; Set the 24 bits of data in the header of object X (which must be +;;; an other-pointer object) to VAL. (defun set-header-data (x val) - #!+sb-doc - "Sets the 24 bits of data in the header of object X (which must be an - other-pointer object) to VAL." (set-header-data x val)) +;;; Return the length of the closure X. This is one more than the +;;; number of variables closed over. (defun get-closure-length (x) - #!+sb-doc - "Returns the length of the closure X. This is one more than the number - of variables closed over." (get-closure-length x)) +;;; Return the three-bit lowtag for the object X. (defun get-lowtag (x) - #!+sb-doc - "Returns the three-bit lowtag for the object X." (get-lowtag x)) +;;; Return the 8-bit header type for the object X. (defun get-type (x) - #!+sb-doc - "Returns the 8-bit header type for the object X." (get-type x)) +;;; Return a System-Area-Pointer pointing to the data for the vector +;;; X, which must be simple. +;;; +;;; FIXME: so it should be SIMPLE-VECTOR-SAP, right? (defun vector-sap (x) - #!+sb-doc - "Return a System-Area-Pointer pointing to the data for the vector X, which - must be simple." (declare (type (simple-unboxed-array (*)) x)) (vector-sap x)) +;;; Return a System-Area-Pointer pointing to the end of the binding stack. (defun sb!c::binding-stack-pointer-sap () - #!+sb-doc - "Return a System-Area-Pointer pointing to the end of the binding stack." (sb!c::binding-stack-pointer-sap)) +;;; Return a System-Area-Pointer pointing to the next free word of the +;;; current dynamic space. (defun sb!c::dynamic-space-free-pointer () - #!+sb-doc - "Returns a System-Area-Pointer pointing to the next free work of the current - dynamic space." (sb!c::dynamic-space-free-pointer)) +;;; Return a System-Area-Pointer pointing to the end of the control stack. (defun sb!c::control-stack-pointer-sap () - #!+sb-doc - "Return a System-Area-Pointer pointing to the end of the control stack." (sb!c::control-stack-pointer-sap)) +;;; Return the header typecode for FUNCTION. Can be set with SETF. (defun function-subtype (function) - #!+sb-doc - "Return the header typecode for FUNCTION. Can be set with SETF." (function-subtype function)) - (defun (setf function-subtype) (type function) (setf (function-subtype function) type)) +;;; Extract the arglist from the function header FUNC. (defun %function-arglist (func) - #!+sb-doc - "Extracts the arglist from the function header FUNC." (%function-arglist func)) +;;; Extract the name from the function header FUNC. (defun %function-name (func) - #!+sb-doc - "Extracts the name from the function header FUNC." (%function-name func)) +;;; Extract the type from the function header FUNC. (defun %function-type (func) - #!+sb-doc - "Extracts the type from the function header FUNC." (%function-type func)) +;;; Extract the function from CLOSURE. (defun %closure-function (closure) - #!+sb-doc - "Extracts the function from CLOSURE." (%closure-function closure)) +;;; Return the length of VECTOR. There is no reason to use this in +;;; ordinary code, 'cause length (the vector foo)) is the same. (defun sb!c::vector-length (vector) - #!+sb-doc - "Return the length of VECTOR. There is no reason to use this, 'cause - (length (the vector foo)) is the same." (sb!c::vector-length vector)) +;;; Extract the INDEXth slot from CLOSURE. (defun %closure-index-ref (closure index) - #!+sb-doc - "Extract the INDEXth slot from CLOSURE." (%closure-index-ref closure index)) +;;; Allocate a unboxed, simple vector with type code TYPE, length LENGTH, and +;;; WORDS words long. Note: it is your responsibility to ensure that the +;;; relation between LENGTH and WORDS is correct. (defun allocate-vector (type length words) - #!+sb-doc - "Allocate a unboxed, simple vector with type code TYPE, length LENGTH, and - WORDS words long. Note: it is your responsibility to ensure that the - relation between LENGTH and WORDS is correct." (allocate-vector type length words)) +;;; Allocate an array header with type code TYPE and rank RANK. (defun make-array-header (type rank) - #!+sb-doc - "Allocate an array header with type code TYPE and rank RANK." (make-array-header type rank)) +;;; Return a SAP pointing to the instructions part of CODE-OBJ. (defun code-instructions (code-obj) - #!+sb-doc - "Return a SAP pointing to the instructions part of CODE-OBJ." (code-instructions code-obj)) +;;; Extract the INDEXth element from the header of CODE-OBJ. Can be +;;; set with SETF. (defun code-header-ref (code-obj index) - #!+sb-doc - "Extract the INDEXth element from the header of CODE-OBJ. Can be set with - setf." (code-header-ref code-obj index)) (defun code-header-set (code-obj index new)