| last_commit_released | b471dc16fc3b5132af77b5974d1669c9b8220cca | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| include |
|
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- [Python] Fix derived classes of generic abstract classes not being instantiable due to mismatched mangled method names between abstract stubs and overrides (by @dbrattli)
- [Dart/Rust] Fix
ResizeArrayreference equality (by @ncave) - [JS/TS/Python/Beam] Fix
ResizeArray(System.Collections.Generic.List) equality to use reference equality instead of structural equality (fixes #3718) - [Beam] Fix
List.Conscall replacement and test (by @ncave) - [Beam/Dart/Python/TypeScript] Fix
Array.Equalsto use reference equality instead of structural equality (by @ncave) - [Dart/Python/TypeScript/Rust] Fix
Seq.foldBack2for sequences with different lengths (by @ncave) - [All] Fix missing
HashSetimplementations and tests (by @ncave) - [Rust] Fix
Array/HashMap/HashSetinternal representation (by @ncave) - [Rust] Fix F# classes reference equality semantics (by @ncave)
- [Python] Fix missing
Arraymodule implementations and tests (by @ncave) - [Python] Fix object expressions implementing interfaces with
[<CLIEvent>]members no longer produce unimplementable abstract Protocol members (fixes #3039) - [Python] Fix
DateTime.TryParseincorrectly assigningDateTimeKind.Localto naive datetime strings (should beDateTimeKind.Unspecified) (fixes #3654) - [JS/TS] Fix
String.ContainsignoringStringComparisonargument (second argument was silently discarded) - [Python] Fix
String.ContainsignoringStringComparisonargument (second argument was silently discarded) - [All] Fix
--noRestorenot skipping MSBuildCracker restores (by @ randrag)
- [Python/Beam] Add F# quotation support — construction, pattern matching, and evaluation via
LeafExpressionConverter.EvaluateQuotation(by @dbrattli) - [JS/TS] Add F# quotation support — construction, pattern matching, and evaluation (by @OnurGumus)
- [All] Add support for
Guid.CreateVersion7()andGuid.CreateVersion7(DateTimeOffset)(by @OnurGumus) - [All] Add missing
Array,List, andSeqrandom choice/shuffle/sample members and tests (by @ncave) - [Dart/Rust] Add missing
System.Randomimplementations and tests (by @ncave) - [Beam] Implement missing DateTimeOffset members, add DateOnly and TimeOnly support (by @dbrattli)
- [Python] Remove
python-dateutildependency from fable-library; use stdlibdatetime.fromisoformatwithstrptimefallback - [All] Fix unnecessary object allocations during AST traversal when visiting
Importexpressions (by Repo Assist) - [Beam] Fix
System.Random.Next(0)implementation (by @ncave) - [Python] Fix
System.Randomseeded implementation (by @ncave) - [Beam] Fix
System.Randomseeded implementation to use per-instance state (by @dbrattli) - [Dart] Fix
Array.compareWithcomparing lengths before elements, producing wrong results for arrays with common prefixes (fixes #2961) - [Python] Fix unsafe option unwrapping in
DateTimeOffset.get_Offsetand regex replacements (by @dbrattli) - [All] Replace unsafe option
.Valueunwrapping with safe alternatives in Python/Replacements.fs and Rust/Fable2Rust.fs (code scanning alerts IONIDE-006) - [All] Add
[<return: Struct>]to partial active patterns in Dart and Rust targets to reduce allocations (code scanning alerts IONIDE-009) - [JS/TS] Fix
Guidto use cryptographically strong random values (by @ncave) - [Python] Fix
DateTimeOffsetmillisecond constructor and property (by @ncave) - [Python] Implement missing
DateTimeOffsetmembers and fix equality/comparison to use UTC-normalized instants (by @dbrattli) - [Python] Add
DateOnlyandTimeOnlysupport (by @dbrattli) - [Python] Fix
String.IndexOf/LastIndexOfwithStringComparisonargument emitting it as a start-index instead of a compile error (by @repo-assist) - [Beam] Fix
String.IndexOf/LastIndexOfwithStringComparisonargument incorrectly treating the enum value as a start index - [JS/TS/Python] Fix
Async.StartChildwith timeout always timing out even when the computation finishes before the deadline (fixes #4481) (by @MangelMaxime)
- [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 floatParse(by @ncave) - [Python] Add
Math.DivRemsupport 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.Concatwith 4+ arguments not being supported (by @dbrattli) - [TS/Python] Fix thisArg type for overloads in structs (#4453) (by @ncave)
- [TS/Python] Fix invalid
thisargument type in structs (#4453) (by @ncave) - [JS/TS] Fix
Nformat specifier (ToString("N0"),String.Format("{0:N0}", ...)) producing a trailing dot when precision is 0 (fix #2582) (by @MangelMaxime) - [JS/TS] Fix
C0andP0format 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
awaiton else branch of ternary expressions in async closures (by @dbrattli) - [Beam] Fix
|> ignoreon cross-module Emit calls generating variable bindings that shadow Emit case-clause variables (by @dbrattli) - [Beam] Fix
containsIdentRefnot checkingCallThisArg (by @dbrattli) - [JS/TS]
StringEnumnow respectCompiledValueandCompiledName(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.EscapeandRegex.Unescapehandling (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 returningundefinedinstead 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)
[All] Add support for [<InlineIfLambda>] (by @MangelMaxime)
- [JS/TS] Fix
Array.zeroCreateproducingnullfor user-defined struct (value type) elements instead of a default-initialized instance (by @MangelMaxime) - [All] Fix interpolated string holes missing format specifiers in State.fs and Python/Replacements.fs (code scanning alerts 1144, 1145, 1512)
- [Rust] Replace unsafe
.IsSome && .Valueoption pattern withOption.existsin Fable2Rust.fs (code scanning alert 1125) - [JS/TS] Fix
Unchecked.defaultof<char>being emitted asnullinstead of'\0'(by @MangelMaxime) - [JS/TS] Fix
static val mutablefields declared with[<DefaultValue>]not being zero-initialized (fix #2739) (by @MangelMaxime) - [JS/TS/Python] Fix record/struct types augmented with
static letorstatic member valgenerating extra constructor parameters for each static field, causing constructor arguments to be assigned to wrong slots (by @MangelMaxime) - [TS] Annotate
System.Collections.Generic.IList<T>asMutableArray<T>(by @MangelMaxime) - [JS/TS] Fix
ResizeArrayindex getter/setter not throwingIndexOutOfRangeExceptionwhen index is out of bounds (fix #3812) (by @MangelMaxime) - [Beam] Fix unused term warning in try/catch when exception variable is not referenced (by @dbrattli)
- [Beam] Fix "no effect" warning for pure BIF calls (
self/0,node/0) in non-final block positions (by @dbrattli) - [Beam] Fix
reraise()generating unboundMatchValuevariable — use raw Erlang reason variable for re-throw (by @dbrattli) - [Beam] Fix
Erlang.receive<'T>()resolving to timeout overload due to F# unit argument (by @dbrattli) - [JS/TS] Generate comments for members in class decorated with
[<AttachMembers>](by @MangelMaxime) - [Beam] Fix
[<ImportAll>]generating invalidmodule:*()Erlang code when binding is used as a value (by @dbrattli) - [Beam] Fix string slicing and
Substringwith compound expressions producing wrongbinary:partlength due to missing parentheses in emitted Erlang (by @dbrattli) - [Beam] Fix non-ASCII characters in string literals being truncated to single bytes — emit
<<"..."/utf8>>instead of<<"...">>(by @dbrattli) - [Beam] Fix
Emitexpressions withcaseleaking variables into surrounding scope — auto-wrap in IIFE for scope isolation (by @dbrattli)
- [Beam] Support
[<ImportAll>]+[<Erase>]interface pattern for typed FFI bindings (by @dbrattli)
- [Beam] Fix dropped top-level side effects — multiple
ActionDeclarationmain/0functions are now merged (by @dbrattli) - [Beam] Fix
%%escape in string interpolation producing double%instead of single (by @dbrattli) - [Beam] Fix double-quoted atoms for uppercase
CompiledNameon DU cases (e.g.''EXIT''→'EXIT') (by @dbrattli) - [Beam] Fix cross-project imports producing self-recursive calls when source files share the same name (by @dbrattli)
- [Beam] Support
Type.GetGenericArgumentsandType.GetInterfacefor reflection (by @dbrattli) - [TS] Correctly resolve type references for
TypeScriptTaggedUnion(by @MangelMaxime and @jrwone0) - [Python] Fix
nonlocal/globaldeclarations generated insidematch/casebodies causingSyntaxError(by @dbrattli) - [Python] Fix exception variable captured in deferred closures causing
NameError(PEP 3110 scoping) (by @dbrattli) - [JS/TS] Support format specifiers and single hole in JSX string templates (by @MangelMaxime)
- [All] Fix generic parameter resolution in inline functions with static member constraints (by @Programmerino and @MangelMaxime)
- [Beam] Add arithmetic tests and support for DivRem, MinMagnitude, MaxMagnitude, Decimal rounding, BigInt.Log (by @dbrattli)
- [Beam] Add
fable_random.erland fix Random seeded/NextBytes tests (by @dbrattli)
- [Python] Fix
__hash__to return nativeintinstead ofint32for Python 3.14 compatibility (by @dbrattli) - [Beam] Fix optional arguments by unwrapping at call sites and padding missing trailing args (by @dbrattli)
- [Beam] Fix generic constraint interface dispatch (by @dbrattli)
- [Beam] Fix class constructor field invokes and explicit val fields (by @dbrattli)
- [Beam] Fix mutable record field mutation (by @dbrattli)
- [Beam] Add Erlang/BEAM compilation support: Fable2Beam transform, Beam Replacements, ErlangPrinter, and 31 runtime
.erlmodules. 2086 tests passing. (by @dbrattli)
- [Beam] Fix object expression self-references, constructor
as selfpatterns, and property get/set key collisions in object expressions (by @dbrattli) - [Python] Fix type var scoping for PEP 695 annotations: emit
Anyfor type vars outside function scope and prevent non-repeated generic params from leaking intoScopedTypeParams(by @dbrattli) - [JS/TS] Ignore extra args in FSharpType functions (by @olivercoad)
- [Python] Fix HashSet operations (Count, Contains, Remove, UnionWith, IntersectWith, ExceptWith) to work with both native Python sets and custom MutableSet (by @dbrattli)
- [Python] Fix
Array.length,.Length,Array.isEmpty, andResizeArray.Countto uselen()instead of.lengthproperty for plain Python list interop (by @dbrattli) - [Python] Fix
Task<T>pass-through returns not being awaited in if/else and try/with branches (by @dbrattli) - [Python] Fix
:? T as xtype test pattern in closures causingUnboundLocalErrordue tocast()shadowing outer variable (by @dbrattli)
- [Python] Changed DU representation to use separate classes for each case (by @dbrattli)
- [Python] Fable will no longer auto-generate
__str__or__hash__for custom types. Use thePy.StringableandPy.Hashablemarker interfaces to generate these methods (by @dbrattli)
- [Python] Added ABC base classes for F# types and Py marker interfaces for Python interop (by @dbrattli)
- [Python] Add tuple pattern matching with guards and improve match statement generation (by @dbrattli)
- [Python] Add Python 3.10+ match statement support for pattern matching (by @dbrattli)
- [Python] Fix curry/uncurry to handle arbitrary number of arguments (by @dbrattli)
- [Python] Fix type annotations for protocols, Option casting, and abstract classes (by @dbrattli)
- [Python] Fix type annotations for curried functions and numeric types (by @dbrattli)
- [Python] Fix type annotations for inref, IList, DateKind, and regex collections (by @dbrattli)
- [Python] Fix type annotations for protocols, ABCs, Atom, and Set module (by @dbrattli)
- [Python] Fix type annotations for async functions, date operations, and None handling (by @dbrattli)
- [Python] Fix type annotations for tuple indexing, generic defaults, and reflection (by @dbrattli)
- [All] Fix
StringBuilder.Charsgetter and setter (by @MangelMaxime)
- [Python] Use Fable AST for type parameter extraction instead of Python AST heuristics (by @dbrattli)
- [Python] Fix library type stubs for parse_int32/64 and from_integer (by @dbrattli)
- [Python] Fix missing type parameters on generic methods (by @dbrattli)
- [JS/TS] Fix #4305 DateTimeOffset.Now returns wrong time (by @ncave)
- [Python] Support catching Python
BaseExceptionsubclasses (KeyboardInterrupt,SystemExit,GeneratorExit) for Python interop (by @dbrattli)
- [Python] F#
task { }expressions now generate Pythonasync deffunctions (by @dbrattli) - [Python] Generate idiomatic
exceptclauses for typed exception patterns (by @dbrattli)
- [Python] Fix
ResizeArraycompatibility withSeq/Arrayfunctions (by @dbrattli) - [Python] Fix
FSharpListgeneric type parameter handling forIEnumerable_1compatibility (by @dbrattli)
- [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)
- [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)
- [Python]
[<Py.Decorate>]now emits decorator strings verbatim and addsimportFromparameter for explicit import control (by @dbrattli)
- [Python] Fix
printf.cont()not applying continuation function when currying (by @dbrattli)
- [Python] Add support for
[<Py.Decorate>]attribute on methods (previously only worked on classes) (by @dbrattli) - [Python] Add new
[<Py.ClassMethod>]attribute to emit @classmethod instead of @staticmethod (by @dbrattli) - [Python] Added support for Pydantic serialization of core numeric and array types (by @dbrattli)
- [Python] Fix regression, 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)
- [Rust] Update
fable-library-rustdependencies (by @ncave) - [All] Update TargetFramework to net10.0 (by @ncave)
- [All] Update FCS to latest (commit cfda5f6) (by @ncave)
- [All] Fix quoted paths resolution by
Util.getExactFullPath(by @MangelMaxime)
- [All] Invoke MSBuild from Fable current working directory (by @cr3wdayt5p)
- [Python] fable-library for Python is now distributed via PyPI instead of being bundled in the NuGet package (by @dbrattli)
- [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)
- [JS/TS] Replace the deprecated
substrmethod withslice(by @Thorium)
- [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)
- [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)
- [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)
- [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)
- [Python] Fixed testing with interfaces leads to incorrect pattern match (#3972) (by @dbrattli)
- [Python] Fixed error when type contains multiple generic type parameters (#3986) (by @dbrattli)
- [Python] Fixed import path handling for libraries (#4088) (by @dbrattli)
- [Python] Reenable type aliasing for imports with name "*" (by @freymauer)
- [JS/TS] Optimise JSX output in order to avoid F# list CEs to surface in it (by @MangelMaxime)
- [All] Remove unused
Fable.Corecopy types from internal module (by @MangelMaxime)
- [Python] Add support for
nullArgCheck(by @MangelMaxime) - [All] Add support for F#
nullness(by @MangelMaxime) - [JS/TS] Add support for
Unchecked.nonNull(by @MangelMaxime) - [All] Add support for
TreatWarningsAsErrors(by @MangelMaxime) - [JS] Don't generate an import statement for pojos defined in another file (by @shayanhabibi)
- [JS/TS] Make
nullArgCheckreport the same error message as on .NET (by @MangelMaxime) - [TS] Sanitize DUs case names when generating constructor function (by @MangelMaxime)
- [JS/TS] Add support for
CaseRules.LowerAllonStringEnums(by @shayanhabibi) - [Rust] Support Rust 2024 language edition (by @ncave)
- [JS/TS] Add
Candcformat for numeric types (by @MangelMaxime) - [JS/TS] Add
Bandbformat for numeric types (by @MangelMaxime) - [JS/TS] Add
nformat for numeric types (by @MangelMaxime) - [JS/TS] Generate compiler error when detecting an invalid/unsupported format specifier for numeric types (by @MangelMaxime)
-
[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
decimaltocharconversion checks (by @ManngelMaxime) -
[JS/TS] Propagate non-captured exception when running
Async.StartorAsync.StartImmediate(by @MangelMaxime) -
[JS/TS] Report an error at compilation time when trying to use
Async.RunSynchronously(by @MangelMaxime) -
[JS/TS] Fix short
DateTimeandDateTimeOffsetshort 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)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)
- [JS/TS] Throw an error is an invalid Numeric format is provided (mimic .NET behavior) (by @MangelMaxime)
- [Python] - Print root module and module function comments (by @alfonsogarciacaro)
- [Rust] Add support for module comments (by @ncave)
- [Rust] Add support for null strings (by @ncave)
- [TS/JS]
Pojoattribute support (by @alfonsogarciacaro)
- [JS/TS] - Fix anonymous record printing (#4029) (by @alfonsogarciacaro)
- [Python] - Fix #3998: PhysicalEquality (by @alfonsogarciacaro)
- [Python] Resolve relative paths for non-qualified imports (#3481) (by @alfonsogarciacaro)
- [Python]
importSideEffectsshouldn't generate identifier (#3965) (by @alfonsogarciacaro) - [JS/TS] Fix #4031: Hoist vars locally in for and while loops (@alfonsogarciacaro)
- [JS/TS] In
JSX, generate self closing element when element has no children (#4037) (by @shayanhabibi)
- [All] Add
--realsig+to fixMethod not found: 'Boolean Fable.CompilerOptions.Equals(by @nojaf)
- [TS] Include XML Doc comment on interface properties (by @Freymaurer)
- [TS] Generate
interfacetype when using the "ParamObject" class pattern (by @MangelMaxime) - [Rust] - Initial support for null values (by @ncave)
- [All] Disable .NET Welcome message when cracking project (#4014) (by @MangelMaxime)
- [All] Add
StringBuiler.Append(c: char, repeatCount: int)overload (by @roboz0r) - [All] Added primitive types equality and comparison (by @ncave)
- [All] Updated FCS to latest F# 9.0 (by @ncave)
- [All] Updated Fable-FCS to latest F# 9.0 (by @ncave)
- [All] Updated metadata to latest .NET 9.0 (by @ncave)
- [All] Updated FCS type constraints (by @ncave)
- [Python] Add missing unicode categories in python library (by @joprice)
- [All] Log JSON output if we fail to parse MSBuild result (by @MangelMaxime)
- [JS/TS/Python] Add new
TimeSpanoverloads support coming from .NET 9.0 (by @MangelMaxime) - [Rust] Add new
TimeSpanoverloads support coming from .NET 9.0 (by @ncave)
- [JS/TS] Fix
DateTimeOffset.ToLocalTime(by @MangelMaxime)
- [TS] Make discriminated union
.Is*properties works (@MangelMaxime) - [JS/TS/Python] Fix
hinDateTime.ToString(@MangelMaxime) - [JS/TS] Fix
hhinDateTime.ToString(@MangelMaxime) - [JS/TS] Don't generate the setter code if a property is decorated with
[<Erase>](@MangelMaxime)
- [Python] Fix type testing against
uint8,uint32,uint64,decimal(@MangelMaxime) - [JS/TS] Workaround source map generation bug (deteriorate them a little) (@MangelMaxime)
- [All] Allow Fable 5 to be used with Fable 4 plugins (@ncave)
- [All] Add
--legacyCrackeras a fallback (@MangelMaxime)
- [All] Make MSBuildCracker the default (@MangelMaxime)
- [All] Replace
FABLE_COMPILER_4withFABLE_COMPILER_5as the compiler directive (@MangelMaxime) - [All] Move TargetFramework to
net8.0(@ncave)
- Fable 4.24.0
- Fable 4.23.0
- Fable 4.22.0
- [All] Don't hide original error when failing to scan an assembly for plugin (#3896) (by @MangelMaxime)
- [JS/TS] Fixed unwrapping optional arguments (#3847) (by @ncave)
- Fable 4.19.1
- GH-3835 [All] Use case insensitive comparison when searching for dependencies between fable packages (by @ThisFunctionalTom)
- Fable 4.18.0
- GH-3769 The dependent files of the current file should be detected for the signature file if there is one present. (by @nojaf)
- GH-3769 Local plugin build does not run indefinably. (by @nojaf)
- GH-3758 Endpoint to get Fable.AST for a file. (by @nojaf)
- GH-3763 Redirect plugin build stdout and pass to logger. (by @nojaf)
- Update to Fable.AST 4.4.0
- GH-3742 Return diagnostics in compile response (by @nojaf)
- GH-3746 Extract type-checking from compilation (by @nojaf)
- GH-3724 Internalize
GetFableModulesFromDir&GetFableModulesFromProject(by @nojaf)
- GH-3720 Introduce
ProjectCrackerResolverallowing customizing the project resolution (by @nojaf)
- Respect file extension from
CliArgs - Use
Microsoft.Extensions.Logging - Load Fable plugins
- Initial release
- Initial release