Hello IronPython Community,
We have just released IronPython 2.0 Alpha 4. This release is essentially another snapshot of the ongoing work with respect to IronPython 2.0 and the Dynamic Language Runtime. The most significant changes in this release include:
• Completion of the –X:Interpret mode and its incorporation into the eval and exec functions
• The addition of the -X:PreferComDispatch mode
• Improved performance for the itertools module and the importing of CLR-based modules
• A number of bug fixes
Like previous Alpha releases, quite a bit of refactoring work has been completed and this process is still ongoing. In particular, effort has been put into making .NET interoperability easier for language implementers on the DLR.
The –X:Interpret mode flag, previously named –X:FastEval, is the biggest change found in this release When you utilize this flag IronPython interprets the DLR AST directly rather than compiling it into IL and down to machine code. This makes the compilation process much faster while slowing down the execution speed of the resulting code. This is a particularly good tradeoff for code that will only be executed once which explains its default usage by the exec and eval functions.
-X:PreferComDispatch enables direct support for IDispatch COM objects, and includes support for indexers and output parameters in IDispatch-based calls. This will improve IronPython’s integration with IDispatch-based COM APIs such as in Microsoft Office.
Some of the notable bug fixes included in this release are:
• iter is now available for all iterable .NET objects with the exception of System.String (CPython’s string type does not support this)
• isinstance now works on interfaces
• fixed null reference exception when attempting to read a write-only (.NET) property
• fixed invalid IL generated for Python code similar to ‘System.IComparable.CompareTo(1,1)’,
Note: Again due to dependencies upon APIs that are not present in Silverlight 1.1 Alpha (released at MIX) you won’t be able to re-build this release for use with Silverlight. As both products stabilize more we expect better compatibility between releases.