From b76a2a89806c3a86c171c436dc3f3b6ff1acfa82 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Thu, 29 Oct 2009 15:36:15 +0000 Subject: [PATCH] 1.0.32.2: minor portability fix Clozure CL issues full warnings at compile time if individual clauses in typecases are shadowed by others; this makes writing portable warning-free typecases for character types a little bit tricky. In the case of the FORMAT directive finders, though, the workaround is straightforward because the whole of the CHARACTER branch in the typecases can be removed. While we're at it, fix the theoretical portability bug that we were calling the host's CHAR-CODE on BASE-CHARs to fill data structures later to be accessed using the target's CHAR-CODE. (Theoretical because all implementations at present agree on CHAR-CODE for BASE-CHARs). (This commit does not suffice to allow Clozure CL to build SBCL) CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: NEWS version.lisp-expr src/code/late-format.lisp CVS: src/code/target-format.lisp CVS: ---------------------------------------------------------------------- --- NEWS | 2 +- src/code/late-format.lisp | 11 +++++------ src/code/target-format.lisp | 3 +-- version.lisp-expr | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/NEWS b/NEWS index a617c05cd..9545ab111 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ ;;;; -*- coding: utf-8; fill-column: 78 -*- -changes relative to sbcl-1.0.31: +changes relative to sbcl-1.0.32: * bug fix: restore buildability on the MIPS platform. (regression from 1.0.30.38, reported by Samium Gromoff) diff --git a/src/code/late-format.lisp b/src/code/late-format.lisp index 5315b2498..9b339c616 100644 --- a/src/code/late-format.lisp +++ b/src/code/late-format.lisp @@ -279,8 +279,7 @@ (let ((char (format-directive-character directive))) (typecase char (base-char - (aref *format-directive-expanders* (char-code char))) - (character nil)))) + (aref *format-directive-expanders* (sb!xc:char-code char)))))) (*default-format-error-offset* (1- (format-directive-end directive)))) (declare (type (or null function) expander)) @@ -389,13 +388,13 @@ (eval-when (#-sb-xc :compile-toplevel :load-toplevel :execute) (defun %set-format-directive-expander (char fn) - (setf (aref *format-directive-expanders* (char-code (char-upcase char))) fn) + (let ((code (sb!xc:char-code (char-upcase char)))) + (setf (aref *format-directive-expanders* code) fn)) char) (defun %set-format-directive-interpreter (char fn) - (setf (aref *format-directive-interpreters* - (char-code (char-upcase char))) - fn) + (let ((code (sb!xc:char-code (char-upcase char)))) + (setf (aref *format-directive-interpreters* code) fn)) char) (defun find-directive (directives kind stop-at-semi) diff --git a/src/code/target-format.lisp b/src/code/target-format.lisp index 792e610fd..8478a221f 100644 --- a/src/code/target-format.lisp +++ b/src/code/target-format.lisp @@ -78,8 +78,7 @@ (function (typecase character (base-char - (svref *format-directive-interpreters* (char-code character))) - (character nil))) + (svref *format-directive-interpreters* (char-code character))))) (*default-format-error-offset* (1- (format-directive-end directive)))) (unless function diff --git a/version.lisp-expr b/version.lisp-expr index 11ebcbbef..05ccd094a 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".) -"1.0.32.1" +"1.0.32.2" -- 2.11.4.GIT