Skip to content
Snippets Groups Projects
Commit 70327f16 authored by rtoy's avatar rtoy
Browse files

Merge from unicode-utf16-branch to get equal hash-table fixes so that

name-char works again.
parent 91bb6401
No related branches found
Tags unicode-utf16-extfmt-2009-03-27
No related merge requests found
......@@ -405,7 +405,7 @@
(in-package "LISP")
(defvar *unicode-data* (make-hash-table :test 'eql :size 30000))
(defvar *unicode-data* (make-hash-table :test 'equal :size 30000))
(defvar *assigned-codepoints-bitmap* (make-array 65536 :element-type 'bit))
(when (< (hash-table-count *unicode-data*) 20000)
(dolist (range '((#x0000 . #x001F) (#x007F . #x009F) (#x3400 . #x4DB5)
......
......@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/char.lisp,v 1.15.18.3.2.3 2009/03/27 04:14:10 rtoy Exp $")
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/char.lisp,v 1.15.18.3.2.4 2009/03/27 16:24:10 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
......@@ -513,9 +513,7 @@
(#xDB80 . #xDBFF)))
(loop for i from (car range) to (cdr range) do
(setf (aref *assigned-codepoints-bitmap* i) 1)))
;; Make the sure the hash table is an eql hash table. This helps
;; during build because we don't need to do equal on characters.
(setf *unicode-data* (make-hash-table :test 'eql :size 30000))
(setf *unicode-data* (make-hash-table :test 'equal :size 30000))
(with-open-file (s unicode-data-file)
(flet ((cat (x) (dpb (position (char x 0) "CLMNPSZ") (byte 3 4)
(position (char x 1) "cdefiklmnopstu")))
......
......@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.47 2008/04/29 13:07:47 rtoy Exp $")
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.47.4.1 2009/03/27 16:24:10 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
......@@ -980,7 +980,7 @@
;; The pointers and immediate types.
(cons (sxhash-list s-expr depth))
(fixnum (ldb sxhash-bits-byte s-expr))
(character (char-code (char-upcase s-expr)))
(character (char-code s-expr))
(pathname
;; Pathnames are EQUAL if all the components are EQUAL, so we
;; hash all of the components of a pathname together.
......
......@@ -28,6 +28,10 @@ New in this release:
trying to simplify the union of a large number of disjoint
numeric types. Previously, we handled the case of integer
types. Extend this to handle floats as well.
- SXHASH was computing the same hash code for upper and lower case
characters by upcasing the character. This isn't necessary
since the characters are not EQUAL, so make SXHASH return
different values for upper and lower case letter.
* Trac Tickets:
#31: pathname bug with :case :common
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment