From: Nikodemus S. <de...@us...> - 2007-07-17 18:36:52
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv12788 Modified Files: NEWS version.lisp-expr Log Message: 1.0.7.26: asymptotically faster FIND-SLOT-DEFINITION * Add a SLOT-VECTOR slot the SLOT-CLASS. The SLOT-VECTOR contains plists of slot definition objects hashed on the slot name, allowing O(1) lookups based on the slot name, instead of the old O(N) lookups -- where N is the number of slots in a class. Makes everything requiring slot definition lookups faster, simple tests showing SLOT-VALUE with variable name on a 5-slot class to be roughly 50% faster. Index: NEWS =================================================================== RCS file: /cvsroot/sbcl/sbcl/NEWS,v retrieving revision 1.1226 retrieving revision 1.1227 diff -u -d -r1.1226 -r1.1227 --- NEWS 17 Jul 2007 13:18:06 -0000 1.1226 +++ NEWS 17 Jul 2007 18:36:33 -0000 1.1227 @@ -9,6 +9,8 @@ and x86-64. * performance bug fix: GETHASH and (SETF GETHASH) are once again non-consing. + * optimization: slot definition lookup is now O(1). This speeds up + eg. SLOT-VALUE and (SETF SLOT-VALUE) with variable slot names. * optimization: STRING-TO-OCTETS is now up to 60% faster for UTF-8. * optimization: MEMBER can now be open-coded for all combinations of keyword arguments when second argument is constant, and in other Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.3510 retrieving revision 1.3511 diff -u -d -r1.3510 -r1.3511 --- version.lisp-expr 17 Jul 2007 13:18:06 -0000 1.3510 +++ version.lisp-expr 17 Jul 2007 18:36:33 -0000 1.3511 @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.7.25" +"1.0.7.26" |