This project is read-only.
Today we’re excited to announce the release of the Dynamic Language Runtime (DLR) as a separate Codeplex project. This release is a beta because we want our v0.9 to be the same sources and bits as IronPython v2.0. Due to a couple of good customer bugs, they wanted to release v2 RC2 in NOV and hopefully RTW v2 in DEC.

The DLR project provides one-stop shopping for folks who want to: 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 ( ). 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 APIs).

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 RC2 release. We will have synchronized release for major milestones, but not for the smaller developmental releases. For IronRuby we will have the synchronized release during the final V0.9 release.

If you want to read some documents without downloading sources or bits, go to Docs and specs :
  • dlr-overview.doc
  • sites-binders-dyn-objs-spec.doc
  • expr-tree-spec.doc
  • dlr-spec-hosting.doc

Last edited Nov 27, 2008 at 12:12 AM by Sesh, version 1


willdean Nov 28, 2008 at 10:58 PM 
The ironpython link is bust...