Skip to content

Releases: fable-compiler/Fable

5.0.0-alpha.21

15 Dec 16:37

Choose a tag to compare

5.0.0-alpha.21 Pre-release
Pre-release

Added

  • [Python] Support catching Python BaseException subclasses (KeyboardInterrupt, SystemExit, GeneratorExit) for Python interop (by @dbrattli)

Changed

  • [Python] F# task { } expressions now generate Python async def functions (by @dbrattli)
  • [Python] Generate idiomatic except clauses for typed exception patterns (by @dbrattli)

Fixed

  • [Python] Fix ResizeArray compatibility with Seq/Array functions (by @dbrattli)
  • [Python] Fix FSharpList generic type parameter handling for IEnumerable_1 compatibility (by @dbrattli)

5.0.0-alpha.20

08 Dec 14:00

Choose a tag to compare

5.0.0-alpha.20 Pre-release
Pre-release

Added

  • [Python] Add Array.skipWhile support (by @dbrattli)
  • [Python] Add Array.takeWhile support (by @dbrattli)
  • [Python] Allow IEnumerator_1 as base class to fix typing issues (by @dbrattli)
  • [Python] Add Pythonic import path syntax for relative imports (.module, ..parent, ...grandparent) (by @dbrattli)
  • [Python] Add [<Py.DecorateTemplate>] attribute for creating custom decorator attributes (by @dbrattli)
  • [Python] Add [<Py.ClassAttributesTemplate>] attribute for creating custom class attribute shortcuts (by @dbrattli)
  • [Python] Add [<Py.DataClass>] as a built-in shorthand for [<Py.ClassAttributes(style = Attributes, init = false)>] (by @dbrattli)

Fixed

  • [Python] Fix String.Concat spread operator issue in Python transpilation (by @dbrattli)
  • [Python] Fix regression [<Erase>] on class types not preventing them from being emitted to Python (by @dbrattli)
  • [Python] Fix regression %A format specifier to output booleans as lowercase true/false (by @dbrattli)
  • [Python] Fix various bugs in fable-library numeric types and string operations (by @dbrattli)

Changed

  • [Python] [<Py.Decorate>] now emits decorator strings verbatim and adds importFrom parameter for explicit import control (by @dbrattli)

5.0.0-alpha.19

04 Dec 13:43

Choose a tag to compare

5.0.0-alpha.19 Pre-release
Pre-release

Fixed

  • [Python] Fix printf.cont() not applying continuation function when currying (by @dbrattli)

Added

  • [Python] Add support for [<Py.Decorate>] attribute on methods (previously only worked on classes)
  • [Python] Add new [<Py.ClassMethod>] attribute to emit @classmethod instead of @staticmethod
  • [Python] Added support for Pydantic serialization of core numeric and array types (by @dbrattli)

5.0.0-alpha.18

03 Dec 10:02

Choose a tag to compare

5.0.0-alpha.18 Pre-release
Pre-release

