Fable 5.0.0-alpha.11

This is a prerelease version of Fable.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet tool install --global Fable --version 5.0.0-alpha.11
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Fable --version 5.0.0-alpha.11
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Fable&version=5.0.0-alpha.11&prerelease
                    
nuke :add-package Fable --version 5.0.0-alpha.11
                    

Fable: F# |> JS

Nuget Build Join the chat at https://gitter.im/fable-compiler/Fable

Follow us on Twitter!

Fable is an F# to JavaScript compiler powered FSharp Compiler Services, designed to make F# a first-class citizen of the JavaScript ecosystem. Check the website for more information and if you find the project useful, don't forget to give us a star!

Fable actually uses a fork of FCS with a few tweaks. Binaries are in lib/fcs folder. See this PR for more info.

Getting started

Check this page.

Building

Requirements

Use VSCode Dev Container

You can use VSCode Dev Container to get a preconfigured environment both with requirements and VSCode extensions.

  1. You need to have docker installed and running.
  2. Install the Dev Container extension in VSCode
  3. Open the project in VSCode and click on the green button in the bottom left corner.
Use your machine

Make sure the following requirements are installed in your system:

Build

Run ./build.sh or ./build.cmd to see the build options.

When using VSCode, you can also run the build tasks from the command palette (Ctrl+Shift+P) by typing Run Task and selecting the task you want to run.

We also configured several debug configurations that you can use from the debug panel (Ctrl+Shift+D). This is useful as you can attach the debugger to the Fable compiler process to check what's going on.

Contributing

Just by using Fable you're already contributing! You can help the community a lot by sharing examples and experiences in your personal (or Fable's) blog and/or by editing the Fable Resources page.

Send bug reports (ideally with minimal code to reproduce the problem) and feature requests to this GitHub repository. To interact with the community you can use the Gitter chat but please note maintainers are not checking the chat regularly.

If you are up to contribute a fix or a feature yourself, you're more than welcome! Please send first an issue or a minimal Work In Progess PR so we can discuss the implementation details in advance.

