Some Recent F# Core Engineering Highlights

In this blog post, we’ll have a quick look at the recent work done by the community that falls within the remit of the Core Engineering group – there is a lot going on!

F# Compiler Service

F# Compiler Service (FSharp.Compiler.Service.dll) is a recent community project which can be used for hosting the F# compiler. This is a fundamental project that enables building other open components on top of the F# compiler and has already enabled much of the features in F# Power Tools, F# Formatting and other libraries.

The F# Compiler Service currently exposes a number of core compiler APIs including:

  • F# language tools for editors including the F# tokenizer, ability to process parsed AST of F# code, editor services for auto-completion and tools for resolving symbols and other information about F# code.

  • Hosting of F# interactive and compiler allows calling F# interactive and the F# compiler as .NET libraries. This way, you can compile and evaluate F# code on the fly.

There is a lot more that you can do. For more information:

Cross-platform and Open Tools

The core F# open-source repository has been getting ready for the upcoming development of F# 4.0. The “master” branch is now fully integrated with the open-source release of F# 3.1 and everything is now building automatically:

  • Head (branch master), Mono 3.x, OSX + some unit tests (Travis) Build Status
  • F# 3.1 (branch fsharp_31), Mono 3.x, OSX + some unit tests (Travis) Build Status
  • F# 3.0 (branch fsharp_30), Mono 3.x, OSX + some unit tests (Travis) Build Status

Much of the F# compiler test suite can now be run on OSX and Linux. This flushed out about 5 bugs in Mono, nearly all of which have already been fixed. The test are also run automatically as part of the Travis build, so if you’re contributing, you do not have to worry about breaking things!

The F# bindings for Xamarin Studio and Emacs have had some nice work by Robin and Dave where the identifier parsing code (used for auto-complete and tool tips) is now shared between both the Emacs addin and Xamarin Studio addin. This has resulted in a number of fixes to intellisense.

Although it is still in its early days, there has also been some work on integrating F# with Vim and Sublime text. If you’re missing your favorite editor here, be sure to contribute!

Visual Studio F# Power Tools

In the recent few months, amazing work has been done on Visual F# Power Tools. This is an open source project that aims to bring useful F# Visual Studio extensions into a single home. The project has been rapidly developing and currently supports the following features:

  • Automatically generating XML documentation comments
  • Formatting document and selection (integrating the Fantomas project)
  • Navigation features including navigation bar, navigate to command and more
  • Improved syntax highlighting and depth colorization
  • Rename refactoring, automatic implementation of interfaces and more

To get involved with the project:

Published: 27 May 2014

Tomas Petricek
(on behalf of the F# Core Engineering group)