From: Nikodemus Siivola Date: Mon, 4 Feb 2008 20:49:27 +0000 (+0000) Subject: 1.0.14.17: treat (NAMED-LAMBDA NIL ...) like (LAMBDA ...) X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=3f8db67b157c100f115a56d5076c96ec35e18314;p=sbcl.git 1.0.14.17: treat (NAMED-LAMBDA NIL ...) like (LAMBDA ...) * Getting NIL as the source-name of a functional is pretty bogus, and getting it as the debug-name messes with our careful debug-name sanity checks. So don't do it then. --- diff --git a/src/compiler/ir1-translators.lisp b/src/compiler/ir1-translators.lisp index affa00f..d68a632 100644 --- a/src/compiler/ir1-translators.lisp +++ b/src/compiler/ir1-translators.lisp @@ -475,7 +475,8 @@ Return VALUE without evaluating it." (defun name-lambdalike (thing) (ecase (car thing) ((named-lambda) - (second thing)) + (or (second thing) + `(lambda ,(third thing)))) ((lambda instance-lambda) `(lambda ,(second thing))) ((lambda-with-lexenv) diff --git a/src/compiler/ir1tran-lambda.lisp b/src/compiler/ir1tran-lambda.lisp index bd8f75a..6fd0661 100644 --- a/src/compiler/ir1tran-lambda.lisp +++ b/src/compiler/ir1tran-lambda.lisp @@ -988,7 +988,7 @@ ((named-lambda) (let ((name (cadr thing)) (lambda-expression `(lambda ,@(cddr thing)))) - (if (legal-fun-name-p name) + (if (and name (legal-fun-name-p name)) (let ((defined-fun-res (get-defined-fun name)) (res (ir1-convert-lambda lambda-expression :maybe-add-debug-catch t @@ -1003,7 +1003,8 @@ res) (ir1-convert-lambda lambda-expression :maybe-add-debug-catch t - :debug-name name)))) + :debug-name + (or name (name-lambdalike thing)))))) ((lambda-with-lexenv) (ir1-convert-inline-lambda thing :source-name source-name diff --git a/version.lisp-expr b/version.lisp-expr index cc445fd..bc97d87 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.14.16" +"1.0.14.17"