F# 1.9.1.8 Released!

[ Note: An update to this release has been announced: see version 1.9.1.9 at blogs.msdn.com/dsyme/archive/2007/05/06/f-1-9-1-9-available-currently-msi-only-includes-overloaded-numeric-conversion-functions-and-checked-arithmetic.aspx ]

I am very pleased to announce that F# 1.9.1 is now available for download. This is a major release for us, a first step toward F# 2.0, and incorporating two exiciting new features: Active Patterns and Implicit Class Construction.

The release is not yet the default download on research.microsoft.com/fsharp, but you can get it at:

1.9.1.9: research.microsoft.com/research/downloads/details/c8d270ce-dc93-4b82-8125-2c57036520b3/details.aspx

1.9.1.8: research.microsoft.com/research/downloads/details/b46c7032-149c-4da3-a027-7768210a158d/details.aspx

[ Note: we've had one report of an installation issue on Windows XP, and one on Windows Vista. If you have a problem try installing the VC runtime libraries www.microsoft.com/downloads/details.aspx?FamilyID=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en
Please let us know if you have problems, by emailing us at "fsbugs at microsoft dot com". ]

I've posted the full release notes in another blog entry, and a draft paper on active patterns is now also available. The highlights in this release are:

Active Patterns.  Active patterns give a form of extensible pattern matching on abstract values. F# active patterns allow you to pattern match against .NET object values such as XML, System.Type values and LINQ Expression trees. In this redesigned version they become an official part of the language and some novel additions give a lightweight and non-intrusive mechanism to both partial patterns, parameterized patterns and "complete" decompositions (views) of types.

Implicit Class Construction.  This lovely feature makes writing classes considerably more succinct and helps to further bridge the gap between type-inferred functional programming and object-oriented programming.

Simpler Quotation Library.  The F# Quotation library has been redesigned to use active patterns and to have a much simpler model of types, and as such is now much more powerful.  F# Quotations are used to interoperate with LINQ, Accelerator and other meta-programming components.

Methods as first-class values.  You can now use .NET methods as functions in many situations, e.g. "map File.ReadAllLines ["a.txt"; "b.txt"]"

Attributes for C Interoperability.   StructLayout, FieldLayout etc. now supported

Better IntelliSense.  IntelliSense on more expressions, more information in ToolTips.

Syntactic improvements, Bug fixes, Library additions and much more.  A whole bunch of things here - more detail in the release notes

Since I preannounced the release we've been stabilizing it with our internal users - many thanks to all those who tried out earlier versions of the release and submitted bug reports.

Happy coding!

Don