| Current status |
 |
Beta |
 |
 |
| Created date |
03/22/2005 |
| Audience |
Beginner, Intermediate, Advanced |
| License |
View license |
| Language |
C# |
| Technology |
|
| Access |
 |
Public |
IronPython is the code name of the new Implementation Running on .NET of the Python programming language. It supports an interactive interpreter with fully dynamic compilation. It is well integrated with the rest of the framework and makes all .NET libraries easily available to Python programmers.
|
|
|
IronPython 1.0 Beta 5 Released
(03/30/2006
More details)
Hello IronPython Community,
We have just released IronPython 1.0 Beta 5. This release focuses primarily on improving IronPython’s performance. In this area we’ve reduced working set and startup type by optimizing methods on-demand, improved the speed of attribute access, reduced the overhead in many basic operations (e.g. equality checks and uninitialized checks for local variables), and done other various fine tuning. As usual there are also a good number of bug fixes (primarily focused on community reported bugs). There was also one significant API change in the .NET <-> Python interoperability area:
If we have the following definitions:
public class Foo {
public void Bar(int arg) {}
public void Bar(int arg) {}
}
We can call the non-generic version with any of:
foo.Bar(1)
foo.Bar.__overloads__[int](1)
And the generic one with any of:
foo.Bar[str](1)
foo.Bar.__overloads__[int][str](1)
foo.Bar[str].__overloads__[int](1)
This is different from previous versions of IronPython where indexing was used to provide access to generic methods.
A more complete list of changes follows at the end.
You can download the release from: https://www.microsoft.com/downloads/details.aspx?FamilyID=e4058d5f-49ec-47cb-899e-c4f781e6648f&displaylang;=en
We'd like to thank everyone in the community for your bug reports and suggestions that helped make this a better release: Aaronm, Anthony Tarlano, Eugene Rosenzweig, Shigeru Hemmi, JoeSox, John Platt, Klaus Müller, Lewis Franklin, Pete Sheill, Rusty Deschenes, and Sanghyeon Seo.
Thanks and keep in touch,
The IronPython Team
More complete list of changes and bug fixes:
============================================
ReflectOptimize methods on-demand
ReflectOptimize hasattr/getattr/setattr and other context aware methods
Improve BigInteger parsing performance
abs(True) and abs(False) fixed to match CPython behavior
os(‘stat’) sets file modes properly now
Bugfix: Setting variables in nt.environ doesn’t propagate to environment
Bugfix: Improve constructing files from streams
ReflectOptimizer inlines type checks for non-convertible types (ICallerContext & UserType)
Optimize uses of Ops.IsTrue(Ops.Equal(… )) to Ops.EqualRetBool to avoid boxing & conversions
Support binding to generic .NET methods and move manual overload resolution __overloads__ dictionary
Use data flow analysis to avoid Uninitialized checks where possible in locals
Optimize generator.next calls to get good performance
Bugfix: IronPython CodeDom cannot round trip 2 buttons on a form
Improve performance of constructing commonly used built-in types
FunctionEnvironment performance improvements
Minor tweaks to casting orders
Avoid TLS where possible in repr
Bugfix: from __future__ import division doesn’t flow into eval in some cases
Bugfix: hasattr raises
Bugfix: need to implement nt.startfile
Bugfix: subclassing Tuple not working
Bugfix: fix resource definitions in generated files
Large namespaces use binary search to find attributes
Bugfix: -i option doesn’t go interactive when exception is raised
SuperConsole now supports Ctrl_C handling as well as basic console
Bugfix: ‘%02d’ % 12 appends a leading zero
Attribute access re-written for significant performance gains
Bugfix: nt module doesn’t implement chdir
ReflectedPackage’s delay load all type loads
Bugfix: atxexit doesn’t work
Bugfix: IP: Cannot use a class from IronPython generated class libraries
Bugfix: Cannot delete variable referenced in nested scope
Bugfix: Support special method names (__int__, __pos__, etc…)
Bugfix: Support for generic & non-generic types of the same name in same namespace
Bugfix: __doc__ strings should reflect how we mangle calling conventions
Bugfix: Update makefiles to include new assembly references

IronPython 1.0 Beta 4 Released
(03/09/2006
More details)
Hello IronPython Community,
We have just released IronPython 1.0 Beta 4. This is yet another release focusing primarily on fixing bugs. Since the beta 3 release we’ve cut our active number of bugs in half. Unfortunately we didn’t get to review the PythonEngine APIs in this release but will be getting this done for the next beta.
Although major changes are few in this release some of the bigger changes include:
Fix beta 3 assembly loading bug
Auto-indentation support for the super console
Support pep-263 file encodings
AST visitor changes (*)
A more complete list of changes follows at the end.
You can download the release from: https://www.microsoft.com/downloads/details.aspx?FamilyID=ab942d78-b3df-428d-a2e7-f80949607c1a&displaylang;=en
We'd like to thank everyone in the community for your bug reports and suggestions that helped make this a better release: Alex Martelli, Anthony Tarlano, Chee Meng, Erin Renshaw, Giles Thomas, Greg Lee, grizupo, J. Merrill, Jeff Griffiths, Jon Kale, minwei, Neville Bagnall, Nicholas Jacobson, Paparipote, Richard Hsu, Richard Bothne, and Sanghyeon Seo.
Thanks and keep in touch,
The IronPython Team
(*) The AST visitor changes in IronPython 1.0 Beta 4 are not compatible with the IronPython Visual Studio integration released in the March CTP of the Visual Studio SDK. Some code changes in the VS integration sample are required to use it with the latest IronPython 1.0 Beta 4.
More complete list of changes and bug fixes:
============================================
Bugfix: Infinite recursion in import code
Traceback support
Support for methods only implemented via explicit interface implementation
Bugfix: SubClass check throws ArgumentNull Exception
Bugfix: Slice is (incorrectly) hashable WAS: dict[:] showing KeyError instead of TypeError
Bugfix: tuple unpacking issues
Bugfix: Calling __str__ on a Python exception class object causes an IndexError
Bugfix: Trying to set methods on "built-in" classes fails silently
Bugfix: Inheriting from an interface causes peverify warnings
Bugfix: raise "foo" raises an exception, but is eaten by top-level rather than reported
Bugfix: eval - locals can be any mapping object (formerly required to be a dictionary)
Bugfix: Calling exc_info when there is no exception in the current stack causes a NullRef, rather than returning (None, None, None)
Bugfix: Index out of bounds exception when importing minidom
Bugfix: sequence.index(None) and sequence.count(None) should throw Type error instead of ArgNullExcep
Bugfix: "abc".find(None) throws SystemError: "Object reference not set to an instance of an object."
Bugfix: "except , " statement does not capture exception data; is just a copy of the exception
Bugfix: sgmllib running on tutorial.htm throws
Bugfix: Regular expressions: RE_Pattern instance method match(text, pos, endpos) not implemented
Bugfix: multiline string does not return to primary interpreter prompt
Bugfix: re.split with maxcount != 0 differs from specification
Bugfix: Old class comparisons give wrong results, same as User Type
Bugfix: IronPython won't call custom comparison operators on .NET types
Bugfix: IronPython creates instance of class with __module__ set to contents of __name__ rather than the module name
Bugfix: IP uses wrong slot to generate classe's module name
Support for constructing Python file from .NET Stream
Bugfix: Subclassing str & creating subclass fails
Bugfix: Fix call to System.Double.ToString(1.0, 'f') (ReflectedOps types not storing both Python & non-Python names)
Bugfix: -u command line option
Bugfix: For an old-style class C, str(C) != C.__module__ + '.' + C.__main__
Bugfix: SyntaxError raised when a function defined to take kwargs is called with the name of the kwargs parameter as one of the keyword-specified argument
Bugfix: Better formatting for System.Single
Bugfix: Improve string formatting of floats for better compat with CPython
Bugfix: sys.argv doesn't include executed python script
Bugfix: IronPython builtin f.read() functionality differs from CPython builtin f.read() functionality
Bugfix: CPython/IronPython discrepancy when comparing strings
Bugfix: +=, ... also bind locals, fix binder
Bugfix: CPython/IronPython discrepancy in behavior with respect to power operation
Bugfix: ComplexOps.FloorDivide just does ordinary division
Bugfix: Make PythonFile more robust WAS: sys.__stdin__.write("blah\n") causing NullReferenceException in IronPython
Bugfix: Opening a file for writing and then attempting to read before closing the file causes a NullReferenceException
Bugfix: Implement -c command line argument
Bugfix: Add ability to compiler to generate 32 bit or 64 bit assemblies
Bugfix: Fix compiler resource support
Bugfix: from __future__ imports must occur at the beginning of the file, but can after the comments
Bugfix: eval failed to find local name
Bugfix: multiline string can't have blank lines
Bugfix: better error message for functions with default arguments
Bugfix: buffer() throws exception with message referring to method "ctor" instead of the expected "buffer"
Bugfix: Encoding/Decoding tests in tests_str.py disabled
Bugfix: In a Python subclass of a .NET class, inherited (but not overriden) methods are not shown as attributes of either class or instance
Bugfix: Finish time module (day of year / week of year custom formatting)
Bugfix: @accepts, @returns decorators not yet defined in clr module
Bugfix: Can't inherit from interfaces with properties
Bugfix: unicode(xxx ','raw-unicode-escape') issue
Bugfix: The error message associated with incorrect usage of constructors of builtin types are confusing
Bugfix: Method dispatch: skip generic method when bindmethod
Bugfix: Investigate why CPython throws a syntax error for a compile statement that IronPython parses correctly
Bugfix: NoneType arguments to coerce() causing unexpected SystemErrors
Bugfix: Stack overflow adding reference to System.Xml
Bugfix: re.compile does not accept "\\_" as a valid escape sequence
Bugfix: re module - difference result of not matched group
Bugfix: Interactive console not parsing certain 'if' statements correctly
Implement -E command line parameter
Implement -OO command line parameter
Implement -S command line parameter
Implement -t command line parameter
Implement -V command line parameter
Implement '-' command line parameter
Bugfix: Pay customdict, frame, env refactoring debt
Bugfix: Default parameters are not available for functions generated as DynamicMethod
Bugfix: Method dispatch: the story of None as parameter

IronPython 1.0 Beta 3 Released
(02/15/2006
More details)
Hello IronPython Community,
We have just released IronPython 1.0 Beta 3. This release is primarily a bug fix release as we drive towards IronPython 1.0. Unfortunately we didn’t get to review the PythonEngine APIs in this release but will be getting this done for the next beta.
We also continue to work on improving CLR and Python interop. In this release we’ve added support for an assembly path (clr.Path) for assembly dependency resolution. If you’re currently using clr.AddReferenceToFile(‘…’) you’ll need to modify these calls to update the path and then add a reference without a full path (this will ensure dependencies get resolved in an orderly fashion). We’ve also improved our array support, adding both slicing operations for arrays and a new array creation syntax: System.Array[int]((2,3,4,5)) will create an integer array with the values 2,3,4 and 5.
Finally we continue to advance standard Python compatibility with the addition of a few new built-in modules: struct, codecs, and marshal. These are some of the most-requested modules from the community.
You can download the release from: https://www.microsoft.com/downloads/details.aspx?FamilyId=F22E51E5-B82E-4A54-9CCC-3418E0BF5639&displaylang;=en
We'd like to thank everyone in the community for your bug reports and suggestions that helped make this a better release: allenwb, Flexibal, Giles Thomas, glchapman, Hector Miuler Malpica Gallegos, Shigeru Hemmi, Jesse Kaplan, John Platt, Matt Beckuis, Michael Shilman, Michael Twomey, Mike Hostetler, mrwizard82d1, Nicholas Jacobson, Paparipote, Ravi Terala, Sanghyeon Seo, Stanpinte, Thomas, and Vargaz.
Thanks and keep in touch,
The IronPython Team
More complete list of changes and bug fixes:
============================================
Python CodeDom generator, parser, and compiler implemented
Bugfix: string.split() throws incorrect exception
Bugfix: Compiled module not initialized properly when imported
Resource support for the compiler
Bugfix: Compiler throw on invalid syntax
Many parser fixes for handling invalid syntax
Improved test support for running tests in multiple modes
Bugfix: Exception.args cannot be accessed from Python code
Bugfix: sys.exc_info()[1] in except block yields CLR exception instance, not Python exception instance
Bugfix: Data from exception does not capture all arguments
Bugfix: sys is missing sys.byteorder
Built-in function enhancements
Bugfix: Ctrl-C support in Console
Bugfix: __str__ not working on new style classes
Bugfix: implement –x command line parameter
Bugfix: Do not generate EXEs and PDBs as by-products by default (-X:SaveAssemblies overrides)
Bugfix: Meta-classes not doing the right thing in some cases
Bugfix: RE_Pattern.finditer() requires optional arguments
Bugfix: re.groupindex() returns non-empty dictionary even w/ no symbol groups
Bugfix: Context not flowing to compiled code when executed with eval
Bugfix: Null reference exception in PythonEngine.DumpException
Bugfix: sys.LoadAssemblyFromFile() should search sys.path for the specified assembly (searches clr.Path)
Bugfix: Dynamic overloading of ReflectedMethod’s is broken
Bugfix: Displaying a multi-dimensional array with lower-bounds is broken
Bugfix: Conflict between IList and overloaded indexers
Bugfix: list w/ a key isn’t a stable sort
Bugfix: built-in functions shouldn’t ever be bound
Bugfix: ReflectOptimizer can now properly distinguish between methods & static functions
Bugfix: Finish cleanup of caller context changes
Bugfix: typo in lambda
Bugfix: NewTypeMaker single object array params may have adverse affects on keyword / params args
Bugfix: Inheriting from built-in type damages super type
Bugfix: MakeNew collisions resulting in unverifiable assemblies w/ NewTypeMaker
Bugfix: Python class subclassing .NET class: constructor weirdness?
Tutorial includes information on creating events from Python
Bugfix: Eval still leaks for many corner-cases
Bugfix: problems with exec
Bugfix: exec doesn’t use proper environment in a class def
Bugfix: Unable to remove event handlers completely sometimes
Bugfix: List comparison fails with class instances
Bugfix: Display floats w/ lots of precision correctly
Bugfix: Import __main__ raises ImportError
Bugfix: Implement _codecs built-in module
Bugfix: Precision field not used with string-formatting codes
Bugfix: Can’t access globals from inside exec running in the class body or function
Bugfix: String subclass test in string_tests.py is disabled
Bugfix: Should be able to use a CLR Hashtable or Dictionary<> to provide keyword bindings of arguments using the ** operator
Bugfix: vars() -- TypeError: vars() argument must have __dict__ attribute
Bugfix: When keyword argument and unpacking argument lists together...
Bugfix: For functions of arity >= 6, called with wrong number of arguments, the TypeError reports the actual number incorrectly
Bugfix: Iron Python Exceptions need to be marked serializable
Bugfix: list of lambdas only evaluates first expression
Bugfix: ReflectedProperty.__set__ does not check for setter==null before checking setter.IsStatic
Bugfix: Support mapping key in string formatting operation
Bugfix: Equality comparison for slices is broken

IronPython Mailing List
(03/30/2005
More details)
IronPython issues can also be discussed on the existing IronPython mailing list. To subscribe to the mainling list or for access to the mailing list archives, go to: https://lists.ironpython.com/listinfo.cgi/users-ironpython.com

News archive...

|
|
|
|
|
[Printer friendly version]
© Copyright 2006 Microsoft Corporation. All Rights Reserved.
Terms of Use
|
Privacy Statement
|
Code of Conduct
|
About the team
|
Contact Us
|
 |
|