Right in time for the first F# in Education Workshop in Boston, I’m very glad to announce that the long-awaited source code drop for an F# 2.0 compiler and core library are now available, as part of the F# PowerPack

  

This release reinforces the commitment Microsoft are making to F#, including F# in Visual Studio. As explained in my PDC10 lecture The Future of F#, we have a clear vision for F#, indeed a ground-breaking one, and are investing in it, and we are deeply committed to shipping F# "in the box". That is the real focus of F#: a quality experience of functional programming in Visual Studio, and that is what our team are driven to achieve and what we work for.

 

To augment this, we are glad to be able to provide a compiler/library source drop. From an engineering perspective, we're doing this for one major reason: tool development - a source drop enables the F# community to develop and contribute a range of tools to the F# and Visual Studio ecosystem. These could be UI tools such as code visualizers, or editing tools such as refactorings, or new ways of executing, hosting or interpreting F# code, or indeed whole new F# editing experiences. There are also some secondary reasons for the source drop, in particular we understand the role that open source versions of languages can play in education and research circles, and as a result can give extra reach to a Microsoft-sponsored language technology. F# in particular has attracted interest from some of these communities, with keynotes at Eclipse Summit Europe, Splash/OOPSLA, JAOO and QCon, and numerous invitations to talk at universities.

 

This source code is under the Apache 2.0 license and is published as part of the F# PowerPack codeplex project, which is now also under the Apache 2.0 license. The F# PowerPack now includes libraries, tools and the compiler/library source code drops.

 

I’d like to take a moment to explain the F# team’s approach to this. Firstly, the source for the F# compiler in our MSI/CTP releases has been available for some time, in the releases themselves, so in that sense there’s not much new in this release. Secondly, we’ve always made sure we have a free download binary release of F# available, and will continue to do that, and that should still be the main way you “get” a release of F#. However, we’ve long discussed making compiler+library source available in a different way.  

 

After some discussion, we’ve decided to do this via a “code drop” model, where we make available versions of the compiler+library code logically matching each release of the F# language itself. In the F# team, releases of F# are matched to coincide with releases of Visual Studio itself: using this release cadence simplifies our development processes and gives clarity to language versioning. This means the code we are making available today is for the F# 2.0 language, released in April 2010, including the small changes for the MSI tools updates through November 2010.  We expect to make matching code drops if/when service pack(s) of Visual Studio 2010 are released, though sometimes it may take a while for us to get that out the door.

 

As this release is a code drop, it does not contain binaries. This means you still get F# from fsharp.net, so the place to “get” F# doesn’t change with this release. 

  • To get or learn F# 2.0, or learn why F# is important, go to fsharp.net 
  • To use F# 2.0 in Visual Studio 2008 or Visual Studio 2010, including with the freely available Visual Studio 2010 Shell go to fsharp.net
  • To get the compiler+library source code drop, go to the F# PowerPack and look for directory compiler.

Enjoy!

Don, for the F# team