Friday, October 24, 2008

IronPython 2 RC1 Released

IronPython 2.0 Release Candidate 1 has just been released. IronPython 2 is the version of IronPython that is built on the Dynamic Language Runtime, and targets Python 2.5.

Along with the new release candidate the team notes: If no major issues with the RC are reported, we hope to ship the final 2.0 release in around a month’s time. Anyone planning to move to 2.0 please try the RC and let us know of any issues you find.
As well as fixing around 40 bugs (making more than 500 bug reports that have been closed since IronPython 2 went into alpha), there are a few new things in this release.

Firstly, the MSI installer now has an option to ngen (pre-JIT) the installed binaries. Ngen’ing the dlls gives a significant startup performance boost. The option is turned off by default but if no issues are reported, it will be enabled by default in a future release.

The last couple of betas of IronPython 2 have included the Python 2.5 standard library in the msi installer - making the standard library available to your IronPython code without having to do a separate install or set 'IRONPYTHONPATH'. In this release standard library modules that can't be used from IronPython are not included (ones that rely on C extension modules). There is a list of the excluded modules and packages, along with the reasons for their exclusion, at: Python Standard Library Not Included in the msi Installer

This release also attempts to solve the name collisions with 'ExtensionAttribute' in .NET 3.5. More about that in a separate entry.

Check out the release notes for a full list of the bugfixes in this release. One of the fixes that we are particularly pleased with at Resolver Systems is that with 'clr.CompileModules' it is now possible to compile pure Python packages into binary assemblies (or executables). We have an experimental binary distribution of Resolver One that runs on IronPython 2 and our source code tree consisting of hundreds of Python modules compiles down to a handful of assemblies. Like Python 'pyc' files these import faster as the parsing and compiling is already done. As a nice bonus the generated assemblies can also be ngen'd for even faster importing.

The experimental 'Resolver One on IronPython 2' can also use numpy through our IronClad project, allowing you to do interesting matrix calculations with huge amounts of data inside a spreadsheet. As the performance profile of IronPython 2 is very different, and Resolver One is heavily optimised for IronPython 1, it will be sometime before you see it in a release - but be sure I'll post news here as it starts to happen.

This release still includes the example DLR language 'ToyScript', but now in a separate zipfile of its own. When IronPython 2.0 final is released, a new home for ToyScript will need to be found.


  1. Your blog is very nice...
    visit my blog example

  2. The answer is probably no, but can you use the C struct package with IronPython ?

    Do you have an OpenGL module ?

  3. I believe that the '_struct' module is implemented as a built-in in IronPython 2 - so you can use struct.

    There is at least one good OpenGL library for .NET that you can use from IronPython, but I'm afraid I can't recall it. There is probably a link in the graphics section of this site, or you could ask on the IronPython mailing list.

  4. Look at OpenTK or Tao for OpenGL.


Note: only a member of this blog may post a comment.