Hello IronPython Community,
We have just released IronPython 2.0 Alpha 1. IronPython 2.0 will be the first release of IronPython built upon a common dynamic language runtime (DLR) as well as targeting version 2.5 of Python. These release notes list what is new in IronPython 2.0, a brief
overview of the DLR, and what to expect from the 2.0 release.
One major focus during this release will be further improving our conformance with CPython. We’ve already made several improvements, for example one is that our type system no longer contains a hierarchy of types: now type(type) is type. We have also fixed
a number of issues related to various statements such as imports and function definitions inside of exec or eval. There have also been a number of other small issues fixed that our users reported to us.
IronPython 2.0 will also be the first major release to support 2.5 out of the box. In IronPython 1.x, and in this initial alpha release, users must enable this with a command line switch. During the 2.0 release cycle we will flush out the remaining 2.5 features
and permanently enable this option. We will also start looking at supporting v2.6 features via command line switch and start some experimentation around the 3.0 features. In particular, we are excited about looking at the new bytes and string types as well
as formatting options that we believe will fit nicely with .NET.
IronPython 2.0 is also the first release built upon the Dynamic Language Runtime: a shared runtime for dynamic languages on .NET. The DLR both reduces the amount of work to create new dynamic languages on .NET enables rich interoperability between dynamic languages,
and provides a shared module for consuming those languages from applications. We are particularly excited about the ability to share code across dynamic languages enabling users to share libraries without worrying the particular language in which the library
is written. Over time, the DLR will expand and improve bringing language developers more benefits from this shared infrastructure. We also look forward to seeing a new era of programmable apps that can support a wide range of options for end-users.
When we started working on the DLR we initially used the IronPython v1.0 code base. From there we extracted the core concepts that were common to dynamic languages, generalized the concepts that were specific to Python, expanded the framework to provide rich
support for other dynamic languages, and exposed all of the languages via a common interface. Starting with IronPython 1.0 was an obvious choice because it had already captured many of the best practices for building dynamic languages on .NET and had done
a great job leveraging many of the underlying features of .NET. In IronPython 2.0 all of these best practices are expanded and implemented with an eye on maximizing forward compatibility with new features in .NET v3.5 such as LINQ and extension methods. Moreover,
the DLR exposes this functionality to the language implementer via a small set of core concepts that all dynamic language implementations can share.
One additional change in this release is that we’re moving to use the Microsoft Permissive License for IronPython 2.0. Our original release of IronPython predated the Microsoft Permissive License, and so we created a custom license specifically for Iron Python.
After releasing Iron Python, we created new Microsoft Shared Source licenses, including the Microsoft Permissive License, to facilitate and standardize source code licensing for appropriate Microsoft projects. We believe our users appreciate consistency in
licensing from Microsoft. Therefore, because we are now using the more modern Microsoft Permissive License where appropriate for similar current source code releases, we feel we should offer IronPython under the Microsoft Permissive License as well.
Note because this is an alpha release there is also some missing functionality that was formerly present in v1.0. This includes CodeDom support, the static compiler that produced .NET assemblies, support for creating strongly typed delegates to script code,
as well as a drastically changed hosting API. We will be bringing this functionality back to future releases in the IronPython 2.0 series as well many other improvements.
You can download IronPython v2.0 at:
2.0 Alpha 1
If you’d like more details about the DLR, Jim will be using his blog to post design notes as they are written over the next couple of weeks –