[IronPython] 1.0 Beta 1 is out now!

Jim Hugunin jimhug at exchange.microsoft.com
Sat Dec 31 03:02:51 CET 2005

We've just released the first beta of IronPython 1.0 and are entering the home stretch to a 1.0 final build.  This build includes many bug fixes for issues reported to us by the community as well as many changes to get better compatibility with CPython 2.4.  With this build we've addressed the majority of major design issues for a 1.0 final.  We're not sure that you'll agree with all of our answers, so pick it up and let us know what you think.

You can download this release here:

The fact that we've released a beta isn't going to change this project's frequent release schedule.  You should expect to continue to see releases every 3 weeks for the near future.  We're not going to commit to any fixed number of beta releases, but I can tell you that I'm a huge fan of single digit numbers and a beta 10 release would be unbelievably ugly to have to make.

The major open design issues that we resolved for this release include:
* Moved LoadAssembly* functions out of sys into new clr module
    See "Loading .NET libraries" in the shipped tutorial for more info
* New exception system for better CPython compatibility AND CLI interoperability
    We've already sent email about this change and expect the discussion to
    continue now that you have real bits to play with
* CLI methods are not exposed on Python types unless the accessing module uses "import clr"
    We owe you an email on this one in the next couple of days
* Fixed many memory leaks when using eval/exec by using DynamicMethods
    This should make PythonEngine a much better script host

We've also made some significant strides for cleanup of the release:
* Updated the Avalon tutorial for the December CTP
* Source code layout has been refactored
* Fixed numerous PEVerification errors for generated code

Finally, we're getting really strong on CPython compatibility:
* From __future__ import division support
* Support for -i command line option
* More passing tests: test_warnings, test_opcodes, test_grammer, test_types          

We'd like to thank everyone in the community for your bug reports and suggestions that helped make this a better release: Andrew Pliszka, Edward K. Ream, glchapman, grizlupo, Jacques de Hooge, Jan Stranik, Keith Farmer, Kirk Olynyk, Koly, Michael Shilman, Nicholas Jacobson, opin2 hu, opindd, Paul Viola, Sanghyeon Seo, shyamg, Stanislas Pinte, Sumit Basu, Szymon Kobalczyk, William Reade, ZZZZzzzz4   

Thanks and keep in touch,
The IronPython Team

More complete list of changes and bug fixes:

Fixed generators causing PEVerification errors
Fixed list.index (regression in 0.9.6)
Marked IronPythonConsole.exe's Main w/ STAThread, -X:MTA supported for running in MTA
Many changes to the implementation of locals()
Improved locals() support for execfile, eval, vars & dir
Enabled access to protected members 
Debug builds of IronPython verify assemblies after running
Conversions between str classes & str
Fixes for intern, iter, min, sum, dir and eval
Fix for operator.isMappingType
Dict __getitem__ method can now be overridden by derived types
None can now be converted to a string
Can override .NET virtual properties
Range support for big integers
No longer convert from float to int automatically
Parsing integers throws on base > 36
Execfile fixes
Pow, readline, import fixes
Simple buffer class support
chr(x) now throws if x > 0xFF
coerce supported for str->float transition
tokenizer eats Unicode header
compile validates flags
execfile throws correct error if bogus file / directory passed
ord fixed to work on strings and chars only
__init__ and __new__ are now optimized
PythonCompiler fixes & enhancements
Various built-in function corner cases fixed
Fix branch out of try block
Fixed usage of user defined locals function when calling exec
Fixed generators not being able to yield from an except block
Fixed float('5\0') not throwing
Fixed _ getting defined in locals dictionary
Fixed Unicode console display and Unicode file bugs
Recursive list comparison now throws
Fixed generators not being able to yield from finally block
Fixed generation of pdbs from compiler
Fixed string representation of NoneType
Expandtas now accepts n<=0
All generators now share a common type
Fixed non-ascii identifiers
Math precision improvements
New methods on float type
New flag for accessing private members
Conversions from tuples/lists to CLR arrays, lists, ArrayLists
Method dispatch prefers M(int) over M(int, params int[])
Comparing enum to None no longer throws
Functions now compare to themselves property
Fixed space-padded numeric string formatting
Added a public API to re-use pre-compiled scripts
Added support for getdefaultencoding / setdefaultencoding
Print the correct type name for str(instance)
Integer class renamed BigInteger.
Engine debug mode is off by default
CLR Namespaces & Python namespaces can now overlap and be combined

More information about the Ironpython-users mailing list