Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

add simple-array support for CCL

It's not clear to me that it improves the generated code much, but
perhaps I'm simply not skilled in reading CCL disassembly.
  • Loading branch information...
commit 142229a8eb741bdf9de7a246713453fce71f35a9 1 parent 3feca6e
@froydnj authored
Showing with 8 additions and 5 deletions.
  1. +4 −1 octets.lisp
  2. +4 −4 types.lisp
5 octets.lisp
@@ -35,7 +35,10 @@
(lisp::with-array-data ((v v) (start start) (end end))
(values v start end))
- #-(or sbcl cmu)
+ #+ccl
+ (multiple-value-bind (v* offset) (ccl::array-data-and-offset v)
+ (values v* (+ start offset) (+ (or end (length v)) offset)))
+ #-(or sbcl cmu ccl)
(values v start (or end (length v))))
(defun encode-to-fresh-vector (octets state start end element-type)
8 types.lisp
@@ -5,13 +5,13 @@
(deftype index () '(mod #.array-dimension-limit))
(deftype simple-octet-vector (&optional (length '*))
- #+(or sbcl cmu) `(simple-array (unsigned-byte 8) (,length))
- #-(or sbcl cmu) `(array (unsigned-byte 8) (,length)))
+ #+(or sbcl cmu ccl) `(simple-array (unsigned-byte 8) (,length))
+ #-(or sbcl cmu ccl) `(array (unsigned-byte 8) (,length)))
(deftype simple-string ()
#+sbcl '(and cl:simple-string (not (simple-array nil (*))))
- #+cmu 'cl:simple-string
- #-(or sbcl cmu) 'cl:string)
+ #+(or cmu ccl) 'cl:simple-string
+ #-(or sbcl cmu ccl) 'cl:string)
(defun required-argument ()
(error "Required argument not provided"))
Please sign in to comment.
Something went wrong with that request. Please try again.