From: William Harold Newman Date: Wed, 14 Aug 2002 22:54:09 +0000 (+0000) Subject: 0.7.6.24: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=c9d46bcb70ff719911bb1121493501ade1f54ca9;p=sbcl.git 0.7.6.24: fixing tonym's GRUFFALO bug (from #lisp)... ...made MAKE-INSTANCE-FUNCTION-SYMBOL use two colons whether or not the symbol is currently exported, so that EXPORTing the class name after class definition and before class use doesn't lose track of the function ...incremented fasl file format to reflect this (The whole PCL approach of encoding stuff into hairy symbol names interned in odd places is still broken, as can easily be demonstrated by renaming packages. But that's unlikely to be fixed soon, and maybe in the meantime this easy fix can help a little.) --- diff --git a/NEWS b/NEWS index a18fd98..c517832 100644 --- a/NEWS +++ b/NEWS @@ -1223,11 +1223,17 @@ changes in sbcl-0.7.7 relative to sbcl-0.7.6: to a functions expecting a PATHNAME-DESIGNATOR. * Bug fix: DEFGENERIC now enforces the ANSI restrictions on its lambda lists. (thanks to Alexey Dejneka) + * Bug fix: changed encoding of PCL's internal MAKE-INSTANCE + functions so that EXPORTing the name of the class doesn't cause + MAKE-INSTANCE functions from earlier DEFCLASSes to get lost (thanks + to Antonio Martinez) * Minor incompatible change: COMPILE-FILE-PATHNAME now merges its OUTPUT-FILE argument with its INPUT-FILE argument, resulting in behaviour analogous to RENAME-FILE. This puts its behaviour more in line with ANSI's wording on COMPILE-FILE-PATHNAME. (thanks to Marco Antinotti) + * The fasl file version number has changed again. (because of the + bug fix involving the names of PCL MAKE-INSTANCE functions) planned incompatible changes in 0.7.x: * When the profiling interface settles down, maybe in 0.7.x, maybe diff --git a/src/code/early-fasl.lisp b/src/code/early-fasl.lisp index 24d17c2..87dd4e6 100644 --- a/src/code/early-fasl.lisp +++ b/src/code/early-fasl.lisp @@ -38,11 +38,11 @@ ;;; This value should be incremented when the system changes in such a ;;; way that it will no longer work reliably with old fasl files. In -;;; practice, I (WHN) fairly often neglect to increment it for CVS +;;; practice, I (WHN) fairly often forget to increment it for CVS ;;; versions which break binary compatibility. But it certainly should ;;; be incremented for release versions which break binary ;;; compatibility. -(def!constant +fasl-file-version+ 30) +(def!constant +fasl-file-version+ 31) ;;; (record of versions before 0.7.0 deleted in 0.7.1.41) ;;; 23 = sbcl-0.7.0.1 deleted no-longer-used EVAL-STACK stuff, ;;; causing changes in *STATIC-SYMBOLS*. @@ -58,6 +58,9 @@ ;;; 30: (2002-07-26) deleted all references to %DETECT-STACK-EXHAUSTION, ;;; which was introduced in version 25, since now control stack ;;; is checked using mmap() page protection +;;; 31: (2002-08-14) changed encoding of PCL internal MAKE-INSTANCE +;;; function names so they're insensitive to whether the class name +;;; is currently external to its package ;;; the conventional file extension for our fasl files (declaim (type simple-string *fasl-file-type*)) diff --git a/src/pcl/fast-init.lisp b/src/pcl/fast-init.lisp index b435376..88219f5 100644 --- a/src/pcl/fast-init.lisp +++ b/src/pcl/fast-init.lisp @@ -64,7 +64,7 @@ ;; 1. Don't worry, I know what I'm doing. ;; 2. You and what army? ;; 3. If you were as smart as you think you are, you - ;; wouldn't be a copy. + ;; wouldn't be a cop. ;; This is case #1.:-) Even if SYM hasn't been defined yet, ;; it must be an implementation function, or we we wouldn't ;; have expanded into it. So declare SYM as defined, so that @@ -128,8 +128,9 @@ (*print-case* :upcase) (*print-pretty* nil)) (intern (format nil - "MAKE-INSTANCE ~S ~S ~S" - class-name + "MAKE-INSTANCE ~A::~A ~S ~S" + (package-name (symbol-package class-name)) + (symbol-name class-name) keys allow-other-keys-p)))))))) diff --git a/version.lisp-expr b/version.lisp-expr index 0e49bcb..09d4201 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.6.23" +"0.7.6.24"