v 0.9 release notes
Today we’re excited to announce the final v0.9 release of the Dynamic Language Runtime (DLR). The DLR project provides one-stop shopping for folks who want to:
*implement a language on .NET using the DLR
*add dynamic features to their existing language like C#’s ‘dynamic’ (http://code.msdn.microsoft.com/download?ProjectName=csharpfuture&DownloadId=3550
*add scripting to their applications.
*create .NET libraries with dynamic objects
This Codeplex project includes the DLR sources as well as sources for IronPython, IronRuby, and samples (such as ToyScript). This is a classic open source version 0.9 release with high quality code through much of the system. We’re shipping some of this in
the .NET 4.0 release coming up. Some parts are still open to design changes as we solidify those parts for post .NET 4.0, and we’ll continue to add more docs and samples. We will have coordinated releases or sync points across IronPython and IronRuby sites
for major releases so that if you’re not pulling from the DLR project, you can still see which sources or releases are consistent across our projects.
Jim Hugunin did a great talk at PDC 08 on DLR architecture, concepts, and coding with the .NET 4.0 functionality (http://channel9.msdn.com/pdc2008/TL10/
). In his talk, he also outlines what’s in .NET 4.0:
*fast dynamic dispatch with polymorphic inline caching
*dynamic object interoperability across languages and libraries (including C# ‘dynamic’ consuming IronPython and IronRuby objects naturally, including any language whose objects participate in the DLR’s dynamic object protocol)
*support for library authors to easily make their model objects consumable with nice looking and lightweight code in languages that support the DLR dynamic object protocol (for example, with C#’s ‘dynamic’, you can write xml.Customer.Name instead of xml.GetChild(“Customer”).GetChild(“Name”)
*ability to mix binding logic from various languages and library objects in a single dynamic call site cache
*Expression Trees v2 with support for control flow, assignments, etc.
*COM IDispatch binding as DLR dynamic objects
The following highlights the support shipping only on Codeplex until a future .NET release:
*common hosting model for languages built on or supporting the DLR hosting model
*helpers such as a default .NET binder, complex numbers, tuples
*more Expression Tree support, such as globals access in hosted scenarios and iterator/generator functions.
All the code is available for what the DLR Team is shipping in .NET 4.0. Furthermore, we’re releasing all the code for LINQ Expression Trees v1 since the DLR merged its ASTs with LINQ trees. Some of you have noticed this code has been on the IronPython site
for a couple of months now. We will continue indefinitely shipping all of our code open source through .NET 4.0 shipping and future releases of .NET as we move more and more of the DLR into .NET (for example, the common hosting APIs and language implementer
It is worth noting that the sources and binaries in the .zip files are circa mid-October, and the daily source tree pushes have several small but pervasive cleanups to the API (name changes), perf improvements, and so on. We’re busy here solidifying final design
changes for the DLR parts going into .NET 4.0. We wanted to have our release match IronPython 2.0, and they had to lock down sources before we did. The documents in the release speak to the latest sources. Some of the documents are our internal working specs,
but in general we prefer you know where we’re planning to end up with the code. There are no significant cognitive changes in the APIs, so you’ll easily map from the docs to the actual code.
For a consistent IronPython release, go to
and get their v2.0 release. For IronRuby consistent sources, go to SVN URL
or for zip files,
If you want to read some documents without downloading sources or bits, go to
Docs and specs