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