This is an automated email letting you know that sources
have recently been pushed out. You can download these newer
sources directly from
http://ironpython.codeplex.com/SourceControl/changeset/view/62295.
ADDED SOURCES
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/CustomInstanceDictionaryStorage.cs
DELETED SOURCES
$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Dynamic/Runtime/DynamicRuntimeHostingProvider.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/CustomOldClassDictionary.cs
MODIFIED SOURCES
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/CustomInstanceDictionaryStorage.cs
$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Dynamic/Microsoft.Dynamic.csproj
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaOldInstance.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaUserObject.Members.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/PythonTypeDictSlot.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/PythonType.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/OldInstance.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/OldClass.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/PythonOps.cs
$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/UserTypeOps.cs
$/IronPython/IronPython_Main/Src/IronPython/IronPython.csproj
CHECKIN COMMENTS
--------------------------------------------------------------------------------
Changeset Id: 1345559
Date: 12/14/2009 5:56:03 PM
For old-style classes we have had an optimized dictionary which performs
lock-free array based storage for instance members which are assigned in
__init__. This adds the same optimization for (most) new-style classes.
The class CustomOldClassDictionaryStorage is renamed to
CustomInstanceDictionaryStorage to indicate that this is now shared between
both new-style and old-style classes. The names version allocation moves as a
static on CIDS. When creating a new-style class which doesn’t have a
meta-class we now flow the self names that we’ve always calculated in the type.
When initializing the type we walk the MRO and collect all of the names that
are base classes want as well. We then remember the list of names if we have
any.
Then when we go and create the dictionary for a new-style class we create a
dictionary backed by CIDS instead of our CommonDictionaryStorage. Finally both
are pre-compiled and non-precompiled code paths are updated to generate rules
which access the correct array index instead of doing a dictionary lookup.
On my machine this brings Richards.py, a bench mark which does lots of instance
dictionary access, execution time down to 4.68s from 7.84s for a 38%
improvement.
I’m also deleting DynamicRuntimeHostingProvider from Microsoft.Dynamic – this
type was duplicated in both Microsoft.Scripting and Microsoft.Dynamic but only
the one in Microsoft.Scripting is useful.
(Shelveset: OptimizedNewStyleClassesFinal;REDMOND\dinov | SNAP CheckinId: 10016)
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com