X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fir1report.lisp;h=a87cd22d527acf90fceea4fa36d83f48b872960c;hb=436b2ab0276f547e8537b6c1fb52b11fa1f53975;hp=72f0fa2bc474f1445840f44d56a1e9fa49d3a61c;hpb=9837343101c3da7b3a8f94609ec116ec5025436a;p=sbcl.git diff --git a/src/compiler/ir1report.lisp b/src/compiler/ir1report.lisp index 72f0fa2..a87cd22 100644 --- a/src/compiler/ir1report.lisp +++ b/src/compiler/ir1report.lisp @@ -101,6 +101,12 @@ `(lambda ,(second thing)) `(function ,thing))) +(define-source-context named-lambda (name lambda-list &body forms) + (declare (ignore lambda-list forms)) + (if (and (consp name) (eq 'eval (first name))) + (second name) + `(named-lambda ,name))) + ;;; Return the first two elements of FORM if FORM is a list. Take the ;;; CAR of the second form if appropriate. (defun source-form-context (form) @@ -182,10 +188,8 @@ (let ((context *compiler-error-context*)) (if (compiler-error-context-p context) (values context t) - (let* ((path (or (and (boundp '*current-path*) *current-path*) - (if context - (node-source-path context) - nil))) + (let* ((path (or (and (node-p context) (node-source-path context)) + (and (boundp '*current-path*) *current-path*))) (old (find (when path (source-path-original-source path)) (remove-if #'null old-contexts) @@ -298,7 +302,7 @@ (note-message-repeats stream) (setq last nil) (pprint-logical-block (stream nil :per-line-prefix "; ") - (format stream "in:~{~<~% ~4:;~{ ~S~}~>~^ =>~}" in)) + (format stream "in:~{~<~% ~4:;~{ ~:S~}~>~^ =>~}" in)) (terpri stream)) (unless (and last