From 095564c28a259002c7e34fd1d861f5bbd0a959b6 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Tue, 2 Nov 2004 11:49:31 +0000 Subject: [PATCH] 0.8.16.26: 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 | 10 ++++++++-- NEWS | 12 ++++++++---- base-target-features.lisp-expr | 5 +++++ src/code/early-fasl.lisp | 5 +++-- src/compiler/srctran.lisp | 8 +++----- version.lisp-expr | 2 +- 6 files changed, 28 insertions(+), 14 deletions(-) diff --git a/CREDITS b/CREDITS index 5c05a17..be6601d 100644 --- 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 - 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. @@ -682,6 +683,9 @@ Rudi Schlatte: 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, @@ -697,7 +701,9 @@ Juho Snellman: 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 diff --git a/NEWS b/NEWS index 8d00b75..974f9fa 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,12 @@ 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 diff --git a/base-target-features.lisp-expr b/base-target-features.lisp-expr index 7b613dd..622a1b4 100644 --- a/base-target-features.lisp-expr +++ b/base-target-features.lisp-expr @@ -174,6 +174,11 @@ ;; 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 diff --git a/src/code/early-fasl.lisp b/src/code/early-fasl.lisp index 9e95f1c..a5b95e6 100644 --- a/src/code/early-fasl.lisp +++ b/src/code/early-fasl.lisp @@ -35,7 +35,7 @@ (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 @@ -76,7 +76,7 @@ ;;; 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 @@ -110,6 +110,7 @@ ;;; 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*)) diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp index a5ccd02..9c832e3 100644 --- a/src/compiler/srctran.lisp +++ b/src/compiler/srctran.lisp @@ -2939,9 +2939,7 @@ ;;;; 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)) @@ -2953,7 +2951,7 @@ (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. @@ -2965,7 +2963,7 @@ (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. diff --git a/version.lisp-expr b/version.lisp-expr index b1795c0..c9cbb67 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.8.16.25" +"0.8.16.26" -- 1.7.10.4