Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 27b7f9f

Browse files
committed
The dynamic performance hack is (mostly) done.
1 parent ea32cbb commit 27b7f9f

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

PLAN.txt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,6 @@ Project: core implementation
44
Still to do
55
-----------
66

7-
More performance work -- one particular test, test_descr.inherits(),
8-
is still about 50% slower with dynamic classes. :-( The approach of
9-
choice would be:
10-
11-
Add a list of weak refs to derived classes to each dynamic
12-
class, and trap setattr+delattr on the base class so that they
13-
update the tp_XXX slot in each derived class when the base class
14-
__XXX__ gets set or deleted. More work, but more gain (zero waste
15-
in slot_tp_XXX when __XXX__ is not overridden).
16-
177
Add __del__ handlers?
188

199
Allow assignment to __bases__ and __dict__?
@@ -35,6 +25,17 @@ implemented.
3525
Done (mostly)
3626
-------------
3727

28+
More performance work -- one particular test, test_descr.inherits(),
29+
is still about 50% slower with dynamic classes. :-( The approach of
30+
choice would be:
31+
32+
Add a list of weak refs to derived classes to each dynamic
33+
class, and trap setattr+delattr on the base class so that they
34+
update the tp_XXX slot in each derived class when the base class
35+
__XXX__ gets set or deleted. More work, but more gain (zero waste
36+
in slot_tp_XXX when __XXX__ is not overridden).
37+
*** That's done now, with great success. ***
38+
3839
Make __dynamic__ the default. *** done (but more performance work
3940
needs to be done). ***
4041

0 commit comments

Comments
 (0)