Fable 5.0.0-rc.6

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

Fixed

  • [Dart] Enable explicit variable typing for more data types (by @ncave)
  • [Dart] Fix tests for round, sign, truncate, log, log2, log10, pow, DivRem, Min, Max, Clamp, MinMagnitude, MaxMagnitude, cosh, sinh, tanh, and float Parse (by @ncave)
  • [Python] Add Math.DivRem support for int, int64, and bigint (by @dbrattli)
  • [Python] Fix modulo with negative numbers using Python floored semantics instead of .NET truncated semantics for bigint (fixes #4462) (by @dbrattli)
  • [Beam] Fix System.String.Concat with 4+ arguments not being supported (by @dbrattli)
  • [TS/Python] Fix thisArg type for overloads in structs (#4453) (by @ncave)
  • [TS/Python] Fix invalid this argument type in structs (#4453) (by @ncave)
  • [JS/TS] Fix N format specifier (ToString("N0"), String.Format("{0:N0}", ...)) producing a trailing dot when precision is 0 (fix #2582) (by @MangelMaxime)
  • [JS/TS] Fix C0 and P0 format specifiers producing trailing dot (e.g., "¤1,000.""¤1,000") (by @MangelMaxime)
  • [All] Fix captured side-effect-free values (e.g. empty ResizeArray) being incorrectly inlined into object expression getters in release mode, causing a new instance to be created on each getter call (fixes #3779) (by @MangelMaxime)
  • [Python] Fix missing await on else branch of ternary expressions in async closures (by @dbrattli)
  • [Beam] Fix |> ignore on cross-module Emit calls generating variable bindings that shadow Emit case-clause variables (by @dbrattli)
  • [Beam] Fix containsIdentRef not checking Call ThisArg (by @dbrattli)
  • [All] Fix CLI color not resetting after error messages (fixes #3755) (by @MangelMaxime)
  • [JS/TS] StringEnum now respect CompiledValue and CompiledName (by @shayanhabibi)
  • [JS/TS] Fix invalid syntax emitted when negating negative literals (fix #4251) (by @MangelMaxime)
  • [Rust] Fix negative counting in CallInfo.GenericArgs (by @ncave)
  • [Rust] Fix inline bindings and captured idents tracking (by @ncave)
  • [Rust] Fix return! in async computation expressions so inner async workflows are returned and awaited correctly (by @mizzle-mo)
  • [JS/TS] Improve Regex.Escape and Regex.Unescape handling (by @MangelMaxime)
  • [All] Fix allow plugins to target .NET6 target framework (by @MangelMaxime)
  • [Python] Fix function references passed as arguments inside tail-call optimised functions gaining unnecessary default parameters for outer TCO variables they don't reference (fix #3877)
  • [TS] Fix abstract instance methods not emitted in TypeScript when class uses [<AttachMembers>] (fixes #3506) (by @MangelMaxime)
  • [JS/TS] Fix Unchecked.defaultof<'T> for struct types with fields returning undefined instead of zero-initialized values (by @MangelMaxime)
  • [JS/TS] Fixed quotation for union string cases (by @MangelMaxime)
  • [Python] Fix Unchecked.defaultof<'T> for struct types with fields returning incorrect values instead of zero-initialized instances (by @MangelMaxime)
  • [Python] Fix Unchecked.defaultof<char> returning "" (empty string) instead of "\u0000" (null character) (by @MangelMaxime)
  • [Python] Improve Unchecked.defaultof<_> for declared entities (by @MangelMaxime)

This package has no dependencies.

Version Downloads Last updated
5.0.0-rc.6 1 04/05/2026
5.0.0-rc.5 0 03/20/2026
5.0.0-rc.4 0 03/19/2026
5.0.0-rc.3 0 03/10/2026
5.0.0-rc.2 0 03/03/2026
5.0.0-rc.1 0 02/26/2026
5.0.0-alpha.24 0 02/13/2026
5.0.0-alpha.23 0 02/03/2026
5.0.0-alpha.22 0 12/26/2025
5.0.0-alpha.21 0 12/15/2025
5.0.0-alpha.20 0 12/08/2025
5.0.0-alpha.19 0 12/04/2025
5.0.0-alpha.18 0 12/03/2025
5.0.0-alpha.17 0 11/27/2025
5.0.0-alpha.16 0 11/25/2025
5.0.0-alpha.15 0 11/19/2025
5.0.0-alpha.14 0 07/25/2025
5.0.0-alpha.13 0 05/04/2025
5.0.0-alpha.12 0 03/14/2025
5.0.0-alpha.11 0 03/03/2025
5.0.0-alpha.10 0 02/16/2025
5.0.0-alpha.9 0 01/28/2025
5.0.0-alpha.8 0 01/27/2025
5.0.0-alpha.7 0 01/23/2025
5.0.0-alpha.6 0 01/23/2025
5.0.0-alpha.5 0 01/09/2025
5.0.0-alpha.4 0 01/03/2025
5.0.0-alpha.3 0 12/18/2024
5.0.0-alpha.2 0 11/26/2024
5.0.0-alpha.1 0 11/24/2024
4.29.0 0 02/13/2026
4.28.0 0 11/25/2025
4.27.0 0 11/13/2025
4.25.0 0 04/26/2025
4.24.0 0 11/19/2024
4.23.0 0 10/28/2024
4.22.0 0 10/02/2024
4.21.0 0 09/19/2024
4.20.0 0 09/04/2024
4.19.3 0 06/17/2024
4.19.2 0 06/13/2024
4.19.1 0 06/13/2024
4.19.0 0 06/10/2024
4.18.0 0 05/23/2024
4.17.0 0 04/23/2024
4.16.0 0 03/20/2024
4.15.0 0 03/18/2024
4.14.0 0 03/01/2024
4.13.0 0 02/20/2024
4.12.2 0 02/13/2024
4.12.1 0 02/13/2024
4.11.0 0 01/30/2024
4.10.0 0 01/25/2024
4.9.0 0 12/14/2023
4.8.1 0 12/12/2023
4.8.0 0 12/12/2023
4.7.0 0 12/06/2023
4.6.0 0 11/27/2023
4.5.0 0 11/07/2023
4.4.1 0 10/25/2023
4.4.0 0 10/24/2023
4.3.0 0 10/18/2023
4.2.2 0 10/14/2023
4.2.1 0 09/29/2023
4.1.4 0 05/16/2023
4.1.3 0 04/28/2023
4.1.2 0 04/22/2023
4.1.1 0 04/22/2023
4.1.0 0 04/18/2023
4.1.0-beta-001 0 04/16/2023
4.0.5 0 04/08/2023
4.0.4 0 04/04/2023
4.0.3 0 03/30/2023
4.0.2 0 03/27/2023
4.0.1 0 03/18/2023
4.0.0 0 03/14/2023
4.0.0-theta-018 0 11/19/2022
4.0.0-theta-017 0 11/16/2022
4.0.0-theta-016 0 11/13/2022
4.0.0-theta-015 0 11/05/2022
4.0.0-theta-014 0 10/31/2022
4.0.0-theta-012 0 10/14/2022
4.0.0-theta-011 0 10/04/2022
4.0.0-theta-010 0 09/28/2022
4.0.0-theta-009 0 09/28/2022
4.0.0-theta-008 0 09/22/2022
4.0.0-theta-007 0 09/21/2022
4.0.0-theta-006 1 04/05/2026
4.0.0-theta-005 0 09/17/2022
4.0.0-theta-004 0 09/14/2022
4.0.0-theta-003 0 09/12/2022
4.0.0-theta-002 0 09/11/2022
4.0.0-theta-001 0 09/09/2022
4.0.0-snake-island-alpha-026 0 09/08/2022
4.0.0-snake-island-alpha-025 0 09/06/2022
4.0.0-snake-island-alpha-024 0 09/02/2022
4.0.0-snake-island-alpha-023 0 08/30/2022
4.0.0-snake-island-alpha-021 0 08/21/2022
4.0.0-snake-island-alpha-020 0 08/14/2022
4.0.0-snake-island-alpha-019 0 07/31/2022
4.0.0-snake-island-alpha-018 0 07/30/2022
4.0.0-snake-island-alpha-017 0 07/27/2022
4.0.0-snake-island-alpha-016 0 07/26/2022
4.0.0-snake-island-alpha-015 0 07/26/2022
4.0.0-snake-island-alpha-014 0 07/25/2022
4.0.0-snake-island-alpha-013 0 07/25/2022
4.0.0-snake-island-alpha-012 0 07/12/2022
4.0.0-snake-island-alpha-011 0 06/23/2022
4.0.0-snake-island-alpha-010 0 06/03/2022
4.0.0-snake-island-alpha-009 0 06/02/2022
4.0.0-snake-island-alpha-008 0 06/01/2022
4.0.0-snake-island-alpha-007 0 05/25/2022
4.0.0-snake-island-alpha-006 0 05/24/2022
4.0.0-snake-island-alpha-005 0 05/23/2022
4.0.0-snake-island-alpha-004 0 05/21/2022
4.0.0-snake-island-alpha-003 0 05/20/2022
4.0.0-snake-island-alpha-002 0 05/19/2022
4.0.0-snake-island-alpha-001 0 05/11/2022
3.7.22 0 05/11/2023
3.7.21 0 05/11/2023
3.7.20 0 09/27/2022
3.7.19 0 09/27/2022
3.7.18 0 08/16/2022
3.7.17 0 07/21/2022
3.7.16 0 07/05/2022
3.7.15 0 06/29/2022
3.7.14 0 06/14/2022
3.7.12 0 05/27/2022
3.7.11 0 05/01/2022
3.7.10 0 04/29/2022
3.7.9 0 04/01/2022
3.7.8 0 03/24/2022
3.7.7 0 03/22/2022
3.7.6 0 03/16/2022
3.7.5 0 03/01/2022
3.7.4 0 02/25/2022
3.7.3 0 02/23/2022
3.7.2 0 02/22/2022
3.7.1 1 04/06/2026
3.7.0 0 02/07/2022
3.7.0-beta-015 0 01/26/2022
3.7.0-beta-014 0 01/24/2022
3.7.0-beta-012 0 01/18/2022
3.7.0-beta-011 0 01/14/2022
3.7.0-beta-010 0 01/14/2022
3.7.0-beta-009 0 01/12/2022
3.7.0-beta-008 0 01/11/2022
3.7.0-beta-007 0 01/11/2022
3.7.0-beta-006 0 01/11/2022
3.7.0-beta-005 0 01/07/2022
3.7.0-beta-004 0 01/05/2022
3.7.0-beta-003 2 04/05/2026
3.7.0-beta-002 0 12/28/2021
3.7.0-beta-001 0 12/20/2021
3.6.3 0 12/01/2021
3.6.2 0 11/26/2021
3.6.1 0 11/23/2021
3.6.0 0 11/19/2021
3.6.0-beta-003 0 11/17/2021
3.6.0-beta-002 0 11/15/2021
3.6.0-beta-001 0 11/14/2021
3.4.10 0 11/08/2021
3.4.9 0 11/05/2021
3.4.8 0 11/04/2021
3.4.7 0 10/28/2021
3.4.6 0 10/26/2021
3.4.5 0 10/21/2021
3.4.4 0 10/20/2021
3.4.3 0 10/14/2021
3.4.2 0 10/05/2021
3.4.1 0 10/04/2021
3.4.0 0 10/01/2021
3.3.1 0 09/27/2021
3.3.0 0 09/16/2021
3.3.0-beta-002 0 08/28/2021
3.3.0-beta-001 0 08/27/2021
3.2.14 0 09/11/2021
3.2.12 0 08/26/2021
3.2.11 0 08/19/2021
3.2.10 0 08/02/2021
3.2.9 0 07/08/2021
3.2.8 0 06/26/2021
3.2.7 0 06/25/2021
3.2.6 0 06/22/2021
3.2.5 0 06/21/2021
3.2.4 0 06/16/2021
3.2.3 0 06/11/2021
3.2.2 0 06/03/2021
3.2.1 0 05/28/2021
3.2.0 0 05/28/2021
3.1.16 0 05/14/2021
3.1.15 0 04/16/2021
3.1.14 0 04/09/2021
3.1.12 0 03/23/2021
3.1.11 0 03/17/2021
3.1.10 0 03/16/2021
3.1.9 0 03/15/2021
3.1.8 0 03/15/2021
3.1.7 0 03/11/2021
3.1.6 0 03/11/2021
3.1.5 0 02/18/2021
3.1.4 0 02/12/2021
3.1.3 0 02/12/2021
3.1.2 0 01/25/2021
3.1.1 0 01/13/2021
3.1.0 0 01/11/2021
3.1.0-beta-001 0 01/08/2021
3.0.5 0 12/22/2020
3.0.4 0 12/19/2020
3.0.3 0 12/18/2020
3.0.2 0 12/16/2020
3.0.1 0 12/11/2020
3.0.0 0 12/04/2020
3.0.0-nagareyama-rc-011 0 12/02/2020
3.0.0-nagareyama-rc-010 0 11/28/2020
3.0.0-nagareyama-rc-009 3 04/05/2026
3.0.0-nagareyama-rc-008 0 11/19/2020
3.0.0-nagareyama-rc-007 0 11/15/2020
3.0.0-nagareyama-rc-006 0 11/13/2020
3.0.0-nagareyama-rc-005 0 11/12/2020
3.0.0-nagareyama-rc-004 0 11/10/2020
3.0.0-nagareyama-rc-003 0 11/09/2020
3.0.0-nagareyama-rc-002 1 04/05/2026
3.0.0-nagareyama-rc-001 0 11/07/2020
3.0.0-nagareyama-beta-005 0 10/31/2020
3.0.0-nagareyama-beta-004 0 10/27/2020
3.0.0-nagareyama-beta-003 0 10/25/2020
3.0.0-nagareyama-beta-002 0 10/23/2020
3.0.0-nagareyama-beta-001 0 10/23/2020
3.0.0-nagareyama-alpha-017 0 10/22/2020
3.0.0-nagareyama-alpha-016 0 10/22/2020
3.0.0-nagareyama-alpha-015 0 10/19/2020
3.0.0-nagareyama-alpha-014 0 10/18/2020
3.0.0-nagareyama-alpha-012 0 10/15/2020
3.0.0-nagareyama-alpha-011 0 10/15/2020
3.0.0-nagareyama-alpha-010 0 10/13/2020
3.0.0-nagareyama-alpha-009 0 10/11/2020
3.0.0-nagareyama-alpha-008 1 04/05/2026
3.0.0-nagareyama-alpha-007 0 10/02/2020
3.0.0-nagareyama-alpha-006 0 09/30/2020
3.0.0-nagareyama-alpha-005 3 04/05/2026
3.0.0-nagareyama-alpha-004 0 09/28/2020
3.0.0-nagareyama-alpha-003 0 09/14/2020
3.0.0-nagareyama-alpha-002 0 09/13/2020
3.0.0-nagareyama-alpha-001 0 09/13/2020