Hello IronPython Community,
I’m pleased to announce IronPython 2.0 Beta4. We have fixed around 50 bugs(~45 of them reported on Codeplex and ~5 reported internally). Apart from these bug fixes, the following are the highlights of this release:
- This release ships with a MSI installer that installs IronPython along with the Python Standard Libraries. It is now dual-licensed with IronPython shipping under MS-PL and the python standard library shipping under the Python Software Foundation license.
This means that existing python libraries are readily available after installation and makes for a better out-of-the-box experience of using existing CPython libraries. A zip file containing the binaries is still available as before.
- Static compilation of python files is now supported again and the pyc.py sample has been updated to use the newer version.
- IDispatch-based cominterop is now the default mode as opposed to generating interop assemblies for interacting with COM components. This is a change that might break some existing scripts. One can switch back to the old behavior by setting the environment
variable COREDLR_PreferComInteropAssembly. Read this blog for more details on this feature.
- Apart from the Silverlight binaries and Chiron, the templates and tools to create a barebones app are included as well. This is in the Silverlight\Script folder.
- Performance degrades that were reported in Beta 3 have been fixed.
- As mentioned previously in the mailing list, IronPython now requires .NET 2.0 SP1. This is so that the DLR can make use of some fixes that are present in .NET 2.0 SP1
The following Codeplex items have been closed since IronPython 2.0 Beta3:
- nt.popen(...) breaks where ... consists of cmd.exe commands
- globals().fromkeys(...) broken
- globals().Values enumerator broken
- Trivial: nt.tempnam("", None) broken
- Trivial: Remove exceptions.OverflowWarning
- New-style class dicts (dictproxy) cannot be used for C# methods with IDictionary parameters
- Negative: ipyw.exe run w/o args crashes
- 'dictproxy' object has no attribute 'copy'
- class.dict (dictproxy) doesn't support .get
- repr() of a UserList containing another userList is wrong
- NaN == NaN
- DBNull should implement nonzero that always returns false.
- IP implementation of _sha512 has extra module attributes
- Dir on textbox raises exception
- re.compile(...).match(...) does not permit certain integer pos/endpos keyword parameter values
- re.compile(...).match(...).groupdict() broken WRT to unnamed groups
- re.match(..., ...).regs is nearly always incorrect
- datetime.datetime.fromtimestamp() is not POSIX timestamp
- Trivial: Charset name
- datetime.datetime.isoformat() has no parameter
- nt.fstat(...) broken
- Python25: hash returning longs broken on old style classes WRT CPython 2.5
- Trivial: IronPython converts -0x80000000 to a long (should be int)
- -X:TabCompletion broken in IP2.0A1 WRT simple variable expansion
- import socket
- TypeError: staticmethod is not callable when overriding new in old+new derived type
- using the PropertyGrid class - SelectedObject issue
- new.classobj fails with "TypeError: bases items must be classes (got type)"
- dict(...) broken on new style class dictionaries (dictproxy)
- IronPython should not implement weakref.proxy.eq_
- nt.stat(someDirectory) is broken
- Trivial: Implement 'file(...).mode'
- Trivial: os.chmod followed by os.unlink fails
- os.umask does not exist
- Regular Expression incompatibility
- co_filename in code objects is None
- Trivial: help(clr.AddReference) not helpful
- tb_line member of Traceback objects is incorrect
- Valid regex under CPython will fail with IronPython
- time.timezone has different semantic than in cpython
- IronPython 2.0B2 cannot iterate over an IEnumerable returned from a C# method using yield
- Implement os.system (nt.system)
- cStringIO 1-arg .read() and .readlines() broken
- Trivial: id should return int or long, not Int64
We’d like to thank everyone in the community who reported these bugs: jdhardy, Wilberforce, Eloff, Sakesun Roykiattisak, Chuck Jacobs, haypo, eshaish, arman0, nivaldo, krosavcheg, Davy Mitchell, luntain, William Reade, tatwright, Christian Muirhead, sdahlbac,
Eric Wyler, dubnerm, Paulfelix, chadaustin and jjlee.
We’ve also closed these bugs that were reported internally:
- misc string related bugs from c-python25 test
- Trivial: Debug.Assert: locals() in the interactive mode
- Implement warnings for -Qwarn and -Qwarnall
- StackOverflowException when exec "a0==7" for Ironpython, but Cpython can work
- Helper stubs shown in Python stack traces
You can download IronPython 2.0 Beta 4 at: http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=14353
The IronPython Team
ToyScript, a small scripting language built on top of the DLR, is merely a DLR sample and not some new scripting language Microsoft has created. Also, ToyScript is not intended to be distributed with IronPython on a permanent basis.