This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMU Common Lisp".
The branch, master has been updated via cdf11377fbdb369d3a3810dd9bd01a8a73007255 (commit) from 683d11688c0a5c0f4a44fdc301706f14913fa5ed (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit cdf11377fbdb369d3a3810dd9bd01a8a73007255 Author: Raymond Toy toy.raymond@gmail.com Date: Sat Dec 22 08:29:09 2012 -0800
Fix ticket:60.
This fixes the immediate issue, but there are still problems with very long strings. The bit-index for such strings won't fit in an (unsigned-byte 32).
vm-fndb.lisp: o Correct the defknown to have the correct arg types (vm::offset instead of index).
vm-tran.lisp: o Update deftransform to use vm::offset instead of index.
diff --git a/src/compiler/generic/vm-fndb.lisp b/src/compiler/generic/vm-fndb.lisp index 0c726f3..80e5630 100644 --- a/src/compiler/generic/vm-fndb.lisp +++ b/src/compiler/generic/vm-fndb.lisp @@ -307,8 +307,8 @@ ())
(defknown bit-bash-copy - ((simple-unboxed-array (*)) index - (simple-unboxed-array (*)) index index) + ((simple-unboxed-array (*)) vm::offset + (simple-unboxed-array (*)) vm::offset vm::offset) t ())
diff --git a/src/compiler/generic/vm-tran.lisp b/src/compiler/generic/vm-tran.lisp index 62bf92b..3376163 100644 --- a/src/compiler/generic/vm-tran.lisp +++ b/src/compiler/generic/vm-tran.lisp @@ -240,22 +240,22 @@ (deftransform replace ((string1 string2 &key (start1 0) (start2 0) end1 end2) (simple-string simple-string &rest t)) - '(locally (declare (optimize (safety 0))) - (bit-bash-copy string2 - (the index - (+ (the index (* start2 vm:char-bits)) - vector-data-bit-offset)) - string1 - (the index - (+ (the index (* start1 vm:char-bits)) - vector-data-bit-offset)) - (the index - (* (min (the index (- (or end1 (length string1)) - start1)) - (the index (- (or end2 (length string2)) - start2))) - vm:char-bits))) - string1)) + '(locally (declare (optimize (safety 0))) + (bit-bash-copy string2 + (the vm::offset + (+ (the vm::offset (* start2 vm:char-bits)) + vector-data-bit-offset)) + string1 + (the vm::offset + (+ (the vm::offset (* start1 vm:char-bits)) + vector-data-bit-offset)) + (the vm::offset + (* (min (the vm::offset (- (or end1 (length string1)) + start1)) + (the vm::offset (- (or end2 (length string2)) + start2))) + vm:char-bits))) + string1))
;; The original version of this deftransform seemed to cause the ;; compiler to spend huge amounts of time deriving the type of the
-----------------------------------------------------------------------
Summary of changes: src/compiler/generic/vm-fndb.lisp | 4 ++-- src/compiler/generic/vm-tran.lisp | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-)
hooks/post-receive