[Python-checkins] CVS: python/dist/src PLAN.txt,1.12,1.13
Guido van Rossum
gvanrossum@users.sourceforge.net
Thu, 04 Oct 2001 12:46:08 -0700
Update of /cvsroot/python/python/dist/src
In directory usw-pr-cvs1:/tmp/cvs-serv13410
Modified Files:
PLAN.txt
Log Message:
Make new classes dynamic by default.
Index: PLAN.txt
===================================================================
RCS file: /cvsroot/python/python/dist/src/PLAN.txt,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** PLAN.txt 2001/10/03 03:00:56 1.12
--- PLAN.txt 2001/10/04 19:46:06 1.13
***************
*** 5,23 ****
-----------
! Make __dynamic__ the default (this requires more performance work --
! one particular test, test_descr.inherits(), is about 10x slower when
! __dynamic__ is 1. :-( There are two ways to go about the performance
! work:
!
! a) Add shortcuts to the slot_tp_XXX to recognize a PyWrapperDescr
! with the correct wrap_tp_XXX function.
! b) Add a list or dict of weak refs to derived classes to each dynamic
class, and trap setattr+delattr on the base class so that they
update the tp_XXX slot in each derived class when the base class
__XXX__ gets set or deleted. More work, but more gain (zero waste
! in slot_tp_XXX when __XXX__ is not overridden).
! Add __del__ handlers.
Allow assignment to __bases__ and __dict__?
--- 5,20 ----
-----------
! More performance work -- one particular test, test_descr.inherits(),
! is still about 50% slower with dynamic classes. :-( The approach of
! choice would be:
! Add a list of weak refs to derived classes to each dynamic
class, and trap setattr+delattr on the base class so that they
update the tp_XXX slot in each derived class when the base class
__XXX__ gets set or deleted. More work, but more gain (zero waste
! in slot_tp_XXX when __XXX__ is not overridden). This is currently
! awaiting Fred turning the weak ref API into a standard object API.
! Add __del__ handlers?
Allow assignment to __bases__ and __dict__?
***************
*** 39,42 ****
--- 36,42 ----
Done (mostly)
-------------
+
+ Make __dynamic__ the default. *** done (but more performance work
+ needs to be done). ***
Treat all binary operators the same way as I just did for rich