Releases: fable-compiler/Fable
Releases · fable-compiler/Fable
5.0.0-alpha.21
Added
- [Python] Support catching Python
BaseExceptionsubclasses (KeyboardInterrupt,SystemExit,GeneratorExit) for Python interop (by @dbrattli)
Changed
- [Python] F#
task { }expressions now generate Pythonasync deffunctions (by @dbrattli) - [Python] Generate idiomatic
exceptclauses for typed exception patterns (by @dbrattli)
Fixed
5.0.0-alpha.20
Added
- [Python] Add
Array.skipWhilesupport (by @dbrattli) - [Python] Add
Array.takeWhilesupport (by @dbrattli) - [Python] Allow
IEnumerator_1as 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
%Aformat specifier to output booleans as lowercasetrue/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 addsimportFromparameter for explicit import control (by @dbrattli)
5.0.0-alpha.19
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
5.0.0-alpha.17
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
Fixed
- [All] Fix
--cwdwith quoted paths (by @MangelMaxime) - [All] Fix
--legacyCrackerflag logic (by @MangelMaxime) - [All] Fix
BuildalyzerCrackerso it can work on .NET 10 (by @MangelMaxime)
Changed
- [All] Invoke MSBuild from Fable current working directory (by @cr3wdayt5p)
4.28.0
Fixed
- [All] Fix
BuildalyzerCrackerso it can work on .NET 10 (by @MangelMaxime) - [All] Fix
--cwdwith quoted paths (by @MangelMaxime)
5.0.0-alpha.15
Added
- [TS] Added support for
erasableSyntaxOnlyin TypeScript (by @ncave) - [All] Added some default
Systemexception implementations (by @ncave) - [All] Added
ofOption/toOption/ofValueOption/toValueOption(by @ncave) - [Python] Added
Decorateattribute to add Python decorators to classes (by @dbrattli) - [Python] Added
ClassAttributesattribute to control Python class generation (@dbrattli) - [Python] Added support for Python 3.14 (by @dbrattli)
Changed
- [JS/TS] Replace the deprecated
substrmethod withslice(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
BitConverterreturn 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
ErrorwithException(by @ncave) - [All] Fix MSBuildResolver to include define when restoring the project (by @MangelMaxime)
5.0.0-alpha.14
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 ofT | 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 usingSimpleNamespacewith 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
emptyCEs list tonullwhen encountered in thechildrenlist (by @MangelMaxime) - [JS/TS] JSX : Allow usage of
unboxwhen definining properties forJSX.create(by @MangelMaxime)