[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Array Register Analog in MCL?



I looked a little further into how to best optimize string references.
The following macro:

(defmacro fast-schar (string index)
  `(locally
     (declare (optimize (speed 3) (safety 0)))
     (schar ,string ,index)))

will result in a call to the $SP-%SCHAR subprimitive, which does know
about fat (16-bit character) strings, but doesn't do bounds checking.
I think that's as fast as you can get without using LAP code. There is
also a $SP-%SET-SCHAR subprimitive, which you can get using the form:

(defmacro fast-set-schar (string index char)
  `(locally
     (declare (optimize (speed 3) (safety 0)))
     (setf (schar ,string ,index) ,char)))

Hope these help; it would be interesting to see timing test results
from them.

- Steve Hain

Digitool, Inc.
______________________________________________________________________________
                       One Main Street   7th Floor   Cambridge, MA 02142   USA
                              Internet: slh@digitool.com   AppleLink: digitool
                                      World Wide Web: http://www.digitool.com/
                                         Tel: 617 441-5000   Fax: 617 576-7680