From e7ae7532f1873e2aa657ac51b3aa6a428c019794 Mon Sep 17 00:00:00 2001 From: Juho Snellman Date: Mon, 17 Jul 2006 19:39:45 +0000 Subject: [PATCH] 0.9.14.22: Check whether SBCL_HOME has been set before trying to use it in sbcl-homedir-pathname, since it might not have a value when using :EXECUTABLE T cores. (Regression between 0.9.13 and 0.9.14, reported by James Knight). --- NEWS | 14 ++++++++++++++ src/code/filesys.lisp | 7 +++++-- src/code/toplevel.lisp | 5 +++-- version.lisp-expr | 2 +- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 69d797b..0735ecf 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,20 @@ changes in sbcl-0.9.15 relative to sbcl-0.9.14: * fixed bug: anonymous classes can now be created using the :NAME initarg and MAKE-INSTANCE / REINITIALIZE-INSTANCE, as specified by AMOP. (reported by Leonid Slobodov on comp.lang.lisp) + * fixed bug: core-files saved with :EXECUTABLE T can again be + executed when SBCL_HOME isn't set. (reported by James Knight) + * fixed bug: toplevel LOCALLY forms with declarations could + occasionally get miscompiled. (reported by Yaroslav Kavenchuk) + * fixed bug: printing from several different threads using different + values of *print-case* could cause invalid output, due to + some internal special variables of the printer not being bound + thread-locally (reported by Max Mikhanosha) + * minor code generation optimizations: + * better register allocation in CLOS dispatching functions + * overflow detection when coercing signed bytes to fixnums on x86-64 + is now implemented with one IMUL instruction instead of three shifts + * more efficient bit-vector access on x86 and x86-64 + * more efficient access to raw structure slots on x86 and x86-64 changes in sbcl-0.9.14 relative to sbcl-0.9.13: * feature: thread support on Solaris/x86, and experimental thread support diff --git a/src/code/filesys.lisp b/src/code/filesys.lisp index 952fdce..55ca37e 100644 --- a/src/code/filesys.lisp +++ b/src/code/filesys.lisp @@ -564,8 +564,11 @@ (concatenate 'string string "/")))) (defun sbcl-homedir-pathname () - (parse-native-namestring - (ensure-trailing-slash (posix-getenv "SBCL_HOME")))) + (let ((sbcl-home (posix-getenv "SBCL_HOME"))) + ;; SBCL_HOME isn't set for :EXECUTABLE T embedded cores + (when sbcl-home + (parse-native-namestring + (ensure-trailing-slash sbcl-home))))) ;;; (This is an ANSI Common Lisp function.) (defun user-homedir-pathname (&optional host) diff --git a/src/code/toplevel.lisp b/src/code/toplevel.lisp index f9fb1f6..f3ef3e2 100644 --- a/src/code/toplevel.lisp +++ b/src/code/toplevel.lisp @@ -484,8 +484,9 @@ steppers to maintain contextual information.") default-init-file-names)))) (let ((sysinit-truename (probe-init-files sysinit - (merge-pathnames (sbcl-homedir-pathname) - "sbclrc") + (let ((sbcl-homedir (sbcl-homedir-pathname))) + (when sbcl-homedir + (merge-pathnames sbcl-homedir "sbclrc"))) #!-win32 "/etc/sbclrc" #!+win32 diff --git a/version.lisp-expr b/version.lisp-expr index 5f90cb6..e3d7748 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".) -"0.9.14.21" +"0.9.14.22" -- 1.7.10.4