"Brett C." <bac at OCF.Berkeley.EDU> writes: >> I take it from your posting of last week that you've thought about >> other ways of implementing exception handling? I guess a >> non-reference count based GC is a prerequisite for that... >> > > Yeah, I have tossed the exception handling idea around in my head a > little, but the culmination was what I posted. > > And a non-refcount GC would definitely help, even if the exception > handling wasn't changed. More places where you could just return NULL > instead of having to deal with DECREFing objects. And reducing the memory overhead of objects. Here's my crazy idea that's been knocking around my head for a while. I wonder if anyone can shoot in down in flames. Remove the ob_type field from all PyObjects. Make pymalloc mandatory, make it use type specific pools and store a pointer to the type object at the start of each pool. So instead of p->ob_type it's *(p&MASK) I think having each type in its own pools would also let you lose the gc_next & gc_prev fields. Combined with a non-refcount GC, you could hammer sizeof(PyIntObject) down to sizeof(long)! (Actually, a potential killer is assigning to __class__ -- maybe you could only do this for heaptypes) Cheers, mwh -- To summarise the summary of the summary:- people are a problem. -- The Hitch-Hikers Guide to the Galaxy, Episode 12
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4