F# 1.9.2.7 released!


[ Update: F# 1.9.3 has been posted, and we don’t expect any more 1.9.2 releases. ]


[ Update: the F# samples got dropped from this release – we’ll be fixing that this week ]


[ Update: Granville has just posted a blog entry on how to get this version installing on Orcas Beta2 ]


[ Update: F# 1.9.2.9  has been posted (MSI, ZIP). This one contains the samples.  ]


 


[ Update: Known issues:



  • installation on Orcas Beta 2 – see above for workaround

  • problems with “–exec” on F# 1.9.2.9 – fixed but not included in this release

  • problems with F# Interactive in Visual Studio on some localized machines – has been fixed and the fix will be in the next update

  • a minor problem compiling the Samples101 sample or any projects that use RESX files directly on the command line, see http://cs.hubfs.net/forums/thread/3613.aspx for workaround 

  • the ConcurrentLife sample is busted in the 1.9.2.9 release. It will be fixed in later releases. Thanks to Ted Neward for pointing this out ]

About 8 days ago I gave a presentation at the Microsoft Faculty Summit, rounding off a major trip to Redmond for the F# Cambridge team. Whenever we give a major series of talks we like to release the version of F# we used at the talks. So, we’ve released F# 1.9.2.7 in both MSI and ZIP formats (use the MSI on Windows, and the ZIP on Mono – see updated links for 1.9.2.9 above). Also well done to James for pulling this release together.


Although we’ve put this through our standard test procedures, we haven’t enabled this as the default download, partly because we’re planning to make a couple of very minor tweaks to the new functionality (just a few library renamings).


So, here’s what’s new in 1.9.2! First the quick summary. I’ve also posted the complete release notes.



  • Slicing syntax. e.g. try arr.[1..5]. 2D-slices also available. No slice-setters as yet. See the full release notes.


  • Named Arguments. Calls to members (but not let-bound functions or function values) may use named arguments. Again see the full release notes. For example

                     System.Console.WriteLine(format=“Hello {0}”,arg0=“World”




  • Optional Arguments. Members (but not let-bound functions) may have optional arguments. See the full release notes.


  • Hashing and equality on F# values. Recall that F# automatically implements comparison and hash semantics for tuple, record and discriminated union types (only). Now F# will also implement Object.GetHashCode and Object.Equals for these types. See the full release notes.

  • Language cosntructs for “computation expressions” (akin to Haskell monadic syntax). Details to follow in later posts (yes, I’ve whet your appetite, haven’t I…. But this one needs a few separate blog entries…)




  • Library constructs for “asynchronous workflows”. This is asynchronous and parallel programming using computation expressions. Details to follow in later posts again (those at the Faculty Summit and in Redmond last week have already seen a preview of this)

Other Language enhancements




  • Added “workflow” syntax updates. More details to follow.


  • Added [1..2] without spaces.


  • Added [< assembly : attributeExpr >] for assembly level attributes.


  • Added pattern matching on 64-bit numbers.


  • Added extension members (examples in F# programming library files control.fsi and control.fs).


  • Added datatype constructors used as first class functions.


  • Made begin/end optional for modules.


  • Made class/interface/struct-end optional in for type definitions.


  • Made with/end optional for type-augmentations.


  • Added __SOURCE_FILE__ and __LINE__.  

Library additions




  • Added Microsoft.FSharp.Plot.* interactive plotting previews.


  • Added Microsoft.FSharp.Collections.Permutation.


  • Added CodeDom provider.


  • Added typeof<ty>, sizeof<ty> as functions.


  • Adding ASP.NET samples.

Library minor changes




  • Additions to Seq module, e.g. orderBy, groupBy, countBy and sumByInt.


  • Additions to IEvent module, e.g. merge/split.


  • Additions to Quotations, added ReflectedTopDefn.


  • Added HashSet.Create for sequences.


  • Deprecated Idioms functions now available by other means.


  • Removed FlagsAttribute restriction on enum bit twiddling.


  • Deleted obsoleted CompatArray functions.

Bugs fixed:




  •     977 Fix: resx files compiled without change to cwd.


  •         Fix: FSI reflection emit support for constrained callvirt opcodes.


  •         Fix: Hashtbl copying bug.


  •         Fix: nested module/type loading bug.


  •         Fix: performance improvements to BigNat and BigInt.

Cheers!


Don, for the F# team…

Comments (17)

  1. Tom Kirby-Green says:

    Don,

    Is there any way, much as with the Lang .NET Syposium, that the presentations from the MSR Summit could be made available?

    Kind regards,

    tom

  2. Just as I’m sure you are all caught up in the wave of new downloads in the last 24 hours here is one

  3. Don Syme’s WebLog on F# and Other Research Projects mentions F# 1.9.2.7 released! . The quick summary.

  4. joe coffey says:

    Looks great!  I can’t seem to find Microsoft.Fsharp.Plot though.

  5. Though I managed to sneak away for some vacation time this week, it’s clearly been a busy time for the

  6. One of the things we added to F# in version 1.9.2 is a syntax for compuation expressions . These are

  7. One of the things we added to F# in version 1.9.2 is a syntax for compuation expressions . These are

  8. For some reason I wanted to look at the samples again as it’s been a long time since I took a peak at

  9. F# 1.9.2.9 includes a pre-release of new F# functionality called asynchronous workflows . In this blog

  10. Don Syme’s WebLog on F# and Other Research Projects has the announcement of F# 1.9.2.9 including a pre-release

  11. Don Syme&#39;s WebLog on F# and Other Research Projects has the announcement of F# 1.9.2.9 including

  12. PS says:

    Hello, I have Visual Studio 2005 SP1. I’ve installed F# Extensions for VS, ver. 1.9.2.9. I can use F# Interactive window and compile projects, but IntelliSense doesn’t work with .ml files. What can I do to solve this? I’ve installed F# with alternative-install.bat and alternative-install-vs2005.bat, because MSI installation failed.

  13. PS says:

    I’ve tried! The same problem :(

    Previously I had an earlier version of F#, everything worked great, including IntelliSense support, but VS integration ceased to work after installation of VS SP1, so i’ve had to reinstall F#.

  14. dsyme says:

    Hi PS,

    Could you send us a full trace

     – Environment variables (run "setenv")

     – OS (Vista/XP etc.)

     – Are you an admin on the machine?

     – Follow the instructions in the README-fsharp.html re. looking for particular registry settings.

    Send to fsbugs ATT microsoft DOTT com

    Thanks

    Don

  15. Stephan Tolksdorf has been a regular F# user of late and has provided us with much excellent feedback,

  16. Stephan Tolksdorf has been a regular F# user of late and has provided us with much excellent feedback