Changelog
September 12, 2026 ยท View on GitHub
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.
5.17.1 - 2026-09-11
๐ Bug Fixes
- (js/ts) Keep the sign of negative decimals below 0.1 (91d80f18)
- (js/ts) Respect the precision when formatting decimals below 0.1 (1c02557e)
- (js/ts) Omit the decimal sign when the rounded result is zero (ef63087d)
- (python) Preserve record field names in structured formatting (#4952) (fbc162d6)
- (python) Support bytes() on generic and bool arrays (#4961) (94b59294)
- (python) Parse uint64 values above Int64.MaxValue (584d8ce4)
- (python) Report DateTimeKind.Utc for DateTime.UtcNow (4abf06ea)
- (python) Reflect an erased union as the type it erases to (0f564c74)
- (python) Implement Decimal.GetBits and the bits constructors (cf0c9305)
- (python) Round a float to .NET's precision when converting to decimal (4a441b19)
- (ts) Declare the type parameter of a flexible-type overload (6f1f1b8a)
5.17.0 - 2026-09-08
๐ Features
- Add Temporal dates and times (opt-in) (#4759) (3e8f56f7)
๐ Bug Fixes
- (js/ts) Match .NET for G, E and custom numeric formats (6fb03090)
- (js/ts) Allow the E format specifier on Int64 and UInt64 (c49d1ec5)
- (python) Build typed arrays from lists and sequences (#4944) (5af37779)
- (rust) Fix IEnumerable casting, interop and type testing (#4946) (93c2df5b)
- (rust) Restore missing bindings (#4947) (2fb46a26)
- (ts) Declare local function type params only reachable via constraints (#4943) (8aa6d3b9)
- (ts/python) Erase byref from struct copy-and-update locals (#4945) (19a6522e)
5.16.0 - 2026-09-03
๐ Features
- (all) Quotations: DerivedPatterns, and captured locals as Value nodes (#4919) (fae5093f)
- (python) Support quotation derived patterns (#4928) (f6d939a1)
- (rust) Observables, Events and IEnumerable (PR 6 of 7 Rust improvements) (#4789) (20175eea)
- (rust) System.Uri (PR 7 of 7 Rust improvements) (#4790) (8a551bc9)
๐ Bug Fixes
- Preserve project FSharp.Core reference (#4924) (1289360a)
- Report Fable's own logs from the Fable.Compiler API (#4923) (0775c604)
- (all) Emit instance calls for virtual methods inherited from Object (#4926) (2fb535a7)
- (all) Allow private inline functions to use private values (#4915) (b0740ba9)
- (python) Emit Python names for float32 specials (#4938) (b4c45a93)
- (python) Compare nested options of different depth (#4940) (5afa2948)
- (rust) Observables and Events cleanup (#4908) (ca165045)
- (rust) Support
stringon a tuple (#4916) (510c8a43) - (rust) Decimal culture overloads, and mutables assigned in try/finally (#4918) (58402471)
- (rust) Let a string be enumerated (#4921) (395c152b)
- (rust) Async perf: stop the async runtime sleeping, and add Parallel (#4920) (88135b90)
- (rust) F# exceptions, non-exhaustive matches and obj type tests (#4917) (28da1d76)
- (rust) Wait for the other files instead of sleeping before the last one. (#4927) (d329a823)
- (rust) Cleanup AsyncBuilder and TaskBuilder (#4936) (3e6bc9bd)
- (rust) Fix interface casting, move reflection into declarations (#4939) (04299157)
- (rust) Support reflection for no_std (#4941) (bf694309)
5.15.0 - 2026-08-25
๐ Features
- (standalone) Publish the Fable version the bundle was built from (#4905) (b517d52d)
๐ Bug Fixes
- (all) Find a core entity recorded under a facade assembly (#4903) (60210b86)
5.14.0 - 2026-08-25
๐๏ธ Breaking changes
- (standalone) Reference a precompiled library (#4900) (90359c31)
๐ Features
- (python) Represent Int32 and Float64 as plain Python int and float (#4856) (ca361ea3)
๐ Bug Fixes
- (all) Invalidate cached project options when inputs change (#4879) (aea3735b)
- (all) Error on member reference from a source-less dll (#4894) (065a88d8)
- (all) Match entity refs across the precompiled boundary (#4895) (96783631)
- (all) Say why an inline member's body could not be found (#4901) (e5b0488e)
- (beam) Escape quotes and backslashes in quoted atoms (#4866) (5d5231b3)
- (beam) Compile [
] cases to atoms instead of binaries (#4867) (366919a7) - (beam) Parse ISO-8601 numeric zone offsets and compare dates by instant (#4868) (bb3c86d7)
- (python) Keep original F# field names in record reflection (#4852) (90c1798b)
- (python) Stop shipping build artifacts and ship the PEP 561 marker (#4857) (03d40c97)
- (python) Derive DateTime "O" format from the value, not the host timezone (#4869) (b3ec8b67)
โก Performance Improvements
- (python) Back int64 arrays with typed storage (#4864) (78a5d479)
- (python) Hash numbers without the safeHash detour (#4865) (32b42b2a)
- (python) Elide int32 normalizations that cannot change their argument (#4859) (7e9cd96a)
5.13.0 - 2026-07-24
๐ Bug Fixes
- (all) Eliminate dead bindings left by CE/inline lowering (#4837) (9f694e97)
- (beam) Make reflection metadata agree with record/union codegen (#4849) (ec6a3df0)
- (js/ts) Resolve generic params when reflecting erased union fields (#4851) (619d7afd)
- (js/ts,python) Inline Option/ValueOption combinators to avoid closures and allocations (#4836) (61cac646)
- (python) Honor custom Equals and GetHashCode in structural values (#4850) (22ec1919)
โก Performance Improvements
- (all) Lower constant ยฑ1 step ranges to counted for-loops (#4838) (ab28daec)
5.12.0 - 2026-07-22
๐ Features
- (beam) Render %A in F# syntax instead of dumping Erlang terms (#4814) (218e0c40)
๐ Bug Fixes
- (beam) Correct char-to-string conversion and console Unicode encoding (#4812) (df8e01d6)
- (beam) Isolate each top-level effect's variables in main/0 (#4815) (8d708633)
- (beam) Write package modules to the package's own src/ (#4817) (06bf863c)
- (beam) Implement Async.AwaitTask (#4819) (17cc3b6a)
- (beam) Keep the original stacktrace when an async error is re-raised (#4818) (d7afa278)
- (beam) Decode UTF-8 codepoints in ToCharArray and related String functions (b2ce3067)
- (python) Avoid UTF-8 boundary panic in integer parsing (#4825) (8243a711)
- (python) Detect radix prefix after whitespace and sign (#4828) (5ab1382b)
5.11.0 - 2026-07-17
๐ Features
- (dart) Quotations (#4784) (019a6ade)
๐ Bug Fixes
- (python) Don't emit too many leading dots for relative imports of nested files (#4803) (9fa49244)
- (python) Make union case classes hashable again (#4805) (63b80138)
- (python) Make class declarations and references agree on type names (#4807) (ae4b910b)
5.10.0 - 2026-07-16
๐ Features
-
(beam) Support
Environment.CurrentDirectoryandGetEnvironmentVariable(#4801) (55b9d560) -
(beam) Support setting
Environment.CurrentDirectory(#4783) (7b2a262f) -
(rust) Various codegen and runtime improvements (#4781) (ae10cd2c)
- Cast
boolto integer types; support**via.powf - Add
Decimal.IsInteger/IsEvenInteger/IsOddInteger/IsCanonical - Fix two-switch decision trees dispatching to the wrong target
- Fix reference-typed match bindings panicking via
mem::zeroed - Fix string and non-ident option pattern matches emitting invalid Rust
matcharms - Fix
Convert.ToXxx(bool) - Fix
Char.ToUpper/ToLowertruncating multi-char case mappings - Fix
Random.nextDoublepanic message - Fix
Map.find/tryFindpanicking on reference-typed values
- Cast
๐ Bug Fixes
- (all) Skip translating unreachable branch of constant-condition if/then/else (#4799) (53c06de1)
- (python) Make the assert_not_equal failure message describe the failure (#4778) (721fb437)
5.9.0 - 2026-07-15
๐ Features
- (js/ts) Add
System.IO.Directorysupport (Exists, CreateDirectory) (#4798) (6568f35e) - (js/ts/python/beam) Preserve member calls and pattern matches in quotations (#4780) (55482e6b)
๐ Bug Fixes
- (beam) Make Assert.AreEqual/NotEqual raise, and stop emitting reflection calls for erased types (#4775) (d9711d4c)
5.8.1 - 2026-07-13
๐ Bug Fixes
- (beam) Make F# reflection work on the Beam target (#4766) (b15b280d)
- (beam) Give sized integers .NET fixed-width semantics (#4769) (2ed39630)
- (beam) Qualify Erlang module names by their OTP app (#4770) (5516c8d8)
- (beam) Entry point argv and exit code, bigint from float, option reflection (#4772) (ea915541)
5.8.0 - 2026-07-11
๐ Features
- (beam) Implement Async.StartChild in fable_async runtime (#4760) (eb2ad9a4)
๐ Bug Fixes
- (beam) Order discriminated union comparison by declaration order (#4761) (3597a582)
- (beam) Preserve function-value identity for PhysicalEquality (#4762) (727673f3)
- (js/ts) Don't drop unsupported
jsOptionsstatements when inlining as POJO (#4754) (4cbc44fc) - (js/ts) Async cancellation propagation and continuation double-resolve (#4746) (c78a9a8e)
- (js/ts) Date arithmetic: PM parsing, AddMonths day clamp, AddYears offset (#4744) (be0558eb)
- (js/ts) Int64 non-decimal parsing and BitConverter .NET mismatches (#4748) (2704d9c5)
- (python) Propagate [
] return value as process exit code (#4763) (a8d9bf5f)
โก Performance Improvements
- (python) Avoid conversion-dunder hop in numeric fast paths (#4756) (838eda53)
- (python) Speed up array aggregates and generic storage in fable-library-core (#4755) (e40a7dc4)
5.7.0 - 2026-07-09
๐ Features
- Add
--noGitignoreflag to skip generating fable_modules/.gitignore (#4730) (3742b950)
๐ Bug Fixes
- MailboxProcessor dropping falsy messages and unit replies (8299b2e7)
- (all) Include original exception message when loading a Fable plugin fails (#4739) (659e73a4)
- (all) Add
Seq.enumerateTryWithfor try/with in seq, list, array comprehensions (#4750) (448c90d7) - (beam) EndsWith regression for empty pattern with non-ordinal comparison (eee2ad3f)
- (js/ts) Represent union cases with no fields as singletons (3f6e618e)
- (js/ts) Match .NET NaN semantics in JS comparison, min and max (7e5106f9)
- (js/ts) BigInteger byte-array corruption, checked conversions, gcd, log2 (#4743) (f3cb7f2b)
- (js/ts) Observable/Event dropping null/undefined/unit values (#4742) (75bff73b)
- (js/ts) EndsWith regression for empty pattern with non-ordinal comparison (7793ed7b)
- (js/ts/python) Quote strings with the %A format specifier (#4749) (75321f3b)
- (python) Accept native floats in fable-library float functions (#4724) (ea4a9853)
- (python) Represent union cases with no fields as singletons (0211b4cc)
- (python) Emit forward reference for self-referencing static union members (#4752) (452b85f2)
- (python) Match .NET NaN and signed-zero semantics in comparison, min and max (383bb93c)
- (python)
LastIndexOf(value, startIndex)off-by-one on inclusive boundary (bad6bcac) - (python) MailboxProcessor dropping unit replies (8e83ebe3)
- (ts/js)
Regex.Replacecount/substitutions andRegex.Splitsemantics (#4741) (d6ae6bd3)
โก Performance Improvements
- (python) Use native operators for int64/uint64 arithmetic (#4727) (f062d668)
- (python) Rewrite hot Seq combinators as native Python generators (#4728) (73e0eab9)
- (python) Read union case fields directly instead of rebuilding Array (#4725) (e4eaa80b)
5.6.0 - 2026-07-05
๐ Features
- (all) Allow
[<Emit>]on StringEnum cases (#4711) (0b1f61ee) - (js/ts) Optimize
printfnwith constant string toconsole.log(#4718) (2d6d083a) - (js/ts) Add
Path.Combinesupport (b1b1e273) - (js/ts) Add
System.IO.PathandSystem.IO.FileAPI support (ec99fac5) - (js/ts/python) Warn on duplicate attached member names (#4715) (fd06aa64)
- (js/ts/python) Add Environment and Console.Error support (6e082f95)
- (py) Add
Path.Combinesupport (4c901c65) - (python) Add
Directory.Exists,Directory.CreateDirectory(f4b4eabc) - (ts) [
] interfaces extend parent [ ] type (#4717) (4f4243cd)
๐ Bug Fixes
- Generate an error on erased union case typed as obj (#4710) (bf2134d5)
- (all) Include return type in overload suffix for op_Implicit/op_Explicit (#4712) (a6846010)
- (js/ts) DateTime.ToString() and %A are now consistent across all DateTimeKind values (#4714) (de98b0e4)
- (python) Accept allowAccessToPrivateRepresentation in FSharpType.IsUnion/IsRecord/GetUnionCases (#4722) (7f915f1d)
- (ts) Strip byref annotation from compiler-generated copy-update locals (#4716) (1e072ed2)
โก Performance Improvements
- Split Fable.Transforms into per-target projects for faster incremental builds (#4720) (260c962f)
5.5.0 - 2026-06-30
๐ Features
- (all) Add
Compiler.is*target detection flags for conditional branching (#4692) (621dea31) - (js/ts) Map task { } to Promise
(97f54d36) - (js/ts/python/beam) Add support for
Async.AwaitEvent(#4693) (71c98179)
๐ Bug Fixes
- (all) Pass raw value for optional arguments of native bindings (#4688) (a4c75483)
- (all) Support .NET format specifiers and alignment in interpolated strings (#4695) (7c50a3af)
- (all) Error on inline function referencing private value (#4701) (cea6806e)
- (beam) Support module-level mutable variables via process dictionary (#4676) (535b9af0)
- (beam) Namespace module-level mutable state keys by module (#4683) (1ec28ab1)
- (js) Respect StringComparison in String.IndexOf/LastIndexOf (#4681) (7cb92d52)
- (js/ts) Implicit DateTime to DateTimeOffset conversion (#4697) (fcbd9b91)
- (js/ts) Int list is not a union type (#4698) (ecbecbe7)
- (js/ts) Hoist emitJsStatement imports with trailing comments (#4702) (e820eb72)
- (js/ts) Uncurry mutable module value alias calls (#4703) (0de0d218)
- (js/ts) Pass TypeInfo to getRecordFields to handle None fields in anonymous records (#4704) (c977d78b)
- (js/ts/python) Drop allowAccessToPrivateRepresentation arg from reflection calls (#4689) (ec3cded7)
- (python) Fix task while loop stack overflow (fdb0ec37)
- (ts) Use declared type-param names in object expression generic methods (#4685) (1c3e7d99)
- (ts) Use signature type-param names when implementing generic interface methods (#4686) (03e5deee)
- (ts) Bound enum-constrained type parameters with
extends number(#4687) (15daf624) - (ts) Widen isEnumDefined value parameter to accept any value (#4690) (0d6498dd)
- (ts) Keep enclosing type parameters in scope for nested members (#4691) (f5723a2d)
- (ts) Re-declare class type params on generic static attached members (#4696) (2da50780)
- (ts) Filter class type params from attached let-binding methods (#4700) (d3a6a1dd)
5.4.0 - 2026-06-24
๐ Features
- (all) Support Exception.InnerException across all targets (#4677) (c9b3ee24)
๐ Bug Fixes
- (beam) Make immutable class instances process-portable (#4670) (182eebef)
5.3.0 - 2026-06-16
๐ Features
- (beam) Add !^ erased-cast operator to BeamInterop (#4659) (206776b)
๐ Bug Fixes
- Add type specifiers to interpolated strings (#4646) (512ae4d)
- (all) Cli fable clean command crash when output directory doesn't exist (#4651) (de379e8)
- (all) Align
invalidArgerror message with .NET format (#4662) (e672eb7) - (beam) Preserve element type through Option.Value for interface dispatch (#4661) (e5521b6)
- (python) Emit wildcard default for union or-patterns (#4649) (#4653) (c96f0ec)
5.2.0 - 2026-06-10
๐ Features
- (beam) Support Erlang/BEAM target in standalone compiler (#4644) (30310e4)
๐ Bug Fixes
- (beam) Collapse array-literal process-dict ref round-trips in FFI/Emit calls (#4626) (234ee08)
- (beam) Make Emit $N substitution a single left-to-right pass (#4631) (48af8db)
- (js/ts) Throw an error when trying to set non-property memeber inside of
jsOptions(#4624) (2d9673f) - (js/ts) Reject JS-permissive date strings that .NET TryParse rejects (#4588) (09003de)
- (js/ts) Make Exception.ToString() return the message instead of "Exception" (#4635) (4c36f76)
- (python) Avoid union case field name collision with Union.name (#4647) (ff5df24)
- (python) Make [
] union static members work (#4634) (#4636) (15eb83e)
5.1.0 - 2026-05-28
๐ Features
- (js/ts/python) Add missing standard DateTime format specifiers for JS/TS and Python (#4547) (90f5eb7)
- (js/ts/python) Add missing StringBuilder.Append overloads for numeric types (#4568) (b402c30)
๐ Bug Fixes
- Check MSBuild exit code instead of stderr for project cracker failure detection (#4564) (914a616)
- [JS/TS] Fix DatetimeOffset.ToString("s") (#4596) (3ce6f3f)
- [Rust] Update hashing and datetime tests (#4613) (9d39037)
- (all) Duplicate LetRec bindings during inline expansion (#4592) (62612a5)
- (all) Forward --pathmap: option to FCS so CallerFilePath respects (PathMap) (#4585) (764c383)
- (all) Fix super call in multi-level generic class hierarchy using wrong mangled name (#4414) (db1d4d2)
- (beam) Handle string binaries in Seq enumerator (#4591) (6e78058)
- (js/ts) Fix JSX props with long string values causing compile error (fixes #3839) (#4545) (d828a46)
- (js/ts) Fix datetime custom format off by one year (#4558) (83bdbb5)
- (js/ts) Hex format specifier uses no padding unless precision is specified (#4603) (ba9857a)
- (js/ts) Fix Decimal.GetBits returning incorrect mantissa after round arithmetic result (#4561) (345bcd4)
- (js/ts) Fix G/g format specifier corrupting exponential notation when trimming trailing zeros (#4587) (773c098)
- (js/ts) Add support for
matchclauses inJSX.create(#4620) (616edca) - (js/ts) Don't spread last arg in String.Concat call (#4621) (3de580e)
- (js/ts) Inline AttachMembers members at call sites (#4622) (63bcd3d)
- (js/ts/python) Fix FSharpOption not recognized as union type in F# reflection (#4529) (d78a37d)
- (python) Fix regex lookbehind patterns being incorrectly converted (#4560) (4ce5cd7)
- (python) Avoid duplicate captured argument in hoisted guards (#4610) (#4611) (90aec48)
- (ts) Enforce browser-only compatibility in fable-library-ts tsconfig (#4563) (10c81c1)
5.0.0 - 2026-04-21
Fixed
- [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)
5.0.0-rc.7 - 2026-04-07
Added
- [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)
Fixed
- [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)
5.0.0-rc.6 - 2026-03-31
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 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) - [All] Fix CLI color not resetting after error messages (fixes #3755) (by @MangelMaxime)
- [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)
5.0.0-rc.5 - 2026-03-20
Added
[All] Add support for [<InlineIfLambda>] (by @MangelMaxime)
5.0.0-rc.4 - 2026-03-19
Fixed
- [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)
5.0.0-rc.3 - 2026-03-10
Added
- [Beam] Auto-generate rebar3 scaffold (
rebar.config,.app.src) after compilation;.erlfiles now placed insrc/subdirectories (by @dbrattli) - [Beam] Support
[<ImportAll>]+[<Erase>]interface pattern for typed FFI bindings (by @dbrattli)
Fixed
- [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) - [TS] Expose optional
stackproperty onException(by @MangelMaxime) - [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)
5.0.0-rc.2 - 2026-03-03
Added
- [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)
Fixed
- [Python] Fix
__hash__to return nativeintinstead ofint32for Python 3.14 compatibility (by @dbrattli) - [Python] Fix PyPI publish workflow version pattern to support
rctags (by @dbrattli) - [Beam] Bundle
fable-library-beamin NuGet package sodotnet fable --lang beamworks (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)
- [JS/TS] Allows compiling
fable-library-tsfor Browser environment (by @goswinr)
5.0.0-rc.1 - 2026-02-26
Added
- [Beam] Add Erlang/BEAM target (
--lang beam). Compiles F# to.erlsource files. 2086 tests passing. (by @dbrattli)
Fixed
- [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)
5.0.0-alpha.24 - 2026-02-13
Fixed
- [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) - [All] Prevent Fable from freezing when running a sub-process via
--run(fix #3631) (by @MangelMaxime) - [All] Improve console width detection when rewritting console output (by @MangelMaxime)
5.0.0-alpha.23 - 2026-02-03
Changed
- [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)
Added
- [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)
Fixed
- [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)
Removed
- [All] Remove
--legacyCrackerflag, MSBuild cracker is now the default and the only cracker supported (by @MangelMaxime)
5.0.0-alpha.22 - 2025-12-26
Fixed
- [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)
5.0.0-alpha.21 - 2025-12-15
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
- [Python] Fix
ResizeArraycompatibility withSeq/Arrayfunctions (by @dbrattli) - [Python] Fix
FSharpListgeneric type parameter handling forIEnumerable_1compatibility (by @dbrattli)
5.0.0-alpha.20 - 2025-12-08
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 - 2025-12-04
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) (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)
5.0.0-alpha.18 - 2025-12-03
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-rustdependencies (by @ncave) - [All] Update TargetFramework to net10.0 (by @ncave)
- [All] Update FCS to latest (commit cfda5f6) (by @ncave)
5.0.0-alpha.17 - 2025-11-27
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 - 2025-11-25
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)
5.0.0-alpha.15 - 2025-11-19
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 - 2025-07-25
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)
5.0.0-alpha.13 - 2025-05-04
Fixed
- [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)
Removed
- [All] Remove unused
Fable.Corecopy types from internal module (by @MangelMaxime)
5.0.0-alpha.12 - 2025-03-14
Added
- [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) - [All] Print help message on unexpected arguments (by @MangelMaxime)
Fixed
- [JS/TS] Make
nullArgCheckreport the same error message as on .NET (by @MangelMaxime) - [TS] Sanitize DUs case names when generating constructor function (by @MangelMaxime)
- [All] Don't print help message on failed compilation (by @MangelMaxime)
- [JS] Don't generate an import statement for pojos defined in another file (by @shayanhabibi)
5.0.0-alpha.11 - 2025-03-03
Added
- [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)
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
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)
Changed
- [JS/TS] Throw an error is an invalid Numeric format is provided (mimic .NET behavior) (by @MangelMaxime)
5.0.0-alpha.10 - 2025-02-16
Added
- [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)
Fixed
- [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)
Changed
- [JS/TS] In
JSX, generate self closing element when element has no children (#4037) (by @shayanhabibi)
5.0.0-alpha.9 - 2025-01-28
Fixed
- [All] Add
--realsig+to fixMethod not found: 'Boolean Fable.CompilerOptions.Equals(by @nojaf)
5.0.0-alpha.8 - 2025-01-27
Added
- [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)
5.0.0-alpha.7 - 2025-01-23
Fixed
- [All] Disable .NET Welcome message when cracking project (#4014) (by @MangelMaxime)
5.0.0-alpha.6 - 2025-01-23
Added
- [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)
Fixed
- [Python] Add missing unicode categories in python library (by @joprice)
- [All] Log JSON output if we fail to parse MSBuild result (by @MangelMaxime)
5.0.0-alpha.5 - 2025-01-09
Added
- [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)
Fixed
- [JS/TS] Fix
DateTimeOffset.ToLocalTime(by @MangelMaxime) - [All] Don't fails silently if an unknown argument is provided, instead log the error and print the help message (by @MangelMaxime)
5.0.0-alpha.4 - 2025-01-03
Fixed
- [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)
5.0.0-alpha.3 - 2024-12-18
Fixed
- [Python] Fix type testing against
uint8,uint32,uint64,decimal(@MangelMaxime) - [JS/TS] Workaround source map generation bug (deteriorate them a little) (@MangelMaxime)
5.0.0-alpha.2 - 2024-11-25
Fixed
- [All] Allow Fable 5 to be used with Fable 4 plugins (@ncave)
5.0.0-alpha.1 - 2024-11-24
Added
- [All] Add
--legacyCrackeras a fallback (@MangelMaxime)
Changed
- [All] Make MSBuildCracker the default (@MangelMaxime)
- [All] Replace
FABLE_COMPILER_4withFABLE_COMPILER_5as the compiler directive (@MangelMaxime) - [All] Move TargetFramework to
net8.0(@ncave)
4.24.0 - 2024-11-19
Added
- [JS/TS] Added missing
ResizeArray.CopyToreplacements (by @ncave) - [JS/TS] Added missing
Dictionaryconstructors from enumerable (by @ncave)
Fixed
- [Rust] Fixed import path rewrite (by @ncave)
- [Rust] Updated derived interfaces (by @ncave)
- [Rust] Updated string comparisons (by @ncave)
- [Rust] Fixed derived traits mapping (by @ncave)
- [JS/TS] Added missing
ICollectionhelpers (#3914) (by @ncave) - [JS/TS] Added missing
IReadOnlyCollectionhelpers (by @ncave)
4.23.0 - 2024-10-28
Added
- [Rust] Added basic class inheritance support (by @ncave)
- [Rust] Added
String.Replace(char, char)and test (by @ncave) - [Rust] Support type extensions for external types (by @ncave)
- [Rust] Support more
System.Arraymethods and tests (by @ncave) - [Rust] Added decision tree multiple target references (by @ncave)
- [Rust] Added Char surrogate tests for completeness (by @ncave)
- [JS] Add
System.String.Normalizesupport (by @DashieTM) - [JS] Allow
[<Erase>]to work on members (by @MangelMaxime)
Fixed
- [Rust] Updated derived traits mapping (by @ncave)
- [Rust] Updated some collections equality (by @ncave)
- [Rust] Fixed try finally handler order of execution (by @ncave)
- [JS/TS/Python/Rust] Fixed
String.StartsWith/EndsWith(#3934) (by @ncave) - [All/Rust] Removed
Regex.Replacefrom hot paths (by @ncave) - [JS] Fix regression, generate
letvariable when usingimporton a private mutable variable (by @MangelMaxime) - [TS] Prevent generics to be duplicated (by @MangelMaxime)
- [TS] Fix interface generation when decorated with
Mangle(by @MangelMaxime)
4.22.0 - 2024-10-02
Added
- [Rust] Added support for Dictionary/HashSet comparers (by @ncave)
- [Rust] Updated support for interface object expressions (by @ncave)
- [Rust] Added missing ResizeArray methods and tests (by @ncave)
- [Rust] Added Async.Sleep and test (by @ncave)
Fixed
- GH-3900 [Python] Fix nuget packages with hypens in their names (by @MangelMaxime)
- [Rust] Uncurry field types for object expressions (by @ncave)
- [Rust] Fixed pattern matching on
thisargument (by @ncave) - [All] Fixed Missing DU member with interface (#3915) (by @ncave)
- [TS] Fixed missing Async type signature (#3864) (by @MangelMaxime)
4.21.0 - 2024-09-19
Added
- [JS/TS] Add support for
OrdinalIgnoreCaseoverload forString.EndsWith(#3892) (by @goswinr) - [JS/TS] Add
uri.Port,uri.IsDefaultPort(by @MangelMaxime)
Changed
- [Python] Remove
$sign when reporting an error fromassert_equalandassert_not_equal(#3878) (by @joprice) - [All] Don't hide original error when failing to scan an assembly for plugin (#3896) (by @MangelMaxime)
Fixed
- [JS/TS] Fix escaping of
{and}in FormattableString (#3890) (by @roboz0r) - [JS/TS] Fix
uri.Hostto return the host name without the port (by @MangelMaxime) - [JS/TS] Fix TypeScript compilation by resolving type of
jsOptions(#3894) (by @ManngelMaxime)
4.20.0 - 2024-09-04
Added
- [Rust] Added support for static interface calls (by @ncave)
Fixed
- [All] Fixed passing delegates with unit args (#3862) (by @ncave)
- [JS/TS] Fixed Decimal comparisons (#3884) (by @ncave)
- [Rust] Fixed return type for byref body (by @ncave)
4.19.3 - 2024-06-17
Fixed
- [JS/TS] Fixed unwrapping optional arguments (#3847) (by @ncave)
4.19.2 - 2024-06-13
Fixed
- [JS/TS] Fixed BigInt.ToDecimal with negative values (#3500) (by @ncave)
4.19.1 - 2024-06-13
Fixed
- [All] Ignore testers for erased union cases (#3658) (by @ncave)
- [All] Fixed Fable compiler hanging on some errors (#3842) (by @ncave)
- [JS/TS] Fixed DateTime.MinValue, DateTime.MaxValue (#3836) (by @ncave)
- [JS/TS] Fixed missing field using TypeScriptTaggedUnion (#3837) (by @ncave)
4.19.0 - 2024-06-10
Fixed
- [TS] Fixed interface indexers (#3830) (by @ncave)
- GH-3835 [All] Use case insensitive comparison when searching for dependencies between fable packages (by @ThisFunctionalTom)
4.18.0 - 2024-05-23
Fixed
- GH-3817 [All] Fix broken --precompiledLib switch (#3818) (by @DunetsNM)
- [JS/TS] Fixed TimeSpan.FromMilliseconds (#3815) (by @ncave)
- [Python] Fixed quotation for union string cases (by @dbrattli)
- [Python] Fixed casing issues with identifiers and reflection info (#3811) (by @dbrattli)
- [JS/TS/Python] Fixed interface static members (#3566) (by @ncave)
4.17.0 - 2024-04-23
Added
- [Rust] Added support for XmlDoc comments (by @ncave)
- [Rust] Support captures in object expressions (by @ncave)
- [Rust] Added type extensions support (by @ncave)
- [Rust] Added Char implementation module (by @ncave)
Fixed
- [Python] Fixes for custom hash values (#3796) (by @dbrattli)
- [Python] Fix for import of camelCased class (#3808) (by @dbrattli)
- [JS/TS] Fixed optional args for reflection (by @ncave)
- [JS/TS] Fixed type visibility when parent is namespace (by @ncave)
- [JS/TS] Fixed DateTimeOffset.ToString with custom format (by @ncave)
- [Rust] Fixed property get on constrained generic types (by @ncave)
- [Rust] Fixed module member imports (by @ncave)
4.16.0 - 2024-03-20
Added
- [JS/TS] Add
ConditionalWeakTable(by @chkn)
Fixed
- GH-3778 [Python] Fixed custom hash values on Record types (by @dbrattli)
4.15.0 - 2024-03-18
Fixed
- [JS/TS] Fixed
DateTime.AddforDateTimeKind.Unspecified(by @ncave) - [Rust] Fixed deprecated
NaiveDateTimeusage inDateTime(by @ncave) - [Rust] Fixed generic interface implementation types (by @ncave)
- [Rust] Fixed Dictionary constructor from IEnumerable (by @ncave)
- [Rust] Fixed Seq.cast support for arrays and lists (by @ncave)
- [JS/TS]
Boolean.tryParseshould not crash onnullstring (@goswinr)
Added
- [Rust] Added some boxing support (by @ncave)
4.14.0 - 2024-03-01
Fixed
-
GH-3769 [All] Local plugin build does not run indefinably. (by @nojaf)
-
GH-3769 [JS/TS] Types hidden by signature files should not be exported. (by @nojaf)
-
GH-3772 [JS/TS] Re-implement
DateTime.ToStringcustom format handling (by @MangelMaxime)It now supports all custom format specifiers, and behave as if
CultureInfo.InvariantCulturewas used (Fable does not support Globalization). -
GH-3772 [JS/TS] Make compilation fails if calling
DateTimeconstructor with microseconds (by @MangelMaxime)JavaScript
Datedoes not support microseconds, we need to wait forTemporalto be widely supported before reconsidering this. -
GH-3773 [Python] Fix
DateTimecustom formatfffffffandFFFFFFF(by @MangelMaxime)
Changed
- GH-3772 [JS/TS] Split replacement for
DateTimeandDateTimeOffset(by @MangelMaxime)
4.13.0 - 2024-02-13
Added
JavaScript
- GH-3759 Add
StringBuilder.Chars(by @MangelMaxime) - Added range overload for
String.ToCharArray(by @ncave)
Rust
- GH-3761 Added
StringBuilder.Chars,StringBuilder.Removeand tests. (by @ncave)
Dart
- GH-3761 Added
StringBuildersupport and tests. (by @ncave)
Fixed
JavaScript
- GH-3748 Accessing an array out of bounds should emit an exception (by @MangelMaxime)
- GH-3748 Setting an array out of bounds should emit an exception (by @MangelMaxime)
- GH-3761 Fixed incorrect
StringBuilder.Removeimplementation. (by @ncave)
Python
- GH-3761 Fixed incorrect
StringBuilder.Removeimplementation. (by @ncave)
Changed
JavaScript
- GH-3761 Updated
StringBuilderto remove allocations where possible. (by @ncave)
Python
- GH-3761 Updated
StringBuilderto remove allocations where possible. (by @ncave)
4.12.2 - 2024-02-13
Changed
- Update to Fable.AST 4.4.0
4.12.1 - 2024-02-13
Fixed
JavaScript
- Embed
fable-library-jsin Fable DLL (by @MangelMaxime)
4.12.0 - 2024-02-12 [YANKED]
Added
All
- GH-3733 GH-3727 Add support for more
ResultAPI (by @zprobinson)Result.isOkResult.isErrorResult.ContainsResult.CountResult.DefaultValueResult.DefaultWithResult.ExistsResult.FoldResult.FoldBackResult.ForAllResult.IterateResult.ToArrayResult.ToListResult.ToOption
- GH-3721 Add
--test:MSBuildCrackerflag allowing to use the experimental MSBuildCracker (by @nojaf)
JavaScript
- GH-3745 Add support for
ListCollector(by @nojaf)instance.Addinstance.AddManyinstance.AddManyAndCloseinstance.Close
Removed
JavaScript
- Remove
Choice.d.tsfrom source code offable-library(by @MangelMaxime) - GH-3748 Accessing an array out of bounds should emit an exception (by @MangelMaxime)
TypeScript
- Remove
Choice.d.tsfrom source code offable-library(by @MangelMaxime) - GH-3748 Accessing an array out of bounds should emit an exception (by @MangelMaxime)
Fixed
Python
- GH-3717 Nested type with Custom Equality gives false negative equality (by @dbrattli)
- Generate assert statements for
assertexpressions in debug mode (by @dbrattli)
All
- GH-3744 Fix behaviour when passing
--verboseto be consistent with behaviour before changing the logging library (by @nojaf)
Changed
JavaScript
- GH-3749 Rename
fable-librarytofable-library-js(by @MangelMaxime)
4.11.0 - 2024-01-30
Changed
All
- GH-3719 Restore dependencies against the
.fsprojafter evaluating thefable-temp.csprojfile (Improves IDE supports) (by @MangelMaxime) - Don't delete
fable_moduleswhen re-evaluating the project file after a changes has been detected (Improves HMR experience) (by @MangelMaxime)
Fixed
All
- GH-3723 Fix logger initialisation to allow
--versionto work (by @MangelMaxime)
JavaScript
- GH-3716 System.Array.Resize: also handle the case where the array is null (by @chkn)
4.10.0 - 2024-01-25
Fixed
All
- Fixed function composition types (by @ncave)
- GH-3668 Normalize fable-library argument (by @nojaf)
- GH-3682 Support some custom unary math operors (Acos, Asin, Atan, Atan2, Cos, Cosh, Exp, Log, Log2, Log10, Sin, Sinh, Sqrt, Tan, Tanh) (by @PierreYvesR)
- GH-3603 Port back fixes for missing
.gitignorefile in the generatedfable_modules/folder (by @MangelMaxime) - GH-3684 Re-compile files from
fable_modulesafter changing the project file in watch mode (by @OrfeasZ)
Javascript
- Fixed 'System.Collections.Generic.Queue' bug (by @PierreYvesR)
- Fixed instance calls for generic comparers (by @ncave)
Python
- Fixed nested type with custom hashcode (by @dbrattli)
- Add 'Double.IsPositiveInfinity' (by @PierreYvesR)
- GH-3666 Fix for
DateTimeandTimeSpanaddition (by @dbrattli) - GH-3663 Fix
DateTime.ParseandDateTime.TryParse(by @MangelMaxime)
JavaScript
- Fix
DateTime.Parsewhen providing a 1 digit hour for PM times (3:5:34 PM) (by @MangelMaxime)
Rust
- Fixed unary negation for signed integer MinValue (by @ncave)
- Fixed excluding signature files from imports (by @ncave)
- Fixed generic try_catch closure trait (by @ncave)
- Fixed
selfarg capture in methods (by @ncave) - Fixed 'System.Collections.Generic.Queue' bug (by @PierreYvesR)
- Added support for generic comparers (by @ncave)
Changed
All
- GH-3671 Use
Microsoft.Extensions.Logging(by @nojaf) - GH-3634 Suffix temporary
csprojwith.fable-temp.csprojand include a comment in the file (by @MangelMaxime)
Dart
- Fix
DateTime.DayOfWeek(by @MangelMaxime)
Added
Python
-
GH-3663 Complete rewrite of
DateTimesupports (by @MangelMaxime)Special thanks to @dbrattli and @ncave for their help
- Constructors
- From
(year, month, day)up to(year, month, day, hour, minute, second, millisecond, microsecond)(with and withoutDateTimeKind) - From
ticks(with and withoutDateTimeKind)
- From
- Instance methods:
dt.Yeardt.Monthdt.Daydt.Hourdt.Minutedt.Seconddt.Milliseconddt.Microseconddt.ToUniversalTimedt.DayOfWeekdt.DayOfYeardt.ToShortDateStringdt.ToShortTimeStringdt.ToLongDateStringdt.ToLongTimeStringdt.ToStringdt.ToLocalTimedt.Datedt.AddYearsdt.AddMonthsdt.AddDaysdt.AddHoursdt.AddMinutesdt.AddSecondsdt.AddMillisecondsdt.AddMicrosecondsdt.Kind
- Static methods:
DateTime.TodayDateTime.NowDateTime.NowDateTime.UtcNowDateTime.MinValueDateTime.MaxValueDateTime.ParseDateTime.TryParseDateTime.SpecifyKind
- Constructors
JavaScript
- GH-3715 Add support for System.Array.Resize (by @chkn)
4.9.0 - 2023-12-14
Fixed
Python
- GH-3655 Fix for Python output file names (by @dbrattli)
- GH-3660 Fix for decimal to string with culture (by @dbrattli)
4.8.1 - 2023-12-12
Fixed
All
- Fix the version reported by Fable (@MangelMaxime)
4.8.0 - 2023-12-12
Changed
All
- Updated FCS to fce0cf00585c12174fa3e51e4fc34afe784b9b4e (by @ncave)
- GH-3675 Breaking Change
staticmembers always requirestatic member, disregarding FCS from F# v7.0 and early v8.0 supported dismissing thememberkeyword.
Added
Python
- GH-3645 Add
TimeSpan.ParseandTimeSpan.TryParsesupport to Python (by @MangelMaxime) - GH-3649 Add
List.sortBy(by @dbrattli) - GH-3638 Add
Array.sortandArray.sortDescending(by @dbrattli)
Fixed
JavaScript
- GH-3465 Fix
string.IndexOfAny(by @pkese)
Python
- GH-3465 Fix
string.IndexOfAny(by @pkese)
4.7.0 - 2023-12-06
Added
All
- Overall performance improvements
Fixed
All
- GH-3603 Missing
.gitignorefile in the generatedfable_modules/folder (by @MangelMaxime) - GH-3712 Fix type of dereferenced byref (by @chkn)
Python
- GH-3648 Records containing different values return the same hash code (by @dbrattli)
Python
- GH-3617: Fix comparaison between list option when one is None (by @mangelmaxime)
- GH-3615: Fix remove from dictionary with tuple as key (by @dbrattli)
- GH-3598: Using obj () now generated an empty dict instead of None (by @dbrattli)
- GH-3597: Do not translate .toString methods to str (by @dbrattli)
- GH-3610: Cleanup Python regex handling (by @dbrattli)
- GH-3628: System.DateTime.Substract not correctly transpiled (by @dbrattli)
- GH-3640: All union cases return the same hash code (by @dbrattli)
4.6.0 - 2023-11-27
Changed
All
- Updated .NET metadata to 8.0.100 (by @ncave)
Added
All
- Fix #3584: Unit type compiles to undeclared variable (by @ncave)
Python
- Support
DateTime(..., DateTimeKind.Utc).ToString("O")(by @MangelMaxime)
Rust
- Added
Guid.TryParse,Guid.ToByteArray(by @ncave)
Fixed
Python
- Fixed char to string type regression with binary operator (by @dbrattli)
- Fix
DateTime(..., DateTimeKind.Local).ToString("O")(by @MangelMaxime) - Fix calling
value.ToString(CultureInfo.InvariantCulture)(by @MangelMaxime) - Fix #3605: Fix record equality comparison to works with optional fields (by @MangelMaxime and @dbrattli)
- PR #3608: Rewrite
time_span.pyallowing for better precision by using a number representation intead of nativetimedelta. (by @MangelMaxime)
4.5.0 - 2023-11-07
Changed
Python
- Use
Anytype for all non-repeated generic arguments (by @dbrattli) - Don't generate unnecessary type type-vars if generic type is replaced by
Any(by @dbrattli) - Generate new style
_T | Noneinstead ofOptional[_T](by @dbrattli)
Rust
- Support multiple namespaces sharing a prefix in the same file (by @ncave)
- Support imports with the same namespace across multiple files (by @ncave)
Fixed
JavaScript
- Fix #3571:
[<AttachMembers>]not compatible with f# memberthis.Item(by @ncave)
4.4.1 - 2023-10-25
Changed
All
- Fix #3567: Turn off FCS warning 3560 by default (by @vzarytovskii)
Fixed
Rust
- Fixed recursive lambda captured idents cloning (by @ncave)
4.4.0 - 2023-10-24
Changed
All
- Updated FCS to bd66d54b1ac4dd0f252c0a37196c2ccd54628356 (by @ncave)
JavaScript
- Support (un)curry up to 20 arguments (by @MangelMaxime)
Python
- Remove support for Python 3.9. Add GH testing for Python 3.12 (by @dbrattli)
- Support (un)curry up to 20 arguments (by @MangelMaxime)
Dart
- Support (un)curry up to 20 arguments (by @MangelMaxime)
4.3.0 - 2023-10-14
Fixed
JavaScript
- Fix #3541: Interface imported in generated javascript when DU has an interface type constraint (by @ncave)
Python
- Fixed
Async.Parallel(by @dbrattli)
Changed
JavaScript
- Improve error messages for
Decimal.Parse,Double.Parse,Int32.Parse,Long.Parse(by @ncave)
Rust
- Improve error messages for
BigInt.Parse,DateOnly.Parse,DateTime.Parse,DateTimeOffset.Parse,Decimal.Parse,TimeOnly.Parse(by @ncave)
Python
- Improve error messages for
Double.Parse,Int32.Parse,Long.Parse(by @ncave) - Refactored async trampoline leveraging asyncio mainloop. (by @dbrattli)
Added
Python
- Added
Async.StartChild(by @dbrattli) - Fix #3482: Revert removal of
Py.pythonandPy.expr_python(by @dbrattli)
4.2.2 - 2023-10-14
Fixed
Python
- Fix #3527: Fix error
name '...' is not defined(by @dbrattli) - Fix #3496: Python target is confused with class taking a
length: intargument (by @dbrattli)
4.2.1 - 2023-09-29
- Fix package to include Fable libraries folders
4.2.0 - 2023-09-29
-
Fix #3480: Function decorated with
[<NamedParams>]without arguments provided should take an empty object -
Fix #3494: Calling an attached parametrized getter fails in transpiled javascript
-
Remove fable-py support
-
Fix #3461: Don't default to javascript if the language requested by the user is unknown (help detect typo)
-
Improve --help message for the --lang section
-
Fix #3464: Invalidate cache when the target language changes
-
Always delete the
fable_modulesfolder when the cache is invalidated -
Remove
--typescriptoptions support, use--lang <target>instead -
Fix #3441: Don't ignore error when loading plugin
-
Fix #3482: Remove
Py.pythonandPy.expr_pythonuseemitPyStatementandemitPyExprinstead -
Restrict replacements to accept only functions from their target language module
-
Fix #3528: Consider functions hidden by a signature file as private (@nojaf)
-
Improve error message when Fable doesn't find the
fable-libraryfolder.This is especially useful when working on Fable itself, and should save time to others. Each time I got this is error, I needed several minutes to remember the cause of it.
4.1.4 - 2023-05-16
- Fix #3438: Source maps
- Fix #3440: Don't curry arity-1 functions
- Fix #3452: DateTimeOffset conversion to DateTime
- Fix regression: Don't type test interfaces declared in F# code
- Rust: Added no_std test build
- Rust: Added regex support
- Rust: Fixed no_std support
- Rust: Fixed uncurried options
- Rust: Enabled some applicative tests
- Rust: Enabled some tests
- Rust: Updated switch transform (#3449)
- Rust: Updated dependencies (#3447)
- Rust: Fixed interface properties (#3445)
- Rust: Updated object equality (#3444)
- Rust: Enabled some Comparison tests (#3442)
- Rust: Added DateOnly, TimeOnly tests
- Rust: Added DateTimeOffset tests
- Rust: Updated TimeSpan
- Rust: Added DateTimeOffset
4.1.3 - 2023-04-28
- JS/TS/Rust: Added bigint log, log2, log10, minMag, maxMag
- TS: Fix extension of files in fable_modules with out dir
- TS: Support annotations of StringEnum and TypeScriptTaggedUnion types
- JS/TS: Output JS docs
- Fix range of inlined functions
4.1.2 - 2023-04-22
- Print minimum fable-library version from npm
4.1.1 - 2023-04-22
- Fix fable-library package.json
4.1.0 - 2023-04-18
- Set TypeScript compilation as stable
- Added Map.minKeyValue and maxKeyValue
4.1.0-beta-001 - 2023-04-16
- Fix #3418: Single-Case Union Reflection
- Include declaration .d.ts files in fable-library
- Update FCS
- Python: Implement missing bigint functions @johannesmols
- TS: Fix #3415: ident type of uncurried lambdas
- TS: Don't use const enums to represent union tags
- TS: Fix function type annotation
- TS: Get generic types of generated members
- TS/JS: Sanitize class fields
4.0.6 - 2023-04-08
- JS Hotfix: Skip compiler generated decls
- TS: Fixes for unions, pattern matching and interface function getters
4.0.5 - 2023-04-08
- Use native JS BigInt for int64/uint64
- Fix #3402: Rust type mismatch error when compiling F# closure code
- Improve optional field and argument typing in TypeScript
- Fix fable-library-ts when used with Vite
4.0.4 - 2023-04-04
- Fix #3397: Curry only user imports
- Fix: Compiler Exception when
!!, Anon Record, and aliasedUx(also behind option) @Booksbaum - Use native bigint type @ncave
- Emit Fable erased unions as TS union types
- Optimize compile time equality and testing (union, list, options)
- TypeScript: enable Comparison, Convert and Event tests
4.0.3 - 2023-03-30
- Fix #3389: Don't wrap TemplateStringArray
- Rust: Fix recursive closures and some type tests,
- TypeScript: Emit interfaces and anonymous record annotations
4.0.2 - 2023-03-27
- Enable Unicode identifiers @kant2002
- Add ability for plugins to remove member declaration @Zaid-Ajaj
- Improve uncurrying mechanism and make it consistent across languages
- Rust: Enable applicative tests and other fixes
- TypeScript: Enable 1909 tests
4.0.1 - 2023-03-18
- Fix #3371: Copying struct records
- Php: Improve output @entropitor
- Rust: string improvements
- TypeScript: Fix applicative tests
4.0.0 - 2023-03-14
- Fable JS stable release
4.0.0-theta-018 - 2022-11-19
- When using a .csproj, make sure the project is restored before parsing
- Rust, added Stack, Queue
4.0.0-theta-017 - 2022-11-16
- Use TargetFramework from .fsproj and ask users to upgrade from netstandard2.0 if necessary
- Update FCS (F# 7)
- Python, handling static getters
- Rust, fix deprecated API
4.0.0-theta-016 - 2022-11-13
- Attempt to improve project parsing
- Added Double.Pow static
4.0.0-theta-015 - 2022-11-05
- JS, enable calls with
importValueDynamic - JS, Support System.Delegate.DynamicInvoke
- Rust, Added feature for func_type_enum
- Rust, Added Func type wrappers (#3250)
4.0.0-theta-014 - 2022-10-31
- Try to fix #3244 (cannot parse .fsproj)
- Rust, added small string type
- Python, fix byte array tying issue
- JS, don't mangle idents from imports in emitted code
- JS, optimize some array transforms
4.0.0-theta-012 - 2022-10-14
- Python, option fixes
- Python, fixes for reference equals with literals
- Python, reduce the number of generated arrow functions
- Rust, Added bigint support
- Use Buildalyzer for parsing .fsproj
4.0.0-theta-011 - 2022-10-04
- Python, add read/write files
- Python, fix URI and number types
- JS, allow imports in emit expressions and JSX
- JS, improve import path resolution (interpolation, inlined functions)
- TypeScript, fix arithmetic tests
4.0.0-theta-010 - 2022-09-28
- Use StringTemplate expr in Fable AST for Python
4.0.0-theta-009 - 2022-09-28
- Add language status to version
- Make --runScript compatible with Python, Rust and Dart
- Update F# compiler
- Compile as net6 binary
- TypeScript, type-safe union types and other fixes
4.0.0-theta-008 - 2022-09-22
- Enable emitExpr/Statement with interpolation, @alfonsogarciacaro
- Python, fix imported interfaces from other modules, @dbrattli
- Python, allow python code embedder to return generic type T
- Python, enable eliding async/await, @dbrattli
- TypeScript, added library-ts to packages, @ncave
- Python, do not trim emitted statements
4.0.0-theta-007 - 2022-09-21
- TypeScript, fix fable-library-ts @ncave
- Python, fix regex tests @dbrattli
- Python, fix emit expressions
- JS, helpers for JSX/React apps
4.0.0-theta-006 - 2022-09-18
- Python, regex fixes for group collection
4.0.0-theta-005 - 2022-09-17
- Python, fix type annotation for imports of erased interfaces
- Python, better regex handling
- TypeScript, ixed some array issues
- Allow alias for default/namespace imports
- TypeScript, added some interface annotations
4.0.0-theta-004 - 2022-09-14
- JS, allow alias for default/namespace imports
4.0.0-theta-003 - 2022-09-12
- Python, fix regression when building on Windows
- Rust, added Default for array, string, hashmap, hashset, guid
4.0.0-theta-002 - 2022-09-11
- Rust, removed cloning after emit
- Python, make sure module names are valid
- Python, fix interface entity lookup
- Python, fixes for .ToArray and is_array_like
- Rust, fixed TimeSpan fields
4.0.0-theta-001 - 2022-09-09
- JSX, enable dynamic children
- Python, fix dict remove
- Rust, updated module visibility
4.0.0-snake-island-alpha-026 - 2022-09-08
- Rust, more dates, @alexswan10k
- Python, fix slice of string statements, @dbrattli
- Python add task RunSynchronously, @dbrattli
- Rust, ade startup an opt-in dependency, @ncave
4.0.0-snake-island-alpha-025 - 2022-09-06
- Added IsInternal and IsPrivate properties in AST, @ncave
- Rust, better datetime comparison + conversion. DateTimeOffset first, @alexswan10k
- Python, GUID fixes, @dbrattli
- Python, async/await fixes for Task returning functions, @dbrattli
- Rust, another problematic ref counting scenario + fix, @alexswan10k
4.0.0-snake-island-alpha-024 - 2022-09-02
- Fable.AST 4.0 stable
- Rust, StringBuilder, Dates, ref counting
4.0.0-snake-island-alpha-023 - 2022-08-30
- Update F# compiler
- Make Fable 4 compatible with Feliz plugins
- Rust, Fixed inner attributes (#3121)
- Rust, Output crate attributes only on last file (#3119)
- Rust, Added collection wrappers (#3118)
- Rust, fix byref nested context not correctly propagating (#3103)
- Rust, Fixed passing fields by ref (#3116)
- Rust, Fixed struct record copy (#3114)
- Rust, Output string type (#3113)
- Python, type var cleanup. Use Any for types starting with $$ (#3100)
- Rust, Fixed string format without args
- Rust, Fixed closure ident cloning (#3106)
- Rust, Fixed static, member and interface imports (#3105)
4.0.0-snake-island-alpha-021 - 2022-08-21
- Rust, fixed curried apply, @ncave
- Python, allow modules with uppercase letters, @dbrattli
- Rust, added Math.DivRem support, @ncave
- Rust, retain inlined funcs with CompiledName attr, @ncave
- Python, fixes for extreme math values, @dbrattli
- Rust, union fix for import prefixes, @alexswan10k
- Rust, fixed build dependency for wasm32, @ncave
4.0.0-snake-island-alpha-020 - 2022-08-14
- Rust, added Display trait, @ncave
- Rust, Initial type testing support, @ncave
- Python, typing fixes, @dbrattli
- Python, Relax identifier checking to accept unicode chars, @dbrattli
- Python, Generate Python data classes for records, @dbrattli
- Rust, implement Thread ctor, start, and join. Implement lock fn. @alexswan10k
- Rust, added decimals, @ncave
- Python, better timespan handling, @dbrattli
- Rust, added core assembly, @ncave
- Rust, implement unsafe-cells feature switch + Monitor, @alexswan10k
- Rust, initial support for object expressions, @ncave
4.0.0-snake-island-alpha-019 - 2022-07-31
- Python, use --fableLib to choose between embedded or site-packages, @dbrattli
- Rust - Make Map and Set support PartialEq, @alexswan10k
- Rust, List/Map/Set cleanup, @ncave
- Rust - more collection interop improvements, @alexswan10k
4.0.0-snake-island-alpha-018 - 2022-07-30
- Python, array, list and resize-array fixes, @dbrattli
- Rust, fable-library-rust cleanup, @ncave
- Rust, Renamed List, Map, Set, @ncave
- Rust, Merged ctor and static impl,@ncave
- Rust, import deduping, @ncave
- Rust, - More work on collection interop (Set, List, Map), @alexswan10k
- Rust, - First pass at getting the interop experience with built in collections a little better, @alexswan10k
4.0.0-snake-island-alpha-017 - 2022-07-27
- Python, reverted back to using modules instead of packages, @dbrattli
- Rust, Fixed overload suffix for anon records, @ncave
4.0.0-snake-island-alpha-016 - 2022-07-26
- Python, fixes for requirements.txt
4.0.0-snake-island-alpha-015 - 2022-07-26
- Python, generate requirements.txt within fable_modules, @dbrattli
- Rust, represent self as a Lrc[T] for method calls using double pointer indirection, @alexswan10k
- Rust, fixed build issue, @ncave
4.0.0-snake-island-alpha-014 - 2022-07-25
- Python, import fixes, @dbrattli
- Rust, records and Unions now are correctly unwrapped when Struct attribute is used to tag as value, @alexswan10k
- Rust, support struct anonymous records, @ncave
- Rust, added support for struct tuples, @ncave
- Rust, fixed struct constructors, @ncave
- Rust, made Async optional, @ncave
- Rust, added missing type import and slices, @ncave
- Rust, comparison updates, @ncave
- Make CancellationTokenSource implement IDisposable, @alfonsogarciacaro
- Fixed Array.compareWith issue, @alfonsogarciacaro
4.0.0-snake-island-alpha-013 - 2022-07-25
- Python, import fixes and package generation, @dbrattli
- Python, use poetry for Python, @dbrattli
4.0.0-snake-island-alpha-012 - 2022-07-12
- Update to latest FCS @ncave
- Rust Support module imports @ncave
- Rust: Implement basic thread pool + tasks + task builder @alexswan10k
- Rust: Async builder, tasks, configurable pointer types @alexswan10k
- Rust: attribute support @ncave
4.0.0-snake-island-alpha-011 - 2022-06-23
- Fix import paths in Python
4.0.0-snake-island-alpha-010 - 2022-06-03
- Use wrapping options for Dart
4.0.0-snake-island-alpha-008 - 2022-06-01
- Rust and Dart fixes
4.0.0-snake-island-alpha-007 - 2022-05-25
- JSX string templates
4.0.0-snake-island-alpha-006 - 2022-05-24
- Dart: compile union cases as child classes
4.0.0-snake-island-alpha-005 - 2022-05-23
- Dart fixes
4.0.0-snake-island-alpha-004 - 2022-05-21
- Don't destructure props arg in JSX components
4.0.0-snake-island-alpha-003 - 2022-05-20
- JSX Support
4.0.0-snake-island-alpha-002 - 2022-05-19
- Snake Island alpha release 2
4.0.0-snake-island-alpha-001 - 2022-05-11
- Snake Island alpha release
3.7.18 - 2022-08-16
- Fix #3052: Nested options with Option.orElse #3052 @IanManske
- Fix Fix #3078: Nested interpolation
3.7.17 - 2022-07-21
- Fix #2961: Make Array.compareWith behaviour consistent with dotnet F#
- Fix #2955: units of mesure with unsigned ints
- Fix #2950: String formatting: trim trailing zeroes when using # placeholder
- Fix #2879: Make CancellationTokenSource implement IDisposable
- Don't print multiple sourceMappingURL comments
3.7.16 - 2022-07-05
- Fix #2869: Don't update maps @hensou
- Fix #2869: Use deterministic names for compiler-generate variables
- Update FCS @ncave
3.7.15 - 2022-06-29
- Fix #2869: Avoid unnecessary updates @hensou
- Fix #2931: Array.IndexOf with non-primitive
3.7.14 - 2022-06-14
- Fix #2924: Invalidate cache if source maps option changes
- Fix #2925: Always set unicode flag for Regex
- Enable non-booleans in Emit optional syntax
3.7.12 - 2022-05-27
- Resolve
defaultArgat compile time when possible - Fix #2900: Equality with prototype-less JS objects
- Fix #2895: FableLibDir in cached info is empty when using --precompiledLib
- Fix #2880: Trait call with unit of measure
3.7.11 - 2022-05-01
- Fix generic param user/compiler generated name conflicts
3.7.10 - 2022-04-29
- Fix #2864: Interface names don't conflict in JS
- Fix #2855: duplicate idents from witness in inline expr
- Fix #2868: don't write empty files
- Add warning when duplicated generic params are detected
3.7.9 - 2022-04-01
- Fix #2851: References captured by >> eagerly eval
- Fix wrong out paths when using lower case drive letter
3.7.8 - 2022-03-24
- Fix #2845: Cover more edge cases @Prunkles
3.7.7 - 2022-03-22
- Fix #2840: Keep delegates of arity 1 curried @JaggerJo
- Fix #2844: 1-len array slices starting at 0 work @jpacker
- Fix #2845: Regex.Matches infinite loop @Prunkles
3.7.6 - 2022-03-16
- Type.IsInstanceOfType works for interfaces decorated with Global/Import @chkn
3.7.5 - 2022-03-01
- Prevent combining absolute paths
3.7.4 - 2022-02-25
- Change intro message
3.7.3 - 2022-02-23
- Fix #2832: Adding a converted char to string
- Fix Type.IsSubclassOf(obj) @chkn
3.7.2 - 2022-02-22
- Fix the fixes in the previous release
3.7.1 - 2022-02-17
- Fix #2809: Generic trait calls in multiple nested inlined functions
- Fix #2817: Optimization - Remove wrapping lambdas when possible
3.7.0 - 2022-02-07
- Cache .fsproj parsing result
- Run F# type check and Fable in parallel (use --noParallelTypeCheck flag to disable)
- Automatic --runFast
- Precompilation
- --noReflection flag
- Disable uncurrying functions passed as arguments to local lambdas
- Seeded System.Random
- Fix typeof(obj).IsInstanceOfType @chkn
- Fix #2709: error when using JsInterop.import in inlined functions
- Fix #2719: use with null disposable
3.7.0-beta-015 - 2022-01-26
- Run sub-process even if compilation was skipped
3.7.0-beta-014 - 2022-01-24
- Add --noParallelTypeCheck option to disable F#/Fable parallel compilation
3.7.0-beta-012 - 2022-01-18
- Disable uncurrying functions passed as arguments to local lambdas
- Fix typeof(obj).IsInstanceOfType @chkn
3.7.0-beta-011 - 2022-01-14
- Fixes for precompiling inline expressions
- Fix #2719: use with null disposable
- Fix #2727: don't write in same line when output redirected
3.7.0-beta-009 - 2022-01-12
- Fix #2718
- Other stability issues and add more verbose logs
3.7.0-beta-008 - 2022-01-11
- Prevent Fable from getting stuck on fatal errors
- Show File compiled messages in CI
3.7.0-beta-007 - 2022-01-11
- Lock file for outDir (mainly intended for parallel processes precompiling the same library)
3.7.0-beta-006 - 2022-01-11
- Allow inlined functions accessing internal values in Fable.Precompiled.dll (FCS)
- Shorten logs in same line if longer than 80 chars (so they don't jump to next line)
- Check paket.references/paket.lock when checking if project cracker cached info is outdates
- Add flag to disable reflection
- Fix #2709: error when using JsInterop.import in inlined functions
3.7.0-beta-005 - 2022-01-07
- Fix cache issues
- Seeded random
3.7.0-beta-004 - 2022-01-05
- Fix watch mode and runFast optimization
3.7.0-beta-003 - 2022-01-04
- Fix precompile errors
3.7.0-beta-002 - 2021-12-28
- Performance improvements
3.7.0-beta-001 - 2021-12-20
- Add precompile command
3.6.3 - 2021-12-01
- New FSharp.Core 6 APIs: updateAt/insertAt/insertManyAt/removeAt/removeManyAt
- Support thousand separators in String.Format
- Fix #2628 @stroborobo
3.6.2 - 2021-11-26
- TypescriptTaggedUnion @cannorin
- Speed up recompilation when adding/removing files
3.6.1 - 2021-11-23
- Fix #2614: Char addition
- Fix #2615: Math.DivRem
- Fix string template literals
- Improve Regex.Match/IsMatch/Matches
- Update FCS
3.6.0 - 2021-11-19
- Support F# 6
- Support DateOnly/TimeOnly @kerams
- Improve watch mode
- Cache project options
3.6.0-beta-003 - 2021-11-17
- Add Fable.Core.Compiler.triggeredByDependency flag
- Support DefaultParameterValue attribute (not for JS interop)
- Update F# compiler
3.6.0-beta-002 - 2021-11-15
- Fix watch mode when saving multiple files at same time
- TimeOnly.FromDateTime @kerams
- Remove --watchDeps flag
3.6.0-beta-001 - 2021-11-14
- Support F# 6
- Support DateOnly/TimeOnly @kerams
- Improve watch mode
- Add
--watchDepsflag - Cache project options
3.4.10 - 2021-11-08
- Add support for StringSplitOptions.TrimEntries @steveofficer
- Fix #2587: DateTimeOffset.Parse issues with some locales @ncave
- Use Process.ArgumentList to escape args passed to subprocess
- Print paths relative to --cwd if set
3.4.9 - 2021-11-05
- Add CLI arg --watchDelay
- Show relative paths in logs
- Fixed Seq.toArray @ncave
- Fix FullName/Name/Namespace of complex array types
3.4.8 - 2021-11-04
- Fix #2572 #2579: Watch .fsi files and referenced .fsproj
- Fix #2576: Last file can omit module declaration
- Fix Seq.cache with partial enumeration
- Fix DateTime Offset parsing with date only and hyphens
- Set NODE_ENV when running a sub-process
3.4.7 - 2021-10-28
- Fix #2571: Forward slash not escaped when creating regex
3.4.6 - 2021-10-26
- Small improvements in Async.ts
3.4.5 - 2021-10-21
- Accept ${entryDir} macro in imports
3.4.4 - 2021-10-20
- Use relative paths for source maps
3.4.3 - 2021-10-14
- Add support of System.Activator for primitive types @Happypig375
- Fix #2566: HashSet.IntersectWith does not respect custom comparer
- Fix calling super from an override when the method was declared in grandparent
- Compile to RegexConstant when possible
- Pass Fable compiled name to ReflectedDecorator
- Remove void wrapper in expression statements
3.4.2 - 2021-10-05
- Fix #2561: Case insensitive args and check
- Fix generic parameters with JS.ReflectedDecorator
3.4.1 - 2021-10-04
- Support System.Collections.Generic.Queue @davedawkins
- Fix custom array equality
- Remove class restriction for ParamObject
- Skip parens in emit if placeholder is already surrounded by parens
3.4.0 - 2021-10-01
- ParamObject attribute
- Rename .fable folder to fable_modules
- Print log about Femto
- Add Type.IsInstanceOfType @chkn
- Fix #2229: Parsing succeeded for some invalid dates @njlr
3.3.1 - 2021-09-27
- Fix #2097: Async.StartChild does not apply timeout @njlr
- Fix #2530: System.Collections.Generic.Stack @njlr
- Fix #2548: Assigning to value of unit type
- Fix #2549: Native ESM support
- Serialize compiler_info as JSON
3.3.0 - 2021-09-16
- JS.Decorator/ReflectedDecorator attributes
- Fix isSubclassOf to walk up the inheritance chain @chkn
- Fix #2520: Uri.OriginalString @njlr
- Fix #2532: Measure products
- Optimize interpolate strings without formatting into JS templates
3.2.14 - 2021-09-11
- Fix #2480: Include package.json in fable-library
- Fix #2522: Warn if user sets .fable as outDir
- Fix #2525: Support infinite arity for currying/uncurrying
- Fix plugin version check
3.2.12 - 2021-08-26
- Fix #2505: Make String.Split match .NET with no or null separators
- Add TimeSpan.Divide and Multiply @0x53A
- Add Async.Sequential @0x53A
- Compile
FormattableStringas JS Templates
3.2.11 - 2021-08-19
- Add --rootModule CLI flag
3.2.10 - 2021-08-02
- Support System.Uri.TryCreate @Choc13
- Fix #2477: Don't drop "DEBUG" and "TRACE" DefineConstants @stroborobo
- Fix #2480: Improve tree shaking with fable-libray
- Fix #2485: Proper representation of Choice with 3 or more items
- Fix #2491: Unchecked.defaultof with struct tuples
- Fix #2496: Custom Pow operator
3.2.9 - 2021-07-08
- Don't print JS files in watch mode if there're F# errors
- Fix SRTP with local inline functions
3.2.8 - 2021-06-26
- Fix regression in FCS: passing SOURCE_IDENTIFIER to static parameters in type providers
3.2.7 - 2021-06-25
- Fix regression: all files were recompiled in watch mode in 3.2.5
- Fix #2472: Tuple-related methods
3.2.6 - 2021-06-22
- Fix #2471: Trait call regression
3.2.5 - 2021-06-21
- Fix #2468: SRTP Parser
- Only show Compile file log in watch compilations
3.2.4 - 2021-06-16
- Fix #2438: Print JS sequence expressions always between parentheses
- Don't jump over mutable idents when inlining
3.2.3 - 2021-06-11
- Experimental.namesofLambda
3.2.2 - 2021-06-03
- Check for correct types in Anonymous Record when assigning to Interface with
[<EmitIndexer>]via !! @Booksbaum - Fix #1973: FormattableString support
3.2.1 - 2021-05-28
- Fix Event issues and and implement FSharpEvent`2 @chkn
- Fix #2451: throw exception when sequence is empty @MNie
- Fix #2445: Improve error message when fable doesn't implement an API
3.2.0 - 2021-05-28
- Update to net5.0 and FCS, @ncave
3.1.16 - 2021-05-14
- Publish with icon and symbols @cartermp
3.1.15 - 2021-04-16
- Add a --sourceMapsRoot CLI option to set source maps sourceRoot @mlaily
- Fix #2433: Improve type info for plugins like Fable.SvelteStore
- Fix #2431: Pass output directory info to plugins
3.1.14 - 2021-04-09
- Experimental
casenameWithFieldIndex
3.1.12 - 2021-03-23
- Fix #1678: BigInt native JS JSON serialization with toJSON
- Fix #2151: Implement DateTimeOffset.toOffset @Booksbaum
- Fix #2410: Invalid offsets are accepted @Booksbaum
- Fix #2411: DateTime(Unspecified) fails when offset not local timezone @Booksbaum
- Fix #2417: overloads with struct tuple
- Fix #2418: List native JS JSON serialization with toJSON
- Update big.js (decimals) @ncave
- Update source-map-sharp to 1.0.5
3.1.11 - 2021-03-17
- Fix watch compilation issues
- Fix #2398: two successive string format placeholders and value of first one ends in
%
3.1.10 - 2021-03-16
- Revert breaking change, configuration should default to Debug only in watch mode @forki
3.1.9 - 2021-03-15
- Fix crash with delegate alias
3.1.8 - 2021-03-15
- Fix #2234: Recompile dependencies in watch mode when Emit/Import attributes change
- Fix #2406: Check --outDir argument when running clean command
3.1.7 - 2021-03-11
- Fix for Fable.Core.JsInterop.importValueDynamic
3.1.6 - 2021-03-11
- Support setting a Build configuration with --configuration cli arg @stroborobo
- Log compiled files in same line
- Fix #2390: Array.choose is executing choose function two times @ncave
- Fix #2394: interpolate doesn't unescape %% correctly @thinkbeforecoding
- Fix #2396: custom exceptions in async workflows
- Fix #2400: Conversion to delegates
- Fix: Accessing named capture group in Regex only works with string constant @Booksbaum
- Fable library improvements and other fixes @ncave
3.1.5 - 2021-02-18
- Fix #2384: Polling file watcher @mlaily
- Fix static constructors with attached members
3.1.4 - 2021-02-12
- Fix #2045: Aliasing a function wrapping a multi-arity function in point-free style
3.1.3 - 2021-02-12
- Add support for named capture groups in Regexes @Booksbaum
- Babel AST: cleanup and refactor @dbrattli
- Fix #1343: Warning when interface name clashes with record field @BillHally
- Fix #2376: Char.IsLetter with โ and โ @ncave @NickDarvey
- Fix #2372: Array.reduce Array.append @inosik
- Fix #2367: Using "unbox null" for callback returns "undefined"
- Fix #2357: Fall-through to default switch case duplicates the switch case consequent code block
- Fix #2356: Curried functions mangled via DU, List.fold and match combination
- Fix #2355: System.Math.Ceiling/Floor returning incorrect values for some Decimals @ncave
- Fix #2350: Empty files
- Fix #2116: Incorrect uncurrying with list of function options
- Fix #2047: Iterating over a list of functions with a for in loop
- Fix #2046: Assigning a function to scoped mutable variable
- Fix #2045: Raise warning for point-free function declarations
3.1.2 - 2021-01-25
- Fast copy for typed arrays @GordonBGood
- Return error exit code when wront arguments passed
- Fix source map writing
- Fix #2350: Invalid JS class for empty files
- Fix #2355: System.Math.Ceiling() and System.Math.Floor returning incorrect values for some Decimals @ncave
- Fix #2357: Remove duplicate switch branches
3.1.1 - 2021-01-13
- Fix #2343: Remove conflicting export default
- Fix #2336: Parameretized padding
- Fix reflection for int64/decimal with units of measure
3.1.0 - 2021-01-11
- Source map support @delneg
- Fix #2342: recompile union tests in watch mode @tomcl
- Fix #2332: watch broken for certain directory structures @jwosty
3.1.0-beta-001 - 2021-01-08
- Source map support @delneg
- Fix #2332: watch broken for certain directory structures @jwosty
3.0.5 - 2020-12-22
- Fixed compiler option parsing @ncave
- Fix #2329: Class getters with import function helpers
- Fix #2328: Check process is available in context
- Fix #2327: Inherit global class in nested module
- Fix #2325:
AttachMembersattribute
3.0.4 - 2020-12-19
- Opt-in polling watcher @mlaily
- Fix #2323: Uncurrying Emit obj args
3.0.3 - 2020-12-18
- Fix #2318: char ranges @inosik
- Fix #2320:
--yesCLI arg - Fix (partially) #2321:
System.Type.GetInterface
3.0.2 - 2020-12-16
- Fix #2313: Measure abbreviations
- Fix #2311: Arrow function printing
3.0.1 - 2020-12-11
- Fix spread wrapped by parens @do-wa
- Add runtime check for Option.Value
- Remove equals/compare "fast" helper (sometimes fails)
3.0.0 - 2020-12-04
- Official release
- Fix #2293: Fix case of path passed as cli argument @tomcl
- Fix #2277: Make FsWatcher case-insensitive @reinux
- Fix local imports with
importfunction helpers
3.0.0-nagareyama-rc-011 - 2020-12-02
- Fix #2303: spreading complex expressions
- Fix #2302: Fable.JsonProvider
3.0.0-nagareyama-rc-010 - 2020-11-28
- Moar beta reduction improvements
- Use caching only in watch mode
- Ignore base constructor calls causing errors @ncave
- Fix watch dependencies when order of union cases changes
- Fix #2295: Disable errors affecting Fable 2-compliant code
3.0.0-nagareyama-rc-009 - 2020-11-25
- Improve lambda beta reduction
- Fix #1962: Find entities by core assembly name
- Fix #2283: FABLE_COMPILER_3 constant
- Fix #2284: Inline import can absorb arguments
- Fix #2288: Ignore --warnaserror from project references
- Fix #2291: Default hashing for classes
3.0.0-nagareyama-rc-008 - 2020-11-19
- Fix FSharpType.IsTuple for array of tuples @kerams
- In watch mode, recompile all files if F# failed previously
- Fix #2281: Hashing JS pojos @inosik
- Fix #2280: Inlined imports
- Fix #2278: Optimize
createObj - Fix #2276: Formatting Decimals
3.0.0-nagareyama-rc-007 - 2020-11-15
- Always lower case ToString
3.0.0-nagareyama-rc-006 - 2020-11-13
- Fix #2136: Type Provider invalidation @zanaptak
- Support Nullables
3.0.0-nagareyama-rc-005 - 2020-11-12
- Fix #2267: Allow direct console output preserving colors @zanaptak
- Fix #2259: File conflict in outDir
- Fix #2260: Add new files to watcher
- StringBuilder.Append overloads @gusty
- Make file watcher more robust
3.0.0-nagareyama-rc-004 - 2020-11-10
- LeanWork.IO.FileSystem.Watcher by Peter Meinl
3.0.0-nagareyama-rc-003 - 2020-11-09
- Fix #1962: FSharp.UMX measure annotated types
- Fix #2250: Math.Clamp
- Fix #2257: Remove warnings in keyValueList
3.0.0-nagareyama-rc-002 - 2020-11-08
- Patch FCS witness error @ncave
- Set always --langversion:preview
3.0.0-nagareyama-rc-001 - 2020-11-07
- Release candidate
- FCS witnesses!
- Other fixes
3.0.0-nagareyama-beta-005 - 2020-10-31
- Fix #2238: Normalize paths on Windows
- Fix #2212 (3rd attempt): Killing subprocess on Windows
3.0.0-nagareyama-beta-004 - 2020-10-27
- Typescript-related updates @ncave
- Omit module prefix in imports @Zaid-Ajaj
- Write compiler options to .fable/compiler_info.txt
- Compatibility with Fable.AST beta-002
3.0.0-nagareyama-beta-003 - 2020-10-25
- Fix #2226: Wrong decimal separator depending on regional setting @bklop
- Fix #2228: Remove unused values generated by imports meant for side effects
- Fix #2224: React.ofImport
- Fix #2216: Remove empty else blocks
- Fix #2212: Ctrl+C doesn't kill subprocess in Windows
3.0.0-nagareyama-beta-002 - 2020-10-23
- Compatibility with Fable.AST beta-001
3.0.0-nagareyama-beta-001 - 2020-10-23
- Beta release
- Fix .fsx compilation
3.0.0-nagareyama-alpha-017 - 2020-10-22
- Only use cached (precompiled) files in debug mode
3.0.0-nagareyama-alpha-016 - 2020-10-22
- Only use cached (precompiled) files in debug mode
- Optimize list construction
- Compatibility with latest Fable.AST
3.0.0-nagareyama-alpha-015 - 2020-10-19
- Fix #2211: File extension in dynamic imports @Zaid-Ajaj
- Fix #2212: Kill subprocess in Windows @Zaid-Ajaj
- Fix #2213: Weird logs
- Compatibility with latest Fable.AST release
- Minor improvements in code generation
3.0.0-nagareyama-alpha-014 - 2020-10-18
- Fixed entity resolution @ncave
- Cli improvements
3.0.0-nagareyama-alpha-012 - 2020-10-15
- Fix plugins
3.0.0-nagareyama-alpha-011 - 2020-10-15
- Plugins
3.0.0-nagareyama-alpha-010 - 2020-10-13
- Fix #2202: Using System.Type as Dictionary key @Zaid-Ajaj
- Fix #2203: Comparing large sets @Zaid-Ajaj
- Keep only entity refs in Fable AST
3.0.0-nagareyama-alpha-009 - 2020-10-11
- Detect if command after
--runis innode_modules/.bindir - Set typedArrays=true as default again
3.0.0-nagareyama-alpha-008 - 2020-10-05
- Use latest FCS @ncave
- Disable file caching when compiler version changes
- Add back base class for Union/Record
- Fix calls to static members of imported classes
3.0.0-nagareyama-alpha-007 - 2020-10-02
- --runScript option
- Fix uncurrying of Emit calls
- Fix type testing performance
- Fix union/record string formattin
3.0.0-nagareyama-alpha-006 - 2020-09-30
- Fix running process
3.0.0-nagareyama-alpha-005 - 2020-09-29
- Fix watcher
- Use latest implementation of FSharpMap and FSharpSet
- Fix generic equality
3.0.0-nagareyama-alpha-004 - 2020-09-28
- Improve CLI and other fixes
3.0.0-nagareyama-alpha-003 - 2020-09-14
- Fix: Add names with $reflection suffix to root scope
- Fix deriving from imported JS classes
- Keep support for ParamList attribute until removed from Fable.React
3.0.0-nagareyama-alpha-002 - 2020-09-13
- Ignore warnings from packages (as before)
3.0.0-nagareyama-alpha-001 - 2020-09-13
- Nagareyama alpha