X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fprimordial-extensions.lisp;h=3a5350f50c99d3cfed22ce23986783ca5df8596a;hb=52f174450abacd81963073b71af2ce7b62908178;hp=8f9789c2d9f6b204437463eaa14ffc1da66e29cd;hpb=b71b8da241791687e7752f917ca032d937ba2bbf;p=sbcl.git diff --git a/src/code/primordial-extensions.lisp b/src/code/primordial-extensions.lisp index 8f9789c..3a5350f 100644 --- a/src/code/primordial-extensions.lisp +++ b/src/code/primordial-extensions.lisp @@ -124,16 +124,6 @@ ;;;; GENSYM tricks -;;; GENSYM variant for easier debugging and better backtraces: append -;;; the closest enclosing non-nil block name to the provided stem. -(defun block-gensym (&optional (name "G") (env (when (boundp 'sb!c::*lexenv*) - (symbol-value 'sb!c::*lexenv*)))) - (let ((block-name (when env - (car (find-if #'car (sb!c::lexenv-blocks env)))))) - (if block-name - (sb!xc:gensym (format nil "~A[~A]" name block-name)) - (sb!xc:gensym name)))) - ;;; Compile a version of BODY for all TYPES, and dispatch to the ;;; correct one based on the value of VAR. This was originally used ;;; only for strings, hence the name. Renaming it to something more @@ -164,7 +154,7 @@ (stem (if (every #'alpha-char-p symbol-name) symbol-name (concatenate 'string symbol-name "-")))) - `(,symbol (block-gensym ,stem)))) + `(,symbol (sb!xc:gensym ,stem)))) symbols) ,@body)) @@ -173,13 +163,11 @@ (declaim (ftype (function (index &optional t) (values list &optional)) make-gensym-list)) (defun make-gensym-list (n &optional name) - (case name - ((t) - (loop repeat n collect (gensym))) - ((nil) - (loop repeat n collect (block-gensym))) - (otherwise - (loop repeat n collect (gensym name))))) + (when (eq t name) + (break)) + (if name + (loop repeat n collect (sb!xc:gensym (string name))) + (loop repeat n collect (sb!xc:gensym)))) ;;;; miscellany