Optimize EQUALP on structures with raw slots.
authorStas Boukarev <stassats@gmail.com>
Mon, 4 Nov 2013 22:52:37 +0000 (02:52 +0400)
committerStas Boukarev <stassats@gmail.com>
Mon, 4 Nov 2013 22:52:37 +0000 (02:52 +0400)
commit4c7c37bcc5232db4e3be0ea41ec92f6561ace17a
tree32ba905203b3512cc6483e16ac7358befd9da06f
parent498ec57f1f860fb09c998b7a413dbeaf9c0304e8
Optimize EQUALP on structures with raw slots.

Add a comparer slot to raw-slot-data, which is defined as
(lambda (index x y)
  (= (%raw-instance-ref/double x index)
     (%raw-instance-ref/double y index)))

Which is both faster than calling %raw-instance-ref/double out of
line and does not cons.
NEWS
src/code/defstruct.lisp
src/code/target-defstruct.lisp