0.8.16.26:
authorChristophe Rhodes <csr21@cam.ac.uk>
Tue, 2 Nov 2004 11:49:31 +0000 (11:49 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Tue, 2 Nov 2004 11:49:31 +0000 (11:49 +0000)
THE END (sort of)
... add new (enabled-by-default) :sb-unicode feature to
base-target-features.lisp-expr;
... make the system aware that loading fasls with the wrong feature
is a bad idea;
... one compiler fix for CHAR-FOO functions (the transforms have
to be on portably-unparseable types)

CREDITS
NEWS
base-target-features.lisp-expr
src/code/early-fasl.lisp
src/compiler/srctran.lisp
version.lisp-expr

diff --git a/CREDITS b/CREDITS
index 5c05a17..be6601d 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -610,7 +610,8 @@ Eric Marsden:
   Some of his fixes to CMU CL since the SBCL fork have been ported
   to SBCL.  He also maintains the cl-benchmark package, which gives
   us some idea of how our performance changes compared to earlier
   Some of his fixes to CMU CL since the SBCL fork have been ported
   to SBCL.  He also maintains the cl-benchmark package, which gives
   us some idea of how our performance changes compared to earlier
-  releases and to other implementations.
+  releases and to other implementations.  He assisted in development
+  of Unicode support for SBCL.
 
 Antonio Martinez-Shotton:
   He has contributed a number of bug fixes and bug reports to SBCL.
 
 Antonio Martinez-Shotton:
   He has contributed a number of bug fixes and bug reports to SBCL.
@@ -682,6 +683,9 @@ Rudi Schlatte:
   string extractor that keeps function documentation in the manual
   current.
 
   string extractor that keeps function documentation in the manual
   current.
 
+Julian Squires:
+  He worked on Unicode support for the PowerPC platform.
+
 Nikodemus Siivola:
   He provided build fixes, in particular to tame the SunOS toolchain,
   implemented package locks, ported the linkage-table code from CMUCL,
 Nikodemus Siivola:
   He provided build fixes, in particular to tame the SunOS toolchain,
   implemented package locks, ported the linkage-table code from CMUCL,
@@ -697,7 +701,9 @@ Juho Snellman:
 
 Brian Spilsbury:
   He wrote Unicode-capable versions of SBCL's character, string, and
 
 Brian Spilsbury:
   He wrote Unicode-capable versions of SBCL's character, string, and
-  stream types and operations on them.
+  stream types and operations on them.  (These versions did not end up
+  in the system, but did to a large extent influence the support which
+  finally did get merged.)
 
 Raymond Toy:
   He continued to work on CMU CL after the SBCL fork, especially on
 
 Raymond Toy:
   He continued to work on CMU CL after the SBCL fork, especially on
diff --git a/NEWS b/NEWS
index 8d00b75..974f9fa 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,12 @@
 changes in sbcl-0.8.17 relative to sbcl-0.8.16:
 changes in sbcl-0.8.17 relative to sbcl-0.8.16:
-  * the system now has rudimentary external-format support; the
-    primary user-visible change at this time is that characters with
-    the high bit set (such as lower-case-e-acute) will print correctly
-    to a terminal in a UTF-8 environment.
+  * new feature: a build-time option (controlled by the :SB-UNICODE
+    keyword feature, enabled by default) for building the system with
+    support for the entire 21-bit character space defined by the
+    Unicode consortium.
+  * new feature: the system now has rudimentary external-format
+    support; the primary user-visible change at this time is that
+    characters with the high bit set (such as lower-case-e-acute) will
+    print correctly to a terminal in a UTF-8 environment.
   * minor incompatible change: BASE-CHAR no longer names a class;
     however, CHARACTER continues to do so, as required by ANSI.
   * minor incompatible change: SB-DEBUG:*DEBUG-PRINT-FOO* variables
   * minor incompatible change: BASE-CHAR no longer names a class;
     however, CHARACTER continues to do so, as required by ANSI.
   * minor incompatible change: SB-DEBUG:*DEBUG-PRINT-FOO* variables
index 7b613dd..622a1b4 100644 (file)
  ;; code (when applied to user-level packages), relating to material
  ;; alteration to packages or to bindings in symbols in packages.
  :sb-package-locks
  ;; code (when applied to user-level packages), relating to material
  ;; alteration to packages or to bindings in symbols in packages.
  :sb-package-locks
+
+ ;; Support for the entirety of the 21-bit character space defined by
+ ;; the Unicode consortium, rather than the classical 8-bit ISO-8859-1
+ ;; character set.
+ :sb-unicode
  
  ;; This affects the definition of a lot of things in bignum.lisp. It
  ;; doesn't seem to be documented anywhere what systems it might apply
  
  ;; This affects the definition of a lot of things in bignum.lisp. It
  ;; doesn't seem to be documented anywhere what systems it might apply
index 9e95f1c..a5b95e6 100644 (file)
@@ -35,7 +35,7 @@
 
 (macrolet ((define-fasl-format-features ()
              (let (;; master value for *F-P-A-F-F*
 
 (macrolet ((define-fasl-format-features ()
              (let (;; master value for *F-P-A-F-F*
-                  (fpaff '(:sb-thread :sb-package-locks)))
+                  (fpaff '(:sb-thread :sb-package-locks :sb-unicode)))
               `(progn
                  ;; a list of *(SHEBANG-)FEATURES* flags which affect
                  ;; binary compatibility, i.e. which must be the same
               `(progn
                  ;; a list of *(SHEBANG-)FEATURES* flags which affect
                  ;; binary compatibility, i.e. which must be the same
@@ -76,7 +76,7 @@
 ;;; versions which break binary compatibility. But it certainly should
 ;;; be incremented for release versions which break binary
 ;;; compatibility.
 ;;; versions which break binary compatibility. But it certainly should
 ;;; be incremented for release versions which break binary
 ;;; compatibility.
-(def!constant +fasl-file-version+ 51)
+(def!constant +fasl-file-version+ 52)
 ;;; (record of versions before 2003 deleted in 2003-04-26/0.pre8.107 or so)
 ;;; 38: (2003-01-05) changed names of internal SORT machinery
 ;;; 39: (2003-02-20) in 0.7.12.1 a slot was added to
 ;;; (record of versions before 2003 deleted in 2003-04-26/0.pre8.107 or so)
 ;;; 38: (2003-01-05) changed names of internal SORT machinery
 ;;; 39: (2003-02-20) in 0.7.12.1 a slot was added to
 ;;; 50: (2004-05-20) Changed %COMPILER-DEFUN signature again.
 ;;; 51: (2004-07-24) Package locks (SBCL 0.8.12.7) changed signature of
 ;;;     %DEFPACKAGE.
 ;;; 50: (2004-05-20) Changed %COMPILER-DEFUN signature again.
 ;;; 51: (2004-07-24) Package locks (SBCL 0.8.12.7) changed signature of
 ;;;     %DEFPACKAGE.
+;;; 52: (2004-11-02) Merge of SB-UNICODE.
 
 ;;; the conventional file extension for our fasl files
 (declaim (type simple-string *fasl-file-type*))
 
 ;;; the conventional file extension for our fasl files
 (declaim (type simple-string *fasl-file-type*))
index a5ccd02..9c832e3 100644 (file)
 \f
 ;;;; character operations
 
 \f
 ;;;; character operations
 
-(deftransform char-equal ((a b)
-                          ((character-set ((0 . 255)))
-                           (character-set ((0 . 255)))))
+(deftransform char-equal ((a b) (base-char base-char))
   "open code"
   '(let* ((ac (char-code a))
          (bc (char-code b))
   "open code"
   '(let* ((ac (char-code a))
          (bc (char-code b))
                  (and (> sum 415) (< sum 461))
                  (and (> sum 463) (< sum 477))))))))
 
                  (and (> sum 415) (< sum 461))
                  (and (> sum 463) (< sum 477))))))))
 
-(deftransform char-upcase ((x) ((character-set ((0 . 255)))))
+(deftransform char-upcase ((x) (base-char))
   "open code"
   '(let ((n-code (char-code x)))
      (if (or (and (> n-code #o140)     ; Octal 141 is #\a.
   "open code"
   '(let ((n-code (char-code x)))
      (if (or (and (> n-code #o140)     ; Octal 141 is #\a.
         (code-char (logxor #x20 n-code))
         x)))
 
         (code-char (logxor #x20 n-code))
         x)))
 
-(deftransform char-downcase ((x) ((character-set ((0 . 255)))))
+(deftransform char-downcase ((x) (base-char))
   "open code"
   '(let ((n-code (char-code x)))
      (if (or (and (> n-code 64)                ; 65 is #\A.
   "open code"
   '(let ((n-code (char-code x)))
      (if (or (and (> n-code 64)                ; 65 is #\A.
index b1795c0..c9cbb67 100644 (file)
@@ -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".)
 ;;; 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.8.16.25"
+"0.8.16.26"