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.)
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
;;; 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*.
;;; 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*))
;; 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))))))))
;;; 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"