From: Guido van Rossum Date: Fri, 12 Oct 2001 17:43:43 +0000 (+0000) Subject: The dynamic performance hack is (mostly) done. X-Git-Tag: v2.2.1c1~1326 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=27b7f9f91e6e88a6607c05f6e47bba5016225a94;p=thirdparty%2FPython%2Fcpython.git The dynamic performance hack is (mostly) done. --- diff --git a/PLAN.txt b/PLAN.txt index 01a1183d02b4..4eb78a7aa4d5 100644 --- a/PLAN.txt +++ b/PLAN.txt @@ -4,16 +4,6 @@ Project: core implementation Still to do ----------- -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). - Add __del__ handlers? Allow assignment to __bases__ and __dict__? @@ -35,6 +25,17 @@ implemented. Done (mostly) ------------- +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). +*** That's done now, with great success. *** + Make __dynamic__ the default. *** done (but more performance work needs to be done). ***