Fable 5 alpha

Mangel MaximeDecember 18, 2024

Since the end of November, we have been working on Fable 5.

We need your help to test it and report any issues you may find.

You can install the latest alpha version of Fable by running the following command:

# This is only necessary if you haven't installed any dotnet tool yet in the directory
dotnet new tool-manifest

dotnet tool install fable --prerelease

Compatibility with Fable 4

Fable 5 is compatible with Fable 4 projects, except that it is now a net8.0 tool.

A new project cracker

Being a net8.0 tool gives us access to MSBuild for cracking your projects. Most of the work has been done by Florian Verdonck. During the last year, the new cracker has been successfully tested against several projects, and for this reason, it is now the default.

If you encounter any issues, you can fall back to the old cracker by passing --legacyCracker to the fable command. But please, report the issue to us.

F# 9 support

Below is the status of F# 9 features supported by Fable 5:

Only the features that makes sense in the context of Fable are listed here.

FeatureStatusTracking issue
Nullable reference types🚧Discussion happening at #3887
Discriminated union .Is* properties⚠️TypeScript not fully supported (#3982)
Partial active patterns can return bool instead of unit optionβœ…
Empty-bodied computation expressionsβœ…
Updates to the standard library (FSharp.Core)🚧

Legend:

  • 🚧 - Not yet supported
  • ⚠️ - Limited support
  • βœ… - Supported

Future development

Because we are a small team, we have decided to focus our efforts on Fable 5.

This means that all new bug fixes and features will be added to Fable 5 and not Fable 4. In fact, Fable 5 is likely stable enough to be released, but we prefer to wait a little longer, because we don’t want to break your project for Christmas πŸŽ„.