Fixed

  • [Python] Fix record member method naming (by @dbrattli)
  • [Python] Fix regression, named arguments not being converted to snake_case (by @dbrattli)
  • [Python] Fix regression, erased interfaces should not generate code (#4277) (by @dbrattli)

Changed

  • [Rust] Update fable-library-rust dependencies (by @ncave)
  • [All] Update TargetFramework to net10.0 (by @ncave)
  • [All] Update FCS to latest (commit cfda5f6) (by @ncave)

5.0.0-alpha.17

27 Nov 14:23

Choose a tag to compare

5.0.0-alpha.17 Pre-release
Pre-release

Changed

  • [Python] fable-library for Python is now distributed via PyPI instead of being bundled in the NuGet package (by @dbrattli)

5.0.0-alpha.16

25 Nov 22:11

Choose a tag to compare

5.0.0-alpha.16 Pre-release
Pre-release

Fixed

Changed

  • [All] Invoke MSBuild from Fable current working directory (by @cr3wdayt5p)

4.28.0

25 Nov 22:04
7243111

Choose a tag to compare

Fixed

5.0.0-alpha.15

19 Nov 10:58

Choose a tag to compare

5.0.0-alpha.15 Pre-release
Pre-release

Added

  • [TS] Added support for erasableSyntaxOnly in TypeScript (by @ncave)
  • [All] Added some default System exception implementations (by @ncave)
  • [All] Added ofOption/toOption/ofValueOption/toValueOption (by @ncave)
  • [Python] Added Decorate attribute to add Python decorators to classes (by @dbrattli)
  • [Python] Added ClassAttributes attribute to control Python class generation (@dbrattli)
  • [Python] Added support for Python 3.14 (by @dbrattli)

Changed

  • [JS/TS] Replace the deprecated substr method with slice (by @Thorium)

Fixed

  • [TS] Fix ObjectExpr tests with multiple interfaces (by @ncave)
  • [TS] Fix ObjectExpr abstract base constructor type (by @ncave)
  • [JS/TS] Fix #4240 Missing DateTime constructor (by @ncave)
  • [PHP] Fix php import extensions (by @MangelMaxime)
  • [TS] Fix #3973 Typescript imports file extension (by @ncave)
  • [TS] Fix support for abstract classes and members (by @ncave)
  • [TS] Fix getters, setters, indexers in interfaces (by @ncave)
  • [TS] Enable typedArrays flag usage for TypeScript (by @ncave)
  • [All] Fix #4221 Fable.Type union case arg names (by @ncave)
  • [All] Erase Nullable Reference Types to inner type (by @ncave)
  • [Python] Improve Python (e.g. Pydantic) interop (by @dbrattli)
  • [JS/TS] Fix comparers for non-nullable types (by @ncave)
  • [Rust] Fix curried object expression getters (by @ncave)
  • [Rust] Fix compiler-generated generic args (by @ncave)
  • [All] Fixed #4041 missing unit argument (by @ncave)
  • [JS/TS/Python] Fixed eq comparer mangling (by @ncave)
  • [All] Fix all BitConverter return types (by @ncave)
  • [TS] Don't cast union case types to any (by @ncave)
  • [JS/TS] Fix Dictionary.ICollection.Remove (by @ncave)
  • [TS/Dart] Fixed optional parameter types (by @ncave)
  • [TS] Initialize un-initialized variables (by @ncave)
  • [JS/TS] Replace Error with Exception (by @ncave)
  • [All] Fix MSBuildResolver to include define when restoring the project (by @MangelMaxime)

5.0.0-alpha.14

25 Jul 18:57

Choose a tag to compare

5.0.0-alpha.14 Pre-release
Pre-release

Added

  • [Python] Support for Nullable Reference Types (by @dbrattli)
  • [JS/TS] Fix #3533: Add directives prologues supports (by @MangelMaxime)
  • [JS/TS] Support for Nullable Reference Types (by @ncave and @MangelMaxime)
  • [Rust] Initial support for Nullable Reference Types (by @ncave)

Changed

  • [Python] Use Python 3.12 type parameter syntax. Deprecate Python 3.10 and 3.11 (by @dbrattli)
  • [Python] Records now snake-cases all member fields (by @dbrattli)
  • [Python] Anonymous records now preserves the casing of member fields (by @dbrattli)
  • [Python] Option type is now Option[T] instead of T | None (by @dbrattli)
  • [Python] Use uv instead of Poetry for package management (by @dbrattli)
  • [Python] Fable Library for Python is now partially written in Rust (by @dbrattli)
  • [All] Improve filewatcher error messages (by @goswinr)

Fixed

  • [Python] Fixed static properties and are now translated as Python class attributes (by @dbrattli)
  • [Python] Fixed DateTime with DateTimeKind generates proper enum reference (#3689) (by @dbrattli)
  • [Python] Fixed Dictionary KeyValuePair enumeration when casting to IEnumerable (#3771) (by @dbrattli)
  • [Python] Fixed createEmpty<T> for interfaces using SimpleNamespace with type casting (#3604) (by @dbrattli)
  • [Python] Fixed EmitMethod + ParamObject losing keyword arguments (#3871) (by @dbrattli)
  • [Python] Fixed EmitConstructor + ParamObject losing keyword arguments (#3871) (by @dbrattli)
  • [Python] Fixed DateTimeOffset.TryParse, ToString() and Offset property access (#3854) (by @dbrattli)
  • [Python] Fixed anonymous records in Maps causing comparison errors (#3869) (by @dbrattli)
  • [Python] Fixed handling of erased types for Python (#3968) (by @dbrattli)
  • [Python] Fixed unit function (zero arguments functions) are transpiled inconsistently (#4126) (by @dbrattli)
  • [Python] Fixed resource managers with empty body (#3912) (by @dbrattli)
  • [Python] Fixed Async.Sleepto handle TimeSpan correctly (#4137) (by @dbrattli)
  • [Python] Make sure snake-cased Record do not conflict (by @dbrattli)
  • [Python] Do not return None | None for optional unit types (#4127) (by @dbrattli)
  • [JS/TS] JSX : Alias empty CEs list to null when encountered in the children list (by @MangelMaxime)
  • [JS/TS] JSX : Allow usage of unbox when definining properties for JSX.create (by @MangelMaxime)

4.26.0

14 Jul 12:50

Choose a tag to compare

Changed

  • [All] Fix #4176: Move TargetFramework to net8.0 (@ncave)