[IronPython] IronPython 2.6 CodePlex Source Update

merllab at microsoft.com merllab at microsoft.com
Mon May 11 17:52:42 CEST 2009


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/49948.

DELETED SOURCES
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/BinderState.cs

MODIFIED SOURCES
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/PointerType.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/CFuncPtr.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/Structure.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/_ctypes.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/CFuncPtrType.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/Pointer.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/ModuleOps.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/ArrayType.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_ctypes/StructType.cs
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/OutParams.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/dlrcomserver.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/apps/msagent.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/OptionalParams.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/pytraits/method.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/paramsinretval.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/typelib.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/apps/excel.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/apps/word.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/InOutParams.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/DispEvents.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/apps/scriptpw.py
	$/IronPython/IronPython_Main/Src/Tests/interop/com/dlrcomlib/SimpleErrors.py
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/FutureBuiltins.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Interpreter/LightLambda.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Interpreter/LightLambdaClosureVisitor.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Utils/ExceptionFactory.Generated.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Interpreter/LightDelegateCreator.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Actions/DynamicMetaObjectBinder.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Interpreter/LightLambda.Generated.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Interpreter/LightCompiler.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Generation/CompilerHelpers.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Interpreter/Instruction.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/PythonSiteCache.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/BuiltinFunction.Generated.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_collections.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonSetSliceBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonUnaryOperationBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonDeleteIndexBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonGetSliceBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonBinaryOperationBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonGetIndexBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonSetIndexBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonDeleteSliceBinder.cs
	$/IronPython/IronPython_Main/Src/Scripts/generate_dynamic_instructions.py
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/NewStringFormatter.cs
	$/IronPython/IronPython_Main/Src/IronPython/Lib/iptest/cominterop_util.py
	$/IronPython/IronPython_Main/Lib/iptest/cominterop_util.py
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonDeleteMemberBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonOperationBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonGetMemberBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonInvokeBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonSetMemberBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/InstanceCreator.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/IPythonGetable.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/CreateFallbackBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/CompatibilityInvokeBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Hosting/PythonService.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaOldInstance.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaBuiltinMethodDescriptor.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaPythonObject.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaPythonType.Calls.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/BindingHelpers.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaPythonType.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaUserObject.Members.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/Binders.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonProtocol.Operations.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaBuiltinFunction.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonProtocol.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaUserObject.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaPythonType.Members.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaMethod.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/IPythonSite.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/ConversionBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaOldClass.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/SlotOrFunction.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/ScopeOps.cs
	$/IronPython/IronPython_Main/Src/IronPython.Modules/_functools.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/PythonModule.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/BuiltinFunction.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/PythonType.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/PythonOps.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/ReflectedPackageOps.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/UserTypeOps.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/PythonContext.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Builtin.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Converter.cs
	$/IronPython/IronPython_Main/Src/Tests/test_index.py
	$/IronPython/IronPython_Main/Src/IronPython.Modules/re.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Ast/WithStatement.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Ast/PythonAst.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Ast/AstGenerator.cs
	$/IronPython/IronPython_Main/Src/IronPython/IronPython.csproj

CHECKIN COMMENTS
--------------------------------------------------------------------------------
Changeset Id: 864959
Date: 5/8/2009 6:21:21 PM

(dinov) This change is removing the binder state class and updating all Python binders to hold onto a PythonContext instead of a BinderState which holds onto a CodeContext which holds onto a PythonContext.  
 
The original idea behind BinderState was there was 1 / module and it would enable us to not have to flow context everywhere.  But because sites can be shared across multiple scopes that didn’t work out so well.  Now it’s a hinderance because the atomization is happening on the binderstate so we’re not sharing sites across modules.  It’s also breaking Harry’s __clrtype__ experimentation.  So now it’s just gone and we always use the context which is flowed in anyway.
 
There’s lots of little changes throughout the code base but most if it’s pretty straight forward.  The common theme is that we get a PythonContext and don’t need to access it’s DefaultBinderState property or we get the SharedContext off of the PythonContext instead of getting it from the DefaultBinderState.
 
Modules lose the initialization of the binder state code and the helpers are gone from PythonOps. 
 
All of the old code in BinderState is pulled into PythonContext unchanged.
 
In order to avoid flowing CodeContext into GetIndex sites I have also changed how generic methods work.  Instead of making all methods indexable and hiding it sometime there is a new subclass of BuiltinFunction called GenericBuiltinFunction.  It adds the indexing onto the BuiltinFunction.  I’ve been wanting to do this for a while but this is finally a good execute to do it – we now get the right error message on [].append[int]   We should also do the same w/ PythonType at some point.  That required an update to the restrictions in MetaBuiltinFunction to account for the type of built-in function when producing the rule.
 
I’ve also extended the PythonGetMemberBinder fast path.  It now supports NamespaceTracker objects and supports Scope more fully.
 


(Shelveset: RemoveBinderStateFinal2;REDMOND\dinov | SNAP CheckinId: 8296)
--------------------------------------------------------------------------------
Changeset Id: 864850
Date: 5/8/2009 5:14:30 PM

(dfugate) When support was removed for COM typelibs, the COM interop tests were not updated accordingly.  This shelveset:
* removes all typelib-only paths throughout the tests
* updates a number of bug IDs


(Shelveset: COM_TESTS;REDMOND\dfugate | SNAP CheckinId: 8295)



More information about the Ironpython-users mailing list