﻿<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Visual Studio F# Team Blog</title>
    <atom:link
      href="https://review.docs.microsoft.com/archive/blogs/fsharpteam/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/feed.xml</link>
    <description>The blog of the F# team at Microsoft</description>
    <lastBuildDate>Mon, 18 Jul 2016 17:23:23 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>We've Moved the Blog!</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/weve-moved-the-blog</link>
      <pubDate>Mon, 18 Jul 2016 17:23:23 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/?p=1126</guid>
      <description><![CDATA[This blog has now moved to the .NET Blog here: https://blogs.msdn.microsoft.com/dotnet/

You can...]]></description>
      <content:encoded><![CDATA[This blog has now moved to the .NET Blog here: <a href="https://blogs.msdn.microsoft.com/dotnet/" target="_blank">https://blogs.msdn.microsoft.com/dotnet/</a>

You can find F# blog posts with the F# tag as such: <a href="https://blogs.msdn.microsoft.com/dotnet/tag/visual-f/" target="_blank">https://blogs.msdn.microsoft.com/dotnet/tag/visual-f/</a>

See you there!]]></content:encoded>
    </item>
    <item>
      <title>[Guest post] Visual F# Power Tools: community-led tooling for F# in Visual Studio</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/guest-post-visual-f-power-tools-community-led-tooling-for-f-in-visual-studio</link>
      <pubDate>Wed, 05 Aug 2015 13:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2015/08/05/guest-post-visual-f-power-tools-community-led-tooling-for-f-in-visual-studio/</guid>
      <description><![CDATA[This is a guest post by Anh-Dung Phan and Vasily Kirichenko, F# community developers and...]]></description>
      <content:encoded><![CDATA[<blockquote>   <p><em>This is a guest post by <a href="https://twitter.com/dungpa" target="_blank">Anh-Dung Phan</a> and <a href="https://twitter.com/kot_2010" target="_blank">Vasily Kirichenko</a>, F# community developers and contributors to the superb Visual F# Power Tools extension for Visual Studio.&nbsp; &ndash; Visual F# Team</em></p>    <p>We are pleased to tell you about the <strong>Visual F# Power Tools</strong>, a Visual Studio extension aimed at providing extended tooling for F# in Visual Studio. You can <a href="https://visualstudiogallery.msdn.microsoft.com/136b942e-9f2c-4c0b-8bac-86d774189cff" target="_blank">download it today</a> from the Visual Studio gallery.</p>    <p>The goal of the extension is to complement the standard Visual Studio F# tooling by adding missing features such as semantic highlighting, rename refactoring, find all references, metadata-as-source, and more.</p>    <p>What&rsquo;s particularly special about <a href="https://github.com/fsprojects/VisualFSharpPowerTools" target="_blank">this project</a> is that it's a collective effort of the F# open source community. We work alongside the Visual F# Team at Microsoft in order to provide a complete toolset for F# users in Visual Studio.</p>    <p>This project is about 1.5 years old now, and has received <a href="https://twitter.com/brodyberg/status/516993057770569729" target="_blank">overwhelming</a> <a href="https://twitter.com/the_Crispy/status/499260504695930881" target="_blank">positive</a> <a href="https://twitter.com/xkrt/status/489634545885802496" target="_blank">feedback</a> from the F# community. Today we are excited to share this effort, and the story behind it, with a broader audience.</p>    <p>&hellip;</p> <p>To continue reading, please see the <a href="https://blogs.msdn.com/b/dotnet/archive/2015/08/05/guest-post-visual-f-power-tools-community-led-tooling-for-f-in-visual-studio.aspx">full post</a> on the .NET Blog.</p><p><em>The Visual F# team is now publishing to the unified <a href="https://blogs.msdn.com/b/dotnet/">.NET Blog</a>, along with Roslyn, ASP.NET, the core .NET Framework team, and others.&nbsp; This will give Visual F# content much more exposure, with posts shown alongside those of other key .NET technologies.</em></p><p><em>Please update your bookmarks and RSS readers.&nbsp; We will continue to cross-post here for a few months during the transition.</em></p></blockquote>
]]></content:encoded>
    </item>
    <item>
      <title>Announcing the RTM of Visual F# 4.0</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/announcing-the-rtm-of-visual-f-4-0</link>
      <pubDate>Mon, 20 Jul 2015 10:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2015/07/20/announcing-the-rtm-of-visual-f-4-0/</guid>
      <description><![CDATA[We are pleased to announce that Visual Studio 2015, and along with it Visual F# 4.0, hit RTM...]]></description>
      <content:encoded><![CDATA[<blockquote>   We are pleased to announce that Visual Studio 2015, and along with it Visual F# 4.0, hit RTM today! Visit the <a href="https://www.visualstudio.com/downloads/download-visual-studio-vs">downloads page</a> to install the release build. The F# components in VS 2015 map to commit dd8252eb8d20 in our <a href="https://github.com/microsoft/visualfsharp">repo</a>.</p>    <p>&hellip;</p> <p>To continue reading, please see the <a href="https://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-the-rtm-of-visual-f-4-0.aspx">full post</a> on the .NET Blog.

<em>The Visual F# team is now publishing to the unified <a href="https://blogs.msdn.com/b/dotnet/">.NET Blog</a>, along with Roslyn, ASP.NET, the core .NET Framework team, and others.&nbsp; This will give Visual F# content much more exposure, with posts shown alongside those of other key .NET technologies.</em>

<p><em>Please update your bookmarks and RSS readers.&nbsp; We will continue to cross-post here for a few months during the transition.</em></p></blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Save the day with a Visual Basic, C#, or F# T-Shirt!</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/save-the-day-with-a-visual-basic-c-or-f-t-shirt</link>
      <pubDate>Fri, 22 May 2015 14:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2015/05/22/save-the-day-with-a-visual-basic-c-or-f-t-shirt/</guid>
      <description><![CDATA[F# enthusiasts might be interested in this post on the .NET blog by program manager Anthony D....]]></description>
      <content:encoded><![CDATA[<p>F# enthusiasts might be interested in <a href="https://blogs.msdn.com/b/dotnet/archive/2015/05/21/save-the-day-with-a-visual-basic-csharp-or-fsharp-t-shirt.aspx" target="_blank">this post</a> on the <a href="https://blogs.msdn.com/b/dotnet" target="_blank">.NET blog</a> by program manager Anthony D. Green.</p>  <blockquote>   <p>Mads and Dustin showed off these stylish little numbers at BUILD and ever since we've been getting pinged by community members wanting to know where they can get their very own so they too can show their passion for their favorite programming language(s).     <br /></p>    <p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/12/34/2626.img1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-12-34/2626.img1.png" /></p>    <p>&#160;</p>    <p>These were originally team t-shirts from years ago and every time one of us wears one of them out at a talk or a conference without fail you let us know how much you'd love to get your hands on one. Finally Visual Basic MVP Jim Wooley shot me a tweet saying &quot;Just put it on CafePress.com already!&quot;. Great idea, Jim! We actually lost the pattern but I've come up with a couple of different designs based on the original I want to share with you and hear what you think.</p>    <p>…</p> </blockquote>  <p>To continue reading (and to see the F# shirts), please see the <a href="https://blogs.msdn.com/b/dotnet/archive/2015/05/21/save-the-day-with-a-visual-basic-csharp-or-fsharp-t-shirt.aspx" target="_blank">full post</a> on the .NET blog.</p>  <p><em>The Visual F# team is now publishing to the unified <a href="https://blogs.msdn.com/b/dotnet/">.NET Blog</a>, along with Roslyn, ASP.NET, the core .NET Framework team, and others.&#160; This will give Visual F# content much more exposure, with posts shown alongside those of other key .NET technologies.</em></p>  <p><em>Please update your bookmarks and RSS readers.&#160; We will continue to cross-post here for a few months during the transition.</em></p>]]></content:encoded>
    </item>
    <item>
      <title>Rounding out Visual F# 4.0 in VS 2015 RC</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/rounding-out-visual-f-4-0-in-vs-2015-rc</link>
      <pubDate>Wed, 29 Apr 2015 14:25:29 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2015/04/29/rounding-out-visual-f-4-0-in-vs-2015-rc/</guid>
      <description><![CDATA[Today marks the release of Visual Studio 2015 RC, which includes the latest updates to the Visual...]]></description>
      <content:encoded><![CDATA[<blockquote>   Today marks the release of Visual Studio 2015 RC, which includes the latest updates to the Visual F# 4.0 language and tools.&nbsp; Download the RC <a href="https://go.microsoft.com/fwlink/?LinkId=517106" target="_blank">here</a>, and review the VS release notes <a href="https://www.visualstudio.com/en-us/news/vs2015-vs" target="_blank">here</a>.</p>    <p><a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/11/12/announcing-a-preview-of-f-4-0-and-the-visual-f-tools-in-vs-2015.aspx" target="_blank">Back in November</a>, we described the F# 4.0 features that were completed in time for the Visual Studio 2015 Preview build. New features like constructors as first-class functions, simplified mutable/ref values, a normalized collections API, and more were warmly received.&nbsp; We didn&rsquo;t stop there, though!</p>    <p>This post describes the F# 4.0 work that&rsquo;s been completed since Preview.&nbsp; Together with the features announced earlier, this completes the <a href="https://github.com/Microsoft/visualfsharp/wiki/F%23-4.0-Status" target="_blank">planned feature set</a> for F# 4.0. Bug fixes and performance optimizations will continue to be accepted up until VS 2015 RTM. The F# bits that ship with today&rsquo;s RC build map to commit <a href="https://github.com/Microsoft/visualfsharp/commit/76ae08d427a41e4140c" target="_blank">76ae08d</a>.</p>    <p>&hellip;</p> <p>To continue reading, please see the <a href="https://blogs.msdn.com/b/dotnet/archive/2015/04/29/rounding-out-visual-f-4-0-in-vs-2015-rc.aspx" target="_blank">full post</a> on the .NET Blog.

<em>The Visual F# team is now publishing to the unified <a href="https://blogs.msdn.com/b/dotnet/" target="_blank">.NET Blog</a>, along with Roslyn, ASP.NET, the core .NET Framework team, and others.&nbsp; This will give Visual F# content much more exposure, with posts shown alongside those of other key .NET technologies.</em>

<p><em>Please update your bookmarks and RSS readers.&nbsp; We will continue to cross-post here for a few months during the transition.</em></p></blockquote>]]></content:encoded>
    </item>
    <item>
      <title>An open engineering birthday for Visual F#</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/an-open-engineering-birthday-for-visual-f</link>
      <pubDate>Fri, 03 Apr 2015 12:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2015/04/03/an-open-engineering-birthday-for-visual-f/</guid>
      <description><![CDATA[&nbsp;

One year ago today, we pushed the button to enable community contributions and fully open...]]></description>
      <content:encoded><![CDATA[&nbsp;

<a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/04/03/facilitating-open-contributions-for-the-f-compiler-library-and-visual-f-tools.aspx" target="_blank">One year ago today</a>, we pushed the button to enable community contributions and fully open engineering for <a href="https://github.com/microsoft/visualfsharp" target="_blank">Visual F#</a>. The F# language has been open source for years, centered around the <a href="https://github.com/fsharp/fsharp" target="_blank">F# Open Edition</a> and <a href="https://fsharp.org/" target="_blank">fsharp.org</a>, but this marked the first time that Microsoft&rsquo;s Visual F# tools could accept contributions and do daily development in the open.

In that year, we've seen outstanding work done by the F# community to move the language and the Visual Studio tools forward:

<ul>   <li>37 code contributors</li>    <li>300 pull requests</li>    <li>420 issues</li>    <li>488 commits</li> </ul>

Contributions have included everything from <a href="https://github.com/Microsoft/visualfsharp/pull/203" target="_blank">bug fixes</a> to <a href="https://github.com/Microsoft/visualfsharp/issues/288" target="_blank">documentation improvements</a> to <a href="https://github.com/Microsoft/visualfsharp/pull/261" target="_blank">runtime APIs</a> to <a href="https://github.com/Microsoft/visualfsharp/pull/335" target="_blank">codegen optimizations</a> to <a href="https://github.com/Microsoft/visualfsharp/pull/55" target="_blank">language features</a> and more.&nbsp; In August 2014, many of these changes made it into <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/08/20/announcing-the-release-of-visual-f-tools-3-1-2.aspx" target="_blank">Visual F# 3.1.2</a>, our first-ever release containing community content.

The next year promises to be even better, with <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/11/12/announcing-a-preview-of-f-4-0-and-the-visual-f-tools-in-vs-2015.aspx" target="_blank">F# 4.0</a> development wrapping up, and key pieces of the .NET ecosystem <a href="https://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx" target="_blank">open sourcing</a> and building out <a href="https://blogs.msdn.com/b/dotnet/archive/2015/02/03/coreclr-is-now-open-source.aspx" target="_blank">cross-platform support</a>.&nbsp; Opportunities abound for the F# language, the Visual F# tools, and the broader F# community in the years to come.&nbsp; It&rsquo;s an exciting time to be an F# developer!

<p>On this occasion we offer our thanks to our contributors and users, and ask that you join us in continuing to make F# and the Visual F# tools the best they can be!</p>]]></content:encoded>
    </item>
    <item>
      <title>Visual F# has moved to GitHub</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/visual-f-has-moved-to-github</link>
      <pubDate>Tue, 13 Jan 2015 13:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2015/01/13/visual-f-has-moved-to-github/</guid>
      <description><![CDATA[It&rsquo;s official, the Visual F# project has moved from Codeplex to GitHub! Our new home is...]]></description>
      <content:encoded><![CDATA[<p>It&rsquo;s official, the Visual F# project has moved from Codeplex to GitHub! Our new home is <a title="https://github.com/Microsoft/visualfsharp" href="https://github.com/Microsoft/visualfsharp">https://github.com/Microsoft/visualfsharp</a>.<p>This brings us closer to the longtime home of the <a href="https://github.com/fsharp/fsharp" target="_blank">F# Open Edition</a>, addresses one of our <a href="https://visualfsharp.codeplex.com/workitem/103" target="_blank">top bugs</a>, and puts us on the same hosting platform as other great Microsoft open source projects like <a href="https://github.com/dotnet/corefx" target="_blank">.NET Core</a>, <a href="https://github.com/Microsoft/TypeScript" target="_blank">Typescript</a>, and (<a href="https://blogs.msdn.com/b/csharpfaq/archive/2015/01/10/moving-to-github.aspx" target="_blank">soon</a>) Roslyn.</p><p>We ask our community to move all development activities to the GitHub repo, starting today.</p><p>A few bits of bookkeeping:</p><ul>   <li><strong>History</strong> will remain fully intact. We are just re-hosting our git repo from Codeplex to GitHub.</li>    <li><strong>PRs</strong> remaining on Codeplex will be discussed, serviced, and closed from there, they do not need to be migrated. We will merge those changes and push them to GitHub.</li>    <li><strong>Issues</strong> open on Codeplex will remain there for the time being, with a migration plan TBD. </li>    <li><strong>Discussions</strong> on Codeplex will not be migrated. Any new &ldquo;discussions&rdquo; should be opened as GitHub issues.</li> </ul></p>
]]></content:encoded>
    </item>
    <item>
      <title>Toward a Visual F# 4.0 release</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/toward-a-visual-f-4-0-release</link>
      <pubDate>Tue, 02 Dec 2014 10:51:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2014/12/02/toward-a-visual-f-4-0-release/</guid>
      <description><![CDATA[To the Visual F# Tools development community &ndash;Over the past months, we have made an impressive...]]></description>
      <content:encoded><![CDATA[<p>To the Visual F# Tools development community &ndash;<p>Over the past months, we have made an <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/11/12/announcing-a-preview-of-f-4-0-and-the-visual-f-tools-in-vs-2015.aspx" target="_blank">impressive amount of progress</a> together on F# 4.0 and the next version of the Visual F# Tools.&nbsp; There is still plenty of work remaining here.</p><p>With the goal of shipping a high-quality, enterprise-grade F# language and toolchain in Visual Studio 2015, it&rsquo;s come time to wind down new feature development for F# 4.0, and start focusing our efforts on quality validation and stabilization.</p><p>We plan to use the following schedule as the roadmap to releasing 4.0:</p><p><strong>12/8/2014</strong> &ndash; Last day for feature-level PRs to be submitted.&nbsp;&nbsp; <br><strong>12/19/2014</strong> &ndash; Submitted feature PRs have been given initial review and are either approved or cut for F# 4.0.&nbsp; Iteration and fixups of approved PRs continues past this date.&nbsp;&nbsp;&nbsp; <br><strong>1/9/2015</strong> &ndash; Approved feature PRs are complete and integrated. Visual F# Tools 4.0 is considered &ldquo;feature complete.&rdquo;     <br><strong>1/23/2015</strong> &ndash; Visual F# Tools 4.0 considered to be at &ldquo;release candidate&rdquo; stage.</p><p>New PRs containing bug fixes or performance improvements are encouraged throughout this time, though the bar for accepting such changes will naturally rise as we get closer to the end of January.</p><p>This is a short runway, and we understand that not everything which was once planned will ready by these dates. Keep in mind that once Visual F# 4.0 ships, we will be releasing regular F# update packages, just as we did with the Visual F# <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/01/22/announcing-visual-f-3-1-1-and-support-for-desktop-express.aspx" target="_blank">3.1.1</a> and <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/08/20/announcing-the-release-of-visual-f-tools-3-1-2.aspx" target="_blank">3.1.2</a> releases.&nbsp; High-quality features and fixes that didn&rsquo;t quite make it to F# 4.0 will of course be considered for update releases.</p><p>As we lock down feature work over the coming weeks, we call on F# community developers to continue contributing by focusing on quality and testing:</p><p>-&nbsp;&nbsp;&nbsp; Install the <a href="https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs" target="_blank">VS 2015 Preview</a> and the <a href="https://www.microsoft.com/en-us/download/details.aspx?id=44941" target="_blank">F# 4.0 preview update</a> and try them out on your own projects     <br> -&nbsp;&nbsp;&nbsp; File bugs at <a href="https://visualfsharp.codeplex.com/">https://visualfsharp.codeplex.com/</a>     <br> -&nbsp;&nbsp;&nbsp; Submit fixes for <a href="https://visualfsharp.codeplex.com/workitem/list/basic" target="_blank">open bugs</a>     <br> -&nbsp;&nbsp;&nbsp; Review, test, and comment on <a href="https://visualfsharp.codeplex.com/sourcecontrol/list/contributions" target="_blank">open PRs</a></p><p>We are looking forward to this last stage of the development cycle, and to an incredible Visual F# Tools 4.0 release next year!    </p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Announcing a preview of F# 4.0 and the Visual F# Tools in VS 2015</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/announcing-a-preview-of-f-4-0-and-the-visual-f-tools-in-vs-2015</link>
      <pubDate>Wed, 12 Nov 2014 15:35:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2014/11/12/announcing-a-preview-of-f-4-0-and-the-visual-f-tools-in-vs-2015/</guid>
      <description><![CDATA[Today, we are happy to announce a pre-release of F# 4.0 and the latest Visual F# Tools, for Visual...]]></description>
      <content:encoded><![CDATA[<p>Today, we are happy to announce a pre-release of F# 4.0 and the latest Visual F# Tools, for Visual Studio 2015 Preview. F# development tools are included in the box with the <a href="https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs" target="_blank">VS 2015 Preview download</a>, but these bits were branched for stabilization some time ago, and we have made significant progress since then.</p>  <p>We recommend that you <strong><font color="#ff0000">download and install the latest Visual F# 4.0 bits</font> </strong><a href="https://www.microsoft.com/en-us/download/details.aspx?id=44941" target="_blank"><strong>here</strong></a><strong>,</strong> as an update for VS 2015 Preview.&#160; This blog reviews the key enhancements and changes completed up through this update package.&#160; VS 2015 Preview ships with F# components matching commit <a href="https://visualfsharp.codeplex.com/SourceControl/changeset/3a27cd8207bbc22be275ca54dec586b62d1c46d2" target="_blank">3a27cd8</a> (from October 12).&#160; The update brings the F# bits up to date with commit <a href="https://visualfsharp.codeplex.com/SourceControl/changeset/afe50271808ffa4f1b326c6ff029f45ec5ba0847" target="_blank">afe5027</a> (from November 11).</p>  <h2>Overview</h2>  <h4>More to come</h4>  <p>Today’s release is just an early preview of F# 4.0 and the latest Visual F# Tools. There is still a lot more language and tooling work planned, but we think now is a good time to step back and talk about what’s been completed so far.&#160; There’s quite a lot! In-progress features and up-to-date status can be found <a href="https://visualfsharp.codeplex.com/wikipage?title=Status" target="_blank">on our Codeplex page</a>.</p>  <h4>By and for the F# community</h4>  <p>Since <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/04/03/facilitating-open-contributions-for-the-f-compiler-library-and-visual-f-tools.aspx" target="_blank">enabling community contributions</a> to the compiler in April, then <a href="https://twitter.com/VisualFSharp/status/483664983423594496" target="_blank">opening up the F# Visual Studio stack</a> in June, the F# language and Visual F# IDE tooling stack has been developed in full partnership with the open source developer community. In just this short time, the <a href="https://visualfsharp.codeplex.com/" target="_blank">Visual F# project</a> has received a stunning 159 pull requests from 32 developers, of which we have so far been able to apply 90.</p>  <p>More so than any previous release, Visual F# 4.0 represents the hard work, dedication, and contagious enthusiasm of the F# open source community.&#160; Much of the new content described below was developed largely or completely by non-Microsoft contributors. The community, in partnership with <a href="https://msopentech.com/" target="_blank">Microsoft Open Technologies</a>, the <a href="https://fsharp.org/" target="_blank">F# Software Foundation</a>, and others, have developed F# into a mature, cross-platform, functional-first language.</p>  <h4>Further links</h4>  <p>There is lots of other news relevant to Visual Studio F# developers, today.&#160; Check out some of these links:</p>  <ul>   <li><a href="https://blogs.msdn.com/b/somasegar/archive/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx" target="_blank">Soma’s blog</a></li>    <ul>     <li>Highlights of today’s VS 2015 news, including the free Visual Studio Community Edition, which supports F# and extensions like the <a href="https://visualstudiogallery.msdn.microsoft.com/136b942e-9f2c-4c0b-8bac-86d774189cff" target="_blank">Visual F# Power Tools</a></li>   </ul>    <li><a href="https://blogs.msdn.com/b/csharpfaq/archive/2014/11/12/introducing-the-visual-studio-2015-preview-for-c-and-vb.aspx" target="_blank">C#/VB team blog</a></li>    <ul>     <li>Links to content covering new developments in those “other” .NET languages</li>   </ul>    <li><a href="https://www.visualstudio.com/connect-event-live-vs" target="_blank">Visual Studio Connect</a></li>    <ul>     <li>Live stream/recording of presentations covering VS 2015 announcements</li>      <li>Visual F# will be represented at the Day 2 Managed Languages panel – tune in!</li>   </ul> </ul>  <p>Enough talk, let’s look at what’s new for F#!</p>  <h2>New Language Capabilities</h2>  <h4>Constructors as first-class functions</h4>  <p>As a functional-first language, F# has always provided rich support for processing and manipulating function values, both curried-style functions and traditional .NET methods.&#160; One longstanding gap in that support was for constructors – there was no way to treat a type constructor as an isolated function that could be passed around and composed with other functions.&#160; This limitation was one of the few sources of boilerplate in F# code, mandating the use of small lambda functions in order to invoke constructors.</p>  <p>This is now resolved – constructors are now treated as first-class functions, with the same treatment as other traditional .NET methods.</p>  <p>So, as an example, instead of writing this:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/2210.ctor1_25632AD8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/2210.ctor1_5F00_25632AD8.png"><img title="ctor1" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="ctor1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/5342.ctor1_thumb_05481E1B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/5342.ctor1_5F00_thumb_5F00_05481E1B.png" width="354" height="129" /></a></p>  <p>You can now write this:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/1122.ctor2_373FBEA5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/1122.ctor2_5F00_373FBEA5.png"><img title="ctor2" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="ctor2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/8078.ctor2_thumb_1724B1E8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/8078.ctor2_5F00_thumb_5F00_1724B1E8.png" width="350" height="109" /></a></p>  <h4>Simplified use of mutable values</h4>  <p>Mutable values are permitted in F#, though immutability is the default.&#160; In the past, the ‘mutable’ keyword was used to designate a stack-based mutable value, and that value could be mutated using the &lt;- operator.&#160; If the mutable value happened to be captured by a closure and a heap-based value was required, the <a href="https://msdn.microsoft.com/en-us/library/dd233186.aspx" target="_blank">‘ref’ syntax</a> was needed instead, and mutation was done via the := operator.</p>  <p>These distinct syntaxes led to some code inelegance and developer confusion, as it was often difficult to reason ahead of time about which approach was going to be required.</p>  <p>With F# 4.0, developers can now just use the ‘mutable’ keyword for all mutable values, and the compiler will take care of the rest, creating a stack-based value if possible, otherwise implicitly converting to a ref cell.</p>  <p>So whereas you previously needed a ‘ref’ value for ‘total’ here:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/1715.mutref1_20AA74AE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/1715.mutref1_5F00_20AA74AE.png"><img title="mutref1" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="mutref1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/8662.mutref1_thumb_7C18E729.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/8662.mutref1_5F00_thumb_5F00_7C18E729.png" width="375" height="77" /></a></p>  <p>You can now use ‘mutable’ and it “just works”:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/0333.mutref2_5BFDDA6C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/0333.mutref2_5F00_5BFDDA6C.png"><img title="mutref2" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="mutref2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/5123.mutref2_thumb_50D45022.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/5123.mutref2_5F00_thumb_5F00_50D45022.png" width="372" height="76" /></a></p>  <p>Advanced users who prefer to have explicit knowledge of the stack/heap semantics can enable warning 3180 (--warnon:3180 for fsc.exe or fsi.exe) and will be notified when a ‘mutable’ declaration has been implicitly converted to ‘ref’. </p>  <h4>Support for high-dimensional arrays</h4>  <p>The .NET framework supports up to 32-dimensional arrays, but in the past F# only supported use of up to rank-4 arrays.&#160; Not only were arrays of rank 5+ not possible to create and manipulate from F# code, the compiler could sometimes fail to consume external libraries which relied on high-dimensional arrays.</p>  <p>This is now fixed.&#160; Although there is not yet support for creating and manipulating high-rank arrays, the compiler will now properly handle these types up to rank-32.</p>  <h4>Support for static parameters to provided methods</h4>  <p>F# type providers were previously limited to accepting static parameters only on the top-level provided type. From there, all other provided types, methods, and properties needed to be generated based on this single set of parameters.</p>  <p>With F# 4.0, the type provider mechanism has been expanded to allow for static parameters on provided methods, as well.</p>  <p>With this change, instead of requiring users to declare multiple top-level types, each with distinct parameters, there is now an option to use a single type declaration along with parameterized usage of methods.&#160; For certain kinds of type providers, this can greatly streamline the developer experience.</p>  <p>A simple example is a provided “safe string” type which enforces that the number of slots in a String.Format format string matches the number of arguments passed.&#160; This can now be done with a single type declaration, and a parameterized Format method:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/3618.staticmeth_50CC2533.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/3618.staticmeth_5F00_50CC2533.png"><img title="staticmeth" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="staticmeth" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/4380.staticmeth_thumb_577F2EB6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/4380.staticmeth_5F00_thumb_5F00_577F2EB6.png" width="468" height="96" /></a></p>  <h4>Slicing syntax support for F# lists</h4>  <p>F# linked lists now support the familiar “slicing” syntax, long present <a href="https://msdn.microsoft.com/en-us/library/dd233214.aspx" target="_blank">for arrays</a>, for reading elements and creating sub-lists.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/2146.listslice_655174B1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/2146.listslice_5F00_655174B1.png"><img title="listslice" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="listslice" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/5873.listslice_thumb_453667F4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/5873.listslice_5F00_thumb_5F00_453667F4.png" width="187" height="40" /></a></p>  <h4>Simplified usage of units of measure with printf-family functions</h4>  <p>printf-family functions previously required developers to explicitly strip off any measure information before values could be formatted.</p>  <p>This requirement has been relaxed – values with measure information are now handled seamlessly.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/3465.printfuom_19967428.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/3465.printfuom_5F00_19967428.png"><img title="printfuom" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="printfuom" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/3060.printfuom_thumb_074DAD66.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/3060.printfuom_5F00_thumb_5F00_074DAD66.png" width="524" height="77" /></a></p>  <h4>Modified GC settings on the compiler for better performance</h4>  <p>Not a language feature, but surely of interest to F# language developers, is a change to the GC mode used by the F# compiler.&#160; fsc.exe now uses <a href="https://msdn.microsoft.com/en-us/library/system.runtime.gclatencymode(v=vs.110).aspx" target="_blank">GCLatencyMode.Batch</a>, which gives a noticeable improvement in overall throughput, something that any F# developer will welcome.</p>  <p>Our testing indicates that this setting alone can provide upwards of 10% better compile performance. Click the chart below for a full-size plot of the performance data.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/6278.batch_10F5F072.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/6278.batch_5F00_10F5F072.png"><img title="fsc.exe performance data, click for full size" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="fsc.exe performance data, click for full size" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/6201.batch_thumb_7EAD29AF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/6201.batch_5F00_thumb_5F00_7EAD29AF.png" width="244" height="156" /></a></p>  <p>&#160;</p>  <h2>Enhancements to the FSharp.Core runtime</h2>  <h4>Normalized collections modules</h4>  <p>The three collection types used most frequently in F# code are Array, List, and Seq.&#160; Each of these types has a dedicated module containing various higher-order processing functions.&#160; These functions are probably familiar to any functional programmer or LINQ user – map, fold, iter, etc.</p>  <p>In the past, these functions were not all uniformly available across the collection types. For example, the ‘distinct’ function was present for Seq, but missing for Array and List. The ‘tail’ function was present for List, but not for Array or Seq.</p>  <p>To work around these gaps in the API, developers would often need to convert their collections from one type to another, and back, just to take advantage of a particular function. This often led to inelegant and inefficient code.</p>  <p>In F# 4.0, the collections API has been fully normalized across Array, List, and Seq.&#160; There are now dedicated, optimized implementations of all common operations for each type, and even a few brand-new functions.&#160; This represents the addition of a whopping <strong>95 APIs</strong> in total<strong>.</strong></p>  <p>The chart below shows the new APIs (green), previously-existing APIs (blue), and intentional remaining gaps (white). Click for full size.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/3125.collectionAPI_254EA354.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/3125.collectionAPI_5F00_254EA354.png"><img title="collections API additions - click for full size" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="collections API additions - click for full size" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/4606.collectionAPI_thumb_7E145A1E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/4606.collectionAPI_5F00_thumb_5F00_7E145A1E.png" width="86" height="244" /></a></p>  <h4>Faster generic comparison</h4>  <p>The internal tables of optimized hash-comparison implementations used by F# code have been expanded and improved, leading to significant performance gains when processing primitive types such as int, string, and so on.</p>  <p>Performance improvements of 5x or more can be found in F# 4.0 when using APIs such as {List/Array/Seq}.{distinct/distinctBy/groupBy} which rely heavily on these comparisons.</p>  <h4>Better async stack traces</h4>  <p>Exceptions occurring in F# async code now have their stack traces preserved in a more user-friendly way, namely the top frame should now always point to the proper origin of the exception.</p>  <p>For code like this:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/6523.asyncstack_225A8651.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/6523.asyncstack_5F00_225A8651.png"><img title="asyncstack" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="asyncstack" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/7183.asyncstack_thumb_6FF6B2D1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/7183.asyncstack_5F00_thumb_5F00_6FF6B2D1.png" width="318" height="98" /></a></p>  <p>The top frames of the stack trace were previously rather opaque:</p>  <p><font face="Courier New">System.Exception: Boom      <br />&#160;&#160; at &lt;StartupCode$FSharp-Core&gt;.$Control.StartImmediate@1471-1.Invoke(Exception exn)       <br />&#160;&#160;&#160; at Microsoft.FSharp.Control.CancellationTokenOps.StartWithContinuations@1230-1.Invoke(Exception x)</font></p>  <p>But now point directly to the relevant code:</p>  <p><font face="Courier New">System.Exception: Boom      <br />&#160;&#160; at FSI_0011.f1@1-3.Invoke(Unit unitVar) <font style="background-color: rgb(255, 255, 0);">in Script.fsx:line 1        <br /></font>&#160;&#160; at Microsoft.FSharp.Control.AsyncBuilderImpl.callA@849.Invoke(AsyncParams`1 args)       <br />&#160;&#160; --- End of stack trace from previous location where exception was thrown ---</font></p>  <h4>Assorted small performance improvements</h4>  <p>A variety of small performance optimizations have been made across the runtime and compiler, making progress toward longer-term goals of faster compile time and a highly-optimized FSharp.Core runtime.</p>  <h2>VS tooling improvements</h2>  <h4>Assembly metadata in project templates</h4>  <p>All of the in-box F# project templates have been updated to now include an AssemblyInfo.fs file, containing default values for various assembly-level attributes like AssemblyVersion, AssemblyTitle, etc.&#160; This aligns F# project templates better with those of other languages (e.g. C#), where such files have long been used.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/1563.assemblyinfo_33EFE2F0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/1563.assemblyinfo_5F00_33EFE2F0.png"><img title="assemblyinfo" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="assemblyinfo" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/7762.assemblyinfo_thumb_167D91E4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/7762.assemblyinfo_5F00_thumb_5F00_167D91E4.png" width="630" height="304" /></a></p>  <h4>Improved startup time for FSI</h4>  <p>In F# 3.1.2, support was added for using non-locking shadow copy when referencing DLLs in F# Interactive.&#160; One downside of enabling this feature was that it caused fsi.exe to be noticeably slower on startup.</p>  <p>This issue is now largely resolved, after adjusting the AppDomain loading behavior for the process.</p>  <h4>New hotkeys for FSI</h4>  <p>From within Visual Studio, hotkeys are now assigned for the “Reset” and “Clear All” actions of F# Interactive.&#160; “Reset” is now mapped to Ctrl+Alt+R, and “Clear All” is now mapped to “Ctrl+Alt+C”.&#160; These mappings were chosen to match those found in other F# IDEs.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/4353.hotkeys_185C05EC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/4353.hotkeys_5F00_185C05EC.png"><img title="hotkeys" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="hotkeys" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/7485.hotkeys_thumb_1B04C19D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/7485.hotkeys_5F00_thumb_5F00_1B04C19D.png" width="434" height="289" /></a></p>  <h2>Feedback</h2>  <p>We are excited for users to start dogfooding Visual F# 4.0 and VS 2015.&#160; Please log any issues on our Codeplex page: <a title="https://visualfsharp.codeplex.com/WorkItem/Create" href="https://visualfsharp.codeplex.com/WorkItem/Create">https://visualfsharp.codeplex.com/WorkItem/Create</a></p>  <p>Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Announcing the release of Visual F# Tools 3.1.2</title>
      <link>https://review.docs.microsoft.com/archive/blogs/fsharpteam/announcing-the-release-of-visual-f-tools-3-1-2</link>
      <pubDate>Wed, 20 Aug 2014 12:23:00 GMT</pubDate>
      <dc:creator><![CDATA[Visual FSharp Team [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fsharpteam/2014/08/20/announcing-the-release-of-visual-f-tools-3-1-2/</guid>
      <description><![CDATA[We are happy to announce the availability of Visual F# Tools 3.1.2, the latest update to the Visual...]]></description>
      <content:encoded><![CDATA[<p>We are happy to announce the availability of Visual F# Tools 3.1.2, the latest update to the Visual F# compiler and F# IDE tooling for Visual Studio.&#160; You can download the installer package <a href="https://www.microsoft.com/en-us/download/details.aspx?id=44011" target="_blank">here</a>.</p>  <p>Building upon <a href="https://blogs.msdn.com/b/fsharpteam/archive/2013/06/27/announcing-a-pre-release-of-f-3-1-and-the-visual-f-tools-in-visual-studio-2013.aspx" target="_blank">Visual</a> <a href="https://blogs.msdn.com/b/fsharpteam/archive/2013/07/10/viewing-function-return-values-in-the-visual-studio-2013-debugger.aspx" target="_blank">F#</a> <a href="https://blogs.msdn.com/b/fsharpteam/archive/2013/09/13/visual-studio-2013-rc-and-send-to-fsi.aspx" target="_blank">3.1</a>, and the first out-of-band update <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/01/22/announcing-visual-f-3-1-1-and-support-for-desktop-express.aspx" target="_blank">Visual F# Tools 3.1.1</a>, Visual F# Tools 3.1.2 is a standalone, F#-only installer that packages the latest updates to the F# compiler, interactive, runtime, and Visual Studio integration.&#160; The IDE updates apply to Visual Studio 2013 Pro+, Desktop Express, and Web Express.</p>  <h3>A release by and for the F# community</h3>  <p>To begin with, it’s worth noting that this is the first Visual F# Tools release since we expanded our open source efforts and <a href="https://blogs.msdn.com/b/fsharpteam/archive/2014/04/03/facilitating-open-contributions-for-the-f-compiler-library-and-visual-f-tools.aspx" target="_blank">began taking contributions</a>, and therefore the first release to include direct contributions from the F# community! We would like to thank all of the developers who worked with us by <a href="https://visualfsharp.codeplex.com/workitem/list/basic" target="_blank">opening bugs</a>, sending <a href="https://visualfsharp.codeplex.com/sourcecontrol/list/contributions" target="_blank">pull requests</a>, and participating in <a href="https://visualfsharp.codeplex.com/discussions" target="_blank">discussions</a>.</p>  <p>Commits from the following community F# developers are included in Visual F# Tools 3.1.2: <a href="https://www.codeplex.com/site/users/view/antofik" target="_blank">antofik</a>, <a href="https://twitter.com/dsyme" target="_blank">Don Syme</a>, <a href="https://twitter.com/jonharrop" target="_blank">Jon Harrop</a>, <a href="https://twitter.com/rojepp" target="_blank">Robert Jeppesen</a>, <a href="https://twitter.com/sforkmann" target="_blank">Steffen Forkmann</a>, <a href="https://twitter.com/v2_matveev" target="_blank">Vladimir Matveev</a>, <a href="https://twitter.com/soloman817" target="_blank"></a><a href="https://twitter.com/TIHan" target="_blank">Will Smith</a>, <a href="https://twitter.com/soloman817" target="_blank">Xiang Zhang</a>.</p>  <h2>What’s new?</h2>  <h3>Expanded portable library support, including Windows Phone 8.1</h3>  <p>We continue to expand .NET portable library support in Visual F#.&#160; New in this release, developers will find F# project templates, along with compiler and runtime support, for two additional portable profiles:</p>  <ul>   <li>Profile 78 (.NET Framework 4.5, Windows 8, Windows Phone Silverlight 8)</li>    <li>Profile 259 (.NET Framework 4.5, Silverlight 5, Windows 8, Windows Phone 8.1)</li> </ul>  <p>This is in addition to the two profiles previously supported – Profile 47 (.NET Framework 4.5, Silverlight 5, Windows 8) and Profile 7 (.NET Framework 4.5, Windows 8).</p>  <p>Issues with adding project references between C# and F# portable libraries have also been addressed in this release. Altogether, this means that for the first time you can add an F# portable library project directly to a Windows Phone 8.1 solution!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/2783.fsphone_4667EFB2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/2783.fsphone_5F00_4667EFB2.png"><img title="fsphone" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="fsphone" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/1715.fsphone_thumb_3F4B43EB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/1715.fsphone_5F00_thumb_5F00_3F4B43EB.png" width="640" height="290" /></a></p>  <h3>&#160;</h3>  <h3>Non-locking assembly references in FSI</h3>  <p>F# developers love the quick-iteration development workflow enabled by F# Interactive – “edit-compile-test” is more or less distilled to “edit-test” – and tend to dislike anything that slows them down.</p>  <p>Oddly enough, one of the most common speed bumps in this loop is actually F# Interactive itself! Adding a <strong>#r</strong> assembly reference causes the referenced assembly to be locked on disk. If that assembly is part of your solution, and you want to rebuild it, make sure to restart FSI first!&#160; If you don’t, your build will fail with the dreaded “The process cannot access the file 'bin\Debug\ClassLibrary1.dll' because it is being used by another process.”</p>  <p>Those errors should no longer be an issue. F# Interactive now supports non-locking <strong>#r</strong> references via <a href="https://msdn.microsoft.com/en-us/library/ms404279.aspx" target="_blank">shadow copy</a>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/2211.shadowcopy_030BCB57.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/2211.shadowcopy_5F00_030BCB57.png"><img title="shadowcopy" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="shadowcopy" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/0167.shadowcopy_thumb_5BD18221.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/0167.shadowcopy_5F00_thumb_5F00_5BD18221.png" width="466" height="213" /></a></p>  <p>This is a configurable behavior.&#160; Non-locking references are enabled by default in the hosted Visual Studio F# Interactive, and configurable via the F# Interactive options dialog. On the command line, the default behavior for fsi.exe has not been changed, but you can easily enable the new behavior via the switch <strong>--shadowcopyreferences+</strong></p>  <h3>Support for Publish in web and Azure projects</h3>  <p> If you are using F# for web development, perhaps utilizing one of the excellent <a href="https://blogs.msdn.com/b/fsharpteam/archive/2013/12/12/new-visual-f-templates-for-asp-net-web-api-mstest-and-nancy-now-available.aspx" target="_blank">community project templates</a> that are available, you have likely noticed that the Visual Studio “Publish” action has not worked for F# projects in the past.&#160; This long-standing issue has finally been addressed; you can now publish F# web and Azure projects directly from Visual Studio!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/7571.publish_5B3BD962.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/7571.publish_5F00_5B3BD962.png"><img title="publish" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="publish" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/1033.publish_thumb_5DE49513.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/1033.publish_5F00_thumb_5F00_5DE49513.png" width="491" height="378" /></a></p>  <h3>Minor language changes</h3>  <h4>Improved *nix compatibility with #! in F# scripts</h4>  <p>The F# compiler now allows for the shebang (#!) directive to exist at the beginning of F# source files, and will treat such a line as a comment.&#160; This allows F# scripts to be compatible with the <a href="https://en.wikipedia.org/wiki/Shebang_(Unix)" target="_blank">Unix convention</a> whereby a script can indicate to the OS what interpreter to use by providing the path to that interpreter on the first line, following the #! directive.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/6281.shebang_35A751E5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/6281.shebang_5F00_35A751E5.png"><img title="shebang" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="shebang" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/0827.shebang_thumb_235E8B23.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/0827.shebang_5F00_thumb_5F00_235E8B23.png" width="294" height="93" /></a></p>  <p>This change does not affect how F# file associations are configured on Windows.</p>  <h4>Compiler support for high-dimensional slicing</h4>  <p>F# supports slicing syntax for working with arrays and other multi-dimensional data types, and developers can define custom slicing behavior for their own types by implementing appropriate overloads of the GetSlice and SetSlice methods.</p>  <p>In previous releases, the compiler enforced a limit of 4 slicing dimensions.&#160; This limit has been lifted; developers are now free to define arbitrary-dimensional slicing semantics in their code.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/0841.slices_3130D11E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/0841.slices_5F00_3130D11E.png"><img title="slices" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="slices" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/6710.slices_thumb_430D64EB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/6710.slices_5F00_thumb_5F00_430D64EB.png" width="409" height="237" /></a></p>  <h4>Spaces in active pattern case identifiers</h4>  <p>There was previously a restriction preventing space characters from being used in active pattern case identifiers.&#160; This restriction has been relaxed; space characters may now be used in ``&#160; ``-escaped case identifiers.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/0842.patterns_02D74B71.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/0842.patterns_5F00_02D74B71.png"><img title="patterns" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="patterns" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/39/71/metablogapi/7128.patterns_thumb_259B13DF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-39-71-metablogapi/7128.patterns_5F00_thumb_5F00_259B13DF.png" width="318" height="125" /></a></p>  <h3>And beyond</h3>  <p>In addition to what’s mentioned here, Visual F# 3.1.2 also includes a number of bug fixes, a couple of performance improvements, and even some optimized code generation for struct processing. A full list of changes and bug fixes is <a href="https://visualfsharp.codeplex.com/SourceControl/latest#changelist.txt" target="_blank">in our Codeplex repo</a>.</p>  <h2>More Information</h2>  <p>For more information about F# generally, please visit <a href="https://fsharp.org" target="_blank">https://fsharp.org</a>. If you are interested in contributing to the Visual F# Tools, please visit our open source home at <a title="https://visualfsharp.codeplex.com/" href="https://visualfsharp.codeplex.com/" target="_blank">https://visualfsharp.codeplex.com/</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>