0.7.6.24:
authorWilliam Harold Newman <william.newman@airmail.net>
Wed, 14 Aug 2002 22:54:09 +0000 (22:54 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Wed, 14 Aug 2002 22:54:09 +0000 (22:54 +0000)
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.)

NEWS
src/code/early-fasl.lisp
src/pcl/fast-init.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index a18fd98..c517832 100644 (file)
--- 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
index 24d17c2..87dd4e6 100644 (file)
 
 ;;; 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*))
index b435376..88219f5 100644 (file)
@@ -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
                (*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))))))))
 
index 0e49bcb..09d4201 100644 (file)
@@ -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"