[IronPython] IronPython 1.0 Beta 2 Released

Martin Maly Martin.Maly at microsoft.com
Wed Jan 25 16:17:44 PST 2006


Hello IronPython Community,

We have just released IronPython 1.0 Beta 2. The focus of this release was fixing bugs that you found and reported (big thanks!), cleanup and re-factoring of the code base and we also made significant progress towards cleaning up FxCop warnings.

You can download the release from:

http://www.microsoft.com/downloads/details.aspx?FamilyId=910F423F-BBD2-4E52-BAB6-AA21592EDC3B&displaylang=en

We responded to the major bugs you discovered with the interactive console in the beta 1 release by dramatically improving our test coverage for this scenario. We now run our test suite both in a normal mode and in a mode that simulates the interactive console. This should prevent future regressions that only appear at the console.

Finally we also continue to improve compatibility with CPython. IronPython now passes all of test_types, test_format, and test_time in addition to the the 28 standard regressions tests that we passed without modifications in beta 1.

We'd like to thank everyone in the community for your bug reports and suggestions that helped make this a better release: Brandon Furtwangler, Catalin Lungu, David Richter, Erin Renshaw, Greg Chapman, Hector Miuler Malpica Gallegos, J. Merrill, jdehooge, Jeff Griffiths, Jonathan Jacobs, Nicholas Jacobson, Oonuki Makoto, paparipote, Paul Viola, Sanghyeon Seo, Steven Drucker, Sumit Basu and Szymon Kobalczyk

Thanks and keep in touch, 
The IronPython Team


More complete list of changes and bug fixes:
============================================

FxCop cleanup ? a large amount of the code base has been made FxCop clean, a large amount of work still remains
Improved internal API surface by making more things private that should be

Perf Improvments for nsieve
Bug fix: pow was missing
Bug fix: eval(?1, 2, 3, ?) wasn?t returning a tuple
Bug fix: compile(?x = ?, ?, ?eval?) not returning syntax error
Bug fix: error in site.py doesn?t get reported
Generators no longer use exceptions for flow control
Error reporting cleanup
Bug fix: Failure to load a referenced assembly will now throw an exception 
% string formatting is complete & passes all Python tests
Closure implementation vastly improved
re module more robust to None inputs
strings can now be multiplied by bools
Bug fix: OldClass that defines __getattr__ now works properly
SystemException now properly maps to StandardException, can now catch Python exceptions using CLR name
Bug fix: type and None now both have __class__ attributes
Added auto-conversions to IDictionary<TKey,TValue>
Bug fix: exec handles bad input better
Bug fix: string formatter allows %d to be used with float values
Generators now use function environments
eval(expression) now raises a SyntaxError for statements
All of time module implemented except day of year / week of year custom formatting
Bugfix: exec x in y doesn?t work properly
Bugfix: del this_name_is_undefined raises different exceptions at console vs imports
Aliased reference support in clr module
Bugfix: Can?t import top-level class from .NET assembly
Code generator updates: Self-hosting on IronPython, generated code moved into their own files
Bugfix: exec(code, dict) is broken
Super console now inserts spaces when there?s no input
CustomDict, Module, Environment cleanup
Bugfix: Closures don?t initialize to Uninitialized
Bugfix: Floating point conversions didn?t handle subclasses of float
Bugfix: Comparison broken for subclasses of float
New fast path for calling overloads w/ different types but same number of arguments
Bugfix: For comparison via IPythonComparable, it wasn't true that   a < b   <==>   b > a
Bugfix: cannot reload sys module
Compile / Execute PythonEngine now allows access to _
Bugfix: clr.References formatting improved
Bugfix: No conversion from System.Collections.Generic.List`1[System.Type] to its self
Bugfix: IndexError thrown when trying to subclass twice from a CLR interface
Bugfix: os.path functions give wrong result on non-Windows platforms
Bugfix: func_code should include the line number of Python functions
Binder binds all names, including globals
Bugfix: Cannot execute generated EXEs
Improved property handling to match CPython 
Bugfix: Can?t call CLS instance method w/ keyword arguments
Bugfix: __r???__ method doesn?t get called if we can?t bind to __???__ operator
Bugfix: Binder binds incorrectly when global statement is in outer scope
Bugfix: caller context is now flowed to eval
Binder now binds all names before code gen
Pre-populating locals before code gen
Bugfix: changes to local variables are not affected in the locals() dictionary
locals() now uses environments
list.sort() is now stable and optimized to minimize comparisons
re module bug fix to now clear multi-line / dotall options.
Bufix: Oct and dir were missing PythonName attribute
A module?s __dict__ field is now always a Python Dict (or subclass), not a CLS dict
All tests now pass in Console mode
Dynamic methods used more to prevent leaks
Bugfix: Function f(*args) def'd in console, with two locals, raises a SystemError when accessing second local
Bugfix: Defining a function g which returns a function h (defined inside the body of g) causes a null reference exception at top-level in the console
Bugfix: Class defined in console shows unusual behaviour
Bugfix: IronPython kills CLR
Bugfix: Generators broken in the console
Bugfix: Python Engine: calling multiple python methods


More information about the users mailing list