From 144cfdaeddd4ef23185b29220cf58df554d5d53d Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Thu, 30 Apr 2015 18:43:13 +0100 Subject: [PATCH] one more genesis leak I think this relates to lambdas created at genesis time. They get given names, but none of the usual sources for names is present, so it falls back to the host's *load-truename*, which is unhelpful because the only binding of *load-truename* is for the whole build script itself, src/cold/compile-cold-sbcl.lisp. This patch doesn't fix that but does make the value given independent of build directory --- src/compiler/ir1-translators.lisp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/compiler/ir1-translators.lisp b/src/compiler/ir1-translators.lisp index 9472f25ad..57f4bd391 100644 --- a/src/compiler/ir1-translators.lisp +++ b/src/compiler/ir1-translators.lisp @@ -495,6 +495,18 @@ Return VALUE without evaluating it." (neq :catch (cleanup-kind (entry-cleanup (pop b))))))) (lexenv-blocks *lexenv*) :from-end t)) *source-namestring* + #+sb-xc-host + (progn + (aver (not *compile-file-truename*)) + (aver (string= (pathname-name *load-truename*) "compile-cold-sbcl")) + ;; FIXME: the fact that this is what it is is probably + ;; more a reflection of a bug in genesis (not binding + ;; *LOAD-TRUENAME* to something sensible) rather than + ;; something useful (lambdas created at genesis time + ;; being given names referring to + ;; compile-cold-sbcl.lisp) + "SYS:SRC;COLD;COMPILE-COLD-SBCL.LISP") + #-sb-xc-host (let ((p (or *compile-file-truename* *load-truename*))) (when p (namestring p)))))) (when context -- 2.11.4.GIT