From: Nikodemus S. <de...@us...> - 2007-08-27 15:14:06
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv16473 Modified Files: NEWS version.lisp-expr Log Message: faster SLOT-VALUE &co with variable slot names * Cache the slot-location and typecheckfun in the class-slots-vector in addition to the slot-definition for STANDARD-CLASS and FUNCALLABLE-STANDARD-CLASS. * New function CHECK-OBSOLETE-INSTANCE/CLASS-OF, which combines the two. Faster then calling both separately, since both need to grab the wrapper -- used by SLOT-VALUE &co. * Unoptimized SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, and SLOT-MAKUNBOUND can now directly access instance and class slots the typecheckfun in normal cases, giving upto 20-25% performance boost for these functions. * Obsolete-instance protocol tests using variable slot-names. Index: NEWS =================================================================== RCS file: /cvsroot/sbcl/sbcl/NEWS,v retrieving revision 1.1238 retrieving revision 1.1239 diff -u -d -r1.1238 -r1.1239 --- NEWS 27 Aug 2007 14:44:21 -0000 1.1238 +++ NEWS 27 Aug 2007 15:13:27 -0000 1.1239 @@ -1,5 +1,9 @@ ;;;; -*- coding: utf-8; -*- changes in sbcl-1.0.10 relative to sbcl-1.0.9: + * optimization: SLOT-VALUE and (SETF SLOT-VALUE) are now >20% faster + for variable slot names, when the class of the instance is + an instance of STANDARD-CLASS or FUNCALLABLE-STANDARD-CLASS, and not + any of their subclasses. * optimization: member type construction is now O(N) instead of O(N^2). * optimization: UNION and NUNION are now O(N+M) for large Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.3575 retrieving revision 1.3576 diff -u -d -r1.3575 -r1.3576 --- version.lisp-expr 27 Aug 2007 14:44:21 -0000 1.3575 +++ version.lisp-expr 27 Aug 2007 15:13:27 -0000 1.3576 @@ -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.9.1" +"1.0.9.2" |