Not all attributes can be stored as static variables, or you couldn't add new 
ones at runtime.  So there must also be a dictionary in the CustomDict subclass 
-- right?  Are the only attributes that are made into statics the "all modules 
have these" names?  (That is, the names I would find if I create a new Module 
object and examine it?)  Or does make the names assigned in the __init__ method 
static as well?

What happens if one of the static-var-stored dictionary entries gets removed 
from one of these CustomDict subclasses?  Is there a value that can be stored 
in the corresponding static variable that means "do a name lookup within 
superclasses to find this when you get this value (and raise a NameError if 
it's not found)" so that removing an entry will work correctly?  (If retrieving 
one of the static-var-stored values is really just ldsfld / stsfld, with no 
check for whether the value returned means "there's no entry here", can things 
work right?)

Maybe I should do some testing -- but it might not be fruitful until the 
just-discovered bug is fixed.

At 06:09 PM 3/28/2006, Dino Viehland wrote (in part)
>When you are running from a module we generate a module type which is a 
>subclass of CustomDict.  That CustomDict stores the field values as static 
>variables which allows quicker access than requiring a dictionary lookup each 
>time through (in particular the module gets to just do a ldsfld / stsfld in IL 
>to get the value, but setting the value from outside of the module is still 
>relatively expensive).
>[snip]


J. Merrill / Analytical Software Corp

_______________________________________________
users mailing list
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to