[IronPython] DLR Codeplex Project Goes Live!

Bill Chiles billchi at microsoft.com
Thu Nov 27 08:37:47 CET 2008

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:
*       implement a language on .NET using the DLR
*       add dynamic features to their existing language like C#'s 'dynamic' (http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?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 APIs).  We have no plan in place at this time for source take back from the community.

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 www.codeplex.com/ironpython<http://www.codeplex.com/ironpython> and get their v2.0 RC2.  We won't normally have consistent release across all projects for RCs, betas, etc., and we don't have one for IronRuby today.  When we RTW IPy v2 and DLR v0.9 shortly, we'll have consistent releases for all three projects.

If you want to read some documents without downloading sources or bits, go to http://www.codeplex.com/dlr/Wiki/View.aspx?title=Docs%20and%20specs :
*       dlr-overview.doc
*       sites-binders-dyn-objs-spec.doc
*       expr-tree-spec.doc
*       dlr-spec-hosting.doc

There is a discussion list at http://www.codeplex.com/dlr/Thread/List.aspx (click on the "get email notifications" link).  All mail there goes to dlr at microsoft.com<mailto:dlr at microsoft.com> which has all the folks working on the DLR and our languages on it.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20081126/16dc6ffe/attachment.html>

More information about the Ironpython-users mailing list