[IronPython] IronPython 2.6 CodePlex Source Update

merllab at microsoft.com merllab at microsoft.com
Thu May 14 09:11:56 PDT 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/50318.

ADDED SOURCES
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/ModuleGlobalCache.cs
	$/IronPython/IronPython_Main/Doc/IronPython.css
	$/IronPython/IronPython_Main/Doc
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Ast/DebugViewWriter.cs

DELETED SOURCES
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Ast/ExpressionWriter.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Runtime/ModuleGlobalWrapper.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Runtime/ModuleGlobalCache.cs

MODIFIED SOURCES
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/ModuleGlobalCache.cs
	$/IronPython/IronPython_Main/Doc/IronPython.css
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Ast/DebugViewWriter.cs
	$/IronPython/IronPython_Main/Src/Tests/Modes/ConsoleHelp.out
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Microsoft.Scripting.Core.csproj
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Properties/AssemblyInfo.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Properties/ExtensionAssemblyInfo.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Utils/TypeExtensions.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Dynamic/Properties/AssemblyInfo.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Utils/ThreadLocal.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Microsoft.Scripting.csproj
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Actions/NestedTypeTracker.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Compiler/LambdaCompiler.Expressions.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Ast/Expression.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Properties/AssemblyInfo.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Runtime/LanguageContext.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting/Actions/TypeGroup.cs
	$/IronPython/IronPython_Main/Src/Runtime/Microsoft.Scripting.Core/Actions/CallSiteRule.cs
	$/IronPython/IronPython_Main/Src/Tests/pyc/test_pyc.ps1
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/PythonFunction.Generated.cs
	$/IronPython/IronPython_Main/Config/Unsigned/App.config
	$/IronPython/IronPython_Main/Config/Signed/App.config
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Bytes.cs
	$/IronPython/IronPython_Main/Src/Tests/test_bytes.py
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonGetMemberBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/PythonOptions.cs
	$/IronPython/IronPython_Main/Src/App.config
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/MetaPythonFunction.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Binding/PythonBinder.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/ScopeOps.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/PythonCallTargets.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/PythonCompilerOptions.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/TypeInfo.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/sys.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Types/ConstructorFunction.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/TypeGroupOps.cs
	$/IronPython/IronPython_Main/Src/Tests/test_sys.py
	$/IronPython/IronPython_Main/Src/AssemblyVersion.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Exceptions/TraceBack.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Operations/PythonOps.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/Generator.cs
	$/IronPython/IronPython_Main/Src/IronPython/Runtime/PythonContext.cs
	$/IronPython/IronPython_Main/Src/Tests/test_tuple.py
	$/IronPython/IronPython_Main/Src/Tests/test_function.py
	$/IronPython/IronPython_Main/Src/Tests/test_file.py
	$/IronPython/IronPython_Main/Src/Tests/test_cStringIO.py
	$/IronPython/IronPython_Main/Src/Tests/test_builtinfunc.py
	$/IronPython/IronPython_Main/Src/Tests/test_buffer.py
	$/IronPython/IronPython_Main/Src/IronPython/Hosting/PythonOptionsParser.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Ast/SuiteStatement.cs
	$/IronPython/IronPython_Main/Src/Scripts/generate_calls.py
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Ast/PythonAst.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Ast/FunctionDefinition.cs
	$/IronPython/IronPython_Main/Tutorial/Tutorial.htm
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Ast/ClassDefinition.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Tokenizer.cs
	$/IronPython/IronPython_Main/Src/IronPython/Compiler/Parser.cs
	$/IronPython/IronPython_Main/Src/IronPython/IronPython.csproj

CHECKIN COMMENTS
--------------------------------------------------------------------------------
Changeset Id: 870956
Date: 5/13/2009 4:39:31 PM

(dinov) Adds sys._getframe support, updates our version numbers for the upcoming beta release, and adds a –X:Python30 flag for features which should be like Python 3k (currently just bytes indexing).

_getframe support is implemented as 2 command line options.  The first –X:Frames enables light-weight frames which can be used to walk the stack.  The 2nd, -X:FullFrames, enables frames w/ locals also available and therefore has a much higher performance cost.

The frames tracking logic it’s self gets inserted into the generated function bodies.  We maintain a thread local object which tracks the frames inside a List<FunctionStack> where FunctionStack is a struct.  This means the usual case of pushing a new frame will run allocation free once a thread has reached it’s normal maximum operating depth.  Long term we can combine frames w/ recursion enforcement but this change does not do that.  Frames get added to functions, classes, and modules.  For classes and modules we currently don’t have a code object associated with the frame – just the locals/globals.  We also don’t currently track the line number in the frame (it’s a little tricky given that we are storing the frames in a struct).  When the user calls _getframe we actually go ahead and create a linked list of TracebackFrame objects on-demand.  _getframe is now unavailable entirely unless one of these command line options is passed – this means the namedtuple usage of getframe no longer breaks us.  We also get tons of new attributes on our traceback frame objects.  A number of tests are also updated to use –X:Frames when running because they require sys._getframe to be available.

Also fixing CallTarget0 and friends so that Michael’s book will not be broken.  This is just removing PythonFunction from them, killing all of them except for CallTarget0, and switching over to using Func<> for all Python call targets.



(Shelveset: AddFrameSupportFinal;REDMOND\dinov | SNAP CheckinId: m9101)
--------------------------------------------------------------------------------
Changeset Id: 870839
Date: 5/13/2009 3:51:19 PM

(dfugate) * CP21976 (test_pyc.ps1) - fully enabled regression
* CP22259 (test_buffer.py) - extended regression.  Not fixed
* test_builtinfunc.py (test_zip) - extended regression
* CP22017 (test_cStringIO.py) - moved regression to its own test case
* test_file.py (test_write_buffer) - cleaned up
* test_tuple.py (test_compare_to_none) - extended regression


(Shelveset: CP59;REDMOND\dfugate | SNAP CheckinId: 8354)



More information about the Users mailing list