X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fcross-misc.lisp;h=70d6f35816b41bfa27968fba9e31609d14d32a82;hb=408ed62925d643c163f0e9fc7b3fd41cce65fbea;hp=530782a4e9195aa31c595ec7eb03cfc31d19ba2e;hpb=26265f96389d737bf2e1e4c787ea8943ae499944;p=sbcl.git diff --git a/src/code/cross-misc.lisp b/src/code/cross-misc.lisp index 530782a..70d6f35 100644 --- a/src/code/cross-misc.lisp +++ b/src/code/cross-misc.lisp @@ -39,6 +39,18 @@ (declare (ignore table)) `(progn ,@body)) +(defmacro with-locked-system-table ((table) &body body) + (declare (ignore table)) + `(progn ,@body)) + +(defmacro defglobal (name value &rest doc) + `(eval-when (:compile-toplevel :load-toplevel :execute) + (defparameter ,name + (if (boundp ',name) + (symbol-value ',name) + ,value) + ,@doc))) + ;;; The GENESIS function works with fasl code which would, in the ;;; target SBCL, work on ANSI-STREAMs (streams which aren't extended ;;; Gray streams). In ANSI Common Lisp, an ANSI-STREAM is just a @@ -125,6 +137,15 @@ (declare (type symbol symbol)) (sxhash symbol)) +(defvar sb!xc:*gensym-counter* 0) + +(defun sb!xc:gensym (&optional (thing "G")) + (declare (type string thing)) + (let ((n sb!xc:*gensym-counter*)) + (prog1 + (make-symbol (concatenate 'string thing (write-to-string n :base 10 :radix nil :pretty nil))) + (incf sb!xc:*gensym-counter*)))) + ;;; These functions are needed for constant-folding. (defun sb!kernel:simple-array-nil-p (object) (when (typep object 'array)