List of changelogs

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
5.0.0-alpha.12 1,277 3/14/2025
5.0.0-alpha.11 699 3/3/2025
5.0.0-alpha.10 972 2/16/2025
5.0.0-alpha.9 969 1/28/2025
5.0.0-alpha.8 135 1/27/2025
5.0.0-alpha.7 372 1/23/2025
5.0.0-alpha.6 102 1/23/2025
5.0.0-alpha.5 770 1/9/2025
5.0.0-alpha.4 174 1/3/2025
5.0.0-alpha.3 565 12/18/2024
5.0.0-alpha.2 249 11/26/2024
5.0.0-alpha.1 104 11/24/2024
4.25.0 247 4/26/2025
4.24.0 20,817 11/19/2024
4.23.0 4,593 10/28/2024
4.22.0 8,705 10/2/2024
4.21.0 4,179 9/19/2024
4.20.0 3,573 9/4/2024
4.19.3 20,427 6/17/2024
4.19.2 421 6/13/2024
4.19.1 211 6/13/2024
4.19.0 1,805 6/10/2024
4.18.0 2,037 5/23/2024
4.17.0 12,167 4/23/2024
4.16.0 10,562 3/20/2024
4.15.0 988 3/18/2024
4.14.0 12,890 3/1/2024
4.13.0 4,735 2/20/2024
4.12.2 18,074 2/13/2024
4.12.1 803 2/13/2024
4.11.0 5,898 1/30/2024
4.10.0 18,542 1/25/2024
4.9.0 28,979 12/14/2023
4.8.1 1,585 12/12/2023
4.8.0 707 12/12/2023
4.7.0 8,728 12/6/2023
4.6.0 10,626 11/27/2023
4.5.0 25,198 11/7/2023
4.4.1 2,896 10/25/2023
4.4.0 19,733 10/24/2023
4.3.0 4,829 10/18/2023
4.2.2 4,066 10/14/2023
4.2.1 13,923 9/29/2023
4.1.4 51,903 5/16/2023
4.1.3 8,023 4/28/2023
4.1.2 4,008 4/22/2023
4.1.1 642 4/22/2023
4.1.0 1,062 4/18/2023
4.1.0-beta-001 647 4/16/2023
4.0.5 1,996 4/8/2023
4.0.4 2,156 4/4/2023
4.0.3 2,230 3/30/2023
4.0.2 1,094 3/27/2023
4.0.1 22,648 3/18/2023
4.0.0 6,742 3/14/2023
4.0.0-theta-018 53,029 11/19/2022
4.0.0-theta-017 597 11/16/2022
4.0.0-theta-016 750 11/13/2022
4.0.0-theta-015 570 11/5/2022
4.0.0-theta-014 387 10/31/2022
4.0.0-theta-012 1,172 10/14/2022
4.0.0-theta-011 947 10/4/2022
4.0.0-theta-010 395 9/28/2022
4.0.0-theta-009 390 9/28/2022
4.0.0-theta-008 439 9/22/2022
4.0.0-theta-007 376 9/21/2022
4.0.0-theta-006 414 9/18/2022
4.0.0-theta-005 352 9/17/2022
4.0.0-theta-004 474 9/14/2022
4.0.0-theta-003 317 9/12/2022
4.0.0-theta-002 273 9/11/2022
4.0.0-theta-001 362 9/9/2022
4.0.0-snake-island-alpha-026 384 9/8/2022
4.0.0-snake-island-alpha-025 354 9/6/2022
4.0.0-snake-island-alpha-024 516 9/2/2022
4.0.0-snake-island-alpha-023 325 8/30/2022
4.0.0-snake-island-alpha-021 890 8/21/2022
4.0.0-snake-island-alpha-020 408 8/14/2022
4.0.0-snake-island-alpha-019 458 7/31/2022
4.0.0-snake-island-alpha-018 311 7/30/2022
4.0.0-snake-island-alpha-017 356 7/27/2022
4.0.0-snake-island-alpha-016 317 7/26/2022
4.0.0-snake-island-alpha-015 288 7/26/2022
4.0.0-snake-island-alpha-014 332 7/25/2022
4.0.0-snake-island-alpha-013 305 7/25/2022
4.0.0-snake-island-alpha-012 443 7/12/2022
4.0.0-snake-island-alpha-011 302 6/23/2022
4.0.0-snake-island-alpha-010 312 6/3/2022
4.0.0-snake-island-alpha-009 270 6/2/2022
4.0.0-snake-island-alpha-008 302 6/1/2022
4.0.0-snake-island-alpha-007 324 5/25/2022
4.0.0-snake-island-alpha-006 281 5/24/2022
4.0.0-snake-island-alpha-005 303 5/23/2022
4.0.0-snake-island-alpha-004 276 5/21/2022
4.0.0-snake-island-alpha-003 303 5/20/2022
4.0.0-snake-island-alpha-002 277 5/19/2022
4.0.0-snake-island-alpha-001 303 5/11/2022
3.7.22 3,904 5/11/2023
3.7.21 255 5/11/2023
3.7.20 37,211 9/27/2022
3.7.19 554 9/27/2022
3.7.18 8,386 8/16/2022
3.7.17 6,913 7/21/2022
3.7.16 4,407 7/5/2022
3.7.15 953 6/29/2022
3.7.14 4,578 6/14/2022
3.7.12 3,787 5/27/2022
3.7.11 6,427 5/1/2022
3.7.10 803 4/29/2022
3.7.9 10,111 4/1/2022
3.7.8 1,764 3/24/2022
3.7.7 5,374 3/22/2022
3.7.6 2,955 3/16/2022
3.7.5 23,817 3/1/2022
3.7.4 952 2/25/2022
3.7.3 4,713 2/23/2022
3.7.2 1,384 2/22/2022
3.7.1 6,213 2/17/2022
3.7.0 8,709 2/7/2022
3.7.0-beta-015 1,246 1/26/2022
3.7.0-beta-014 332 1/24/2022
3.7.0-beta-012 384 1/18/2022
3.7.0-beta-011 320 1/14/2022
3.7.0-beta-010 289 1/14/2022
3.7.0-beta-009 294 1/12/2022
3.7.0-beta-008 267 1/11/2022
3.7.0-beta-007 295 1/11/2022
3.7.0-beta-006 280 1/11/2022
3.7.0-beta-005 306 1/7/2022
3.7.0-beta-004 274 1/5/2022
3.7.0-beta-003 345 1/4/2022
3.7.0-beta-002 267 12/28/2021
3.7.0-beta-001 290 12/20/2021
3.6.3 19,369 12/1/2021
3.6.2 8,806 11/26/2021
3.6.1 12,128 11/23/2021
3.6.0 1,731 11/19/2021
3.6.0-beta-003 413 11/17/2021
3.6.0-beta-002 262 11/15/2021
3.6.0-beta-001 295 11/14/2021
3.4.10 1,437 11/8/2021
3.4.9 2,521 11/5/2021
3.4.8 538 11/4/2021
3.4.7 1,650 10/28/2021
3.4.6 1,113 10/26/2021
3.4.5 782 10/21/2021
3.4.4 928 10/20/2021
3.4.3 18,994 10/14/2021
3.4.2 1,325 10/5/2021
3.4.1 559 10/4/2021
3.4.0 900 10/1/2021
3.3.1 1,766 9/27/2021
3.3.0 3,534 9/16/2021
3.3.0-beta-002 482 8/28/2021
3.3.0-beta-001 266 8/27/2021
3.2.14 1,408 9/11/2021
3.2.12 4,853 8/26/2021
3.2.11 6,181 8/19/2021
3.2.10 2,889 8/2/2021
3.2.9 47,277 7/8/2021
3.2.8 2,577 6/26/2021
3.2.7 544 6/25/2021
3.2.6 2,747 6/22/2021
3.2.5 901 6/21/2021
3.2.4 758 6/16/2021
3.2.3 801 6/11/2021
3.2.2 980 6/3/2021
3.2.1 18,772 5/28/2021
3.2.0 576 5/28/2021
3.1.16 7,712 5/14/2021
3.1.15 6,831 4/16/2021
3.1.14 5,001 4/9/2021
3.1.12 3,248 3/23/2021
3.1.11 4,982 3/17/2021
3.1.10 1,259 3/16/2021
3.1.9 2,799 3/15/2021
3.1.8 559 3/15/2021
3.1.7 1,044 3/11/2021
3.1.6 617 3/11/2021
3.1.5 7,027 2/18/2021
3.1.4 976 2/12/2021
3.1.3 560 2/12/2021
3.1.2 10,552 1/25/2021
3.1.1 6,153 1/13/2021
3.1.0 1,017 1/11/2021
3.1.0-beta-001 415 1/8/2021
3.0.5 2,032 12/22/2020
3.0.4 1,297 12/19/2020
3.0.3 652 12/18/2020
3.0.2 1,160 12/16/2020
3.0.1 1,337 12/11/2020
3.0.0 3,449 12/4/2020
3.0.0-nagareyama-rc-011 654 12/2/2020
3.0.0-nagareyama-rc-010 537 11/28/2020
3.0.0-nagareyama-rc-009 1,083 11/25/2020
3.0.0-nagareyama-rc-008 607 11/19/2020
3.0.0-nagareyama-rc-007 829 11/15/2020
3.0.0-nagareyama-rc-006 627 11/13/2020
3.0.0-nagareyama-rc-005 446 11/12/2020
3.0.0-nagareyama-rc-004 507 11/10/2020
3.0.0-nagareyama-rc-003 477 11/9/2020
3.0.0-nagareyama-rc-002 565 11/8/2020
3.0.0-nagareyama-rc-001 558 11/7/2020
3.0.0-nagareyama-beta-005 490 10/31/2020
3.0.0-nagareyama-beta-004 624 10/27/2020
3.0.0-nagareyama-beta-003 479 10/25/2020
3.0.0-nagareyama-beta-002 610 10/23/2020
3.0.0-nagareyama-beta-001 441 10/23/2020
3.0.0-nagareyama-alpha-017 415 10/22/2020
3.0.0-nagareyama-alpha-016 417 10/22/2020
3.0.0-nagareyama-alpha-015 487 10/19/2020
3.0.0-nagareyama-alpha-014 498 10/18/2020
3.0.0-nagareyama-alpha-012 456 10/15/2020
3.0.0-nagareyama-alpha-011 445 10/15/2020
3.0.0-nagareyama-alpha-010 470 10/13/2020
3.0.0-nagareyama-alpha-009 483 10/11/2020
3.0.0-nagareyama-alpha-008 553 10/5/2020
3.0.0-nagareyama-alpha-007 481 10/2/2020
3.0.0-nagareyama-alpha-006 465 9/30/2020
3.0.0-nagareyama-alpha-005 407 9/29/2020
3.0.0-nagareyama-alpha-004 486 9/28/2020
3.0.0-nagareyama-alpha-003 453 9/14/2020
3.0.0-nagareyama-alpha-002 438 9/13/2020
3.0.0-nagareyama-alpha-001 561 9/13/2020

## Added

- [JS/TS] Add support for `CaseRules.LowerAll` on `StringEnums` (by @shayanhabibi)
- [Rust] Support Rust 2024 language edition (by @ncave)
- [JS/TS] Add `C` and `c` format for numeric types (by @MangelMaxime)
- [JS/TS] Add `B` and `b` format for numeric types (by @MangelMaxime)
- [JS/TS] Add `n` format for numeric types (by @MangelMaxime)
- [JS/TS] Generate compiler error when detecting an invalid/unsupported format specifier for numeric types (by @MangelMaxime)

## Changed

- [JS/TS] Throw an error is an invalid Numeric format is provided (mimic .NET behavior) (by @MangelMaxime)

## Fixed

- [JS/TS] Fix #4025: No reflection info for pojos (by @alfonsogarciacaro)
- [JS/TS] Fix #4049: decimal/bigint to integer conversion checks (by @ncave)
- [JS/TS] Fix `decimal` to `char` conversion checks (by @ManngelMaxime)
- [JS/TS] Propagate non-captured exception when running `Async.Start` or `Async.StartImmediate` (by @MangelMaxime)
- [JS/TS] Report an error at compilation time when trying to use `Async.RunSynchronously` (by @MangelMaxime)
- [JS/TS] Fix short `DateTime` and `DateTimeOffset` short format strings (by @MangelMaxime)
- [All] Don't scan system packages for plugins (by @MangelMaxime)
- [JS/TS] Fix date formatting when repeating a format token more than the known format (example repeating 'd' more than 4 times) (by @MangelMaxime)
- [Python] Fix date formatting when repeating a format token more than the known format (example repeating 'd' more than 4 times) (by @MangelMaxime)
- [JS/TS] Fix #4010: Supports direct nested types when using `jsOptions` (by @MangelMaxime)
   ```fs
   let opts =
       jsOptions<Level1> (fun o ->
           o.level2.level3.valueA <- 10
           o.level2.level3.valueB <- 20
           o.topValueA <- 20
       )
   ```
- [JS/TS] Fix numeric formats (by @MangelMaxime)