Skip to content

Latest commit

 

History

History
901 lines (521 loc) · 20.1 KB

CHANGELOG.md

File metadata and controls

901 lines (521 loc) · 20.1 KB

Changelog

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.

Unreleased

4.3.0 - 2024-01-25

Added

JavaScript

  • Add DataView.getBigInt64 by (@PierreYvesR)
  • Add DataView.getBigUint64 by (@PierreYvesR)
  • Add DataView.setBigInt64 by (@PierreYvesR)
  • Add DataView.setBigUint64 by (@PierreYvesR)

4.2.0 - 2021-10-24

Added

JavaScript

  • Add NumberConstructor.EPSILON (by @MangelMaxime)
  • Add NumberConstructor.isFinite (by @MangelMaxime)
  • Add NumberConstructor.isInteger (by @MangelMaxime)
  • Add NumberConstructor.isSafeInteger (by @MangelMaxime)
  • Add NumberConstructor.MAX_SAFE_INTEGER (by @MangelMaxime)
  • Add NumberConstructor.MIN_SAFE_INTEGER (by @MangelMaxime)
  • Add NumberConstructor.parseFloat (by @MangelMaxime)
  • Add NumberConstructor.parseInt (by @MangelMaxime)

Changed

JavaScript

  • Change NumberConstructor.isNaN from float -> bool to obj -> bool (by @MangelMaxime)

4.1.1 - 2023-10-18

Added

Python

  • Fix #3482: Revert removal of Py.python and Py.expr_python (by @dbrattli)

4.1.0 - 2023-09-29

  • Fix #3482: Remove Py.python and Py.expr_python
  • Add !^ to Fable.Core.RustInterop module
  • Fix #3484: Rename emitStatement to emitPyStatement in PyInterop
  • Fix #3484: Rename emitExpr to emitPyExpr in PyInterop
  • Fix #3484: Replace Rust.emitExpr with RustInterop.emitRustExpr

4.0.0-beta-001 - 2022-09-07

  • Fable 4 stable

4.0.0-theta-007 - 2022-11-13

  • Fix #3249 by enabling uncurrying for functions with multiple parameters @inosik

4.0.0-theta-006 - 2022-10-14

  • Python fixes for decorator attribute

4.0.0-theta-005 - 2022-10-04

  • Add JSX.jsx function

4.0.0-theta-004 - 2022-09-28

  • Add ??= operator to JsInterop

4.0.0-theta-003 - 2022-09-22

  • Python fixes for Interactive

4.0.0-theta-002 - 2022-09-21

  • Python helpers for Interactive
  • JS helpers for JSX/React integration

4.0.0-theta-001 - 2022-09-09

  • Fable 4 theta release

4.0.0-snake-island-alpha-007 - 2022-07-25

  • Snake Island alpha release

4.0.0-snake-island-alpha-006 - 2022-07-12

  • Some Rust helpers

4.0.0-snake-island-alpha-005 - 2022-06-03

  • DartNullable and other Dart helpers

4.0.0-snake-island-alpha-004 - 2022-05-25

  • JSX string templates

4.0.0-snake-island-alpha-003 - 2022-05-23

  • Add Dart print/Future/Stream

4.0.0-snake-island-alpha-002 - 2022-05-20

  • JSX Support

4.0.0-snake-island-alpha-001 - 2022-05-11

  • Snake Island alpha release

3.7.1 - 2022-05-27

  • Add AsyncIterable to Fable.Core.JS

3.7.0 - 2022-04-29

  • Fix #2863: Add a nestable union type U9 @cannorin
  • Fix links in doc comments

3.6.2 - 2022-02-17

  • Fix #2805: Improve jsNative error messages
  • Revert changes in Core.JS, see Fulma/issues/294

3.6.1 - 2021-11-26

  • TypescriptTaggedUnion @cannorin

3.6.0-beta-001 - 2021-11-17

  • Add Fable.Core.Compiler.triggeredByDependency flag

3.4.0 - 2021-10-01

  • ParamObject attribute

3.3.1 - 2021-09-16

  • JS.Decorator/ReflectedDecorator attributes
  • JS.Function

3.2.9 - 2021-08-26

  • Add FormattableString.GetStrings() extension

3.2.8 - 2021-06-11

  • Experimental.namesofLambda

3.2.7 - 2021-05-14

  • Publish with icon and symbols @cartermp

3.2.6 - 2021-04-09

  • Experimental casenameWithFieldIndex

3.2.5 - 2021-03-11

  • Add Compiler.extension

3.2.4 - 2021-02-12

  • Add Object.values, Object.entries @kerams
  • Add JsInterop.jsTypeof/jsInstanceof
  • Add JS.Constructors.Array.Create/from

3.2.3 - 2021-01-08

  • Fix incompatibility with Feliz @TIHan

3.2.2 - 2020-12-22

  • AttachMembers attribute

3.2.1 - 2020-12-16

  • Lower FSharp.Core requirement to 4.7.2

3.2.0 - 2020-12-04

  • New helpers for Fable 3
  • Mangle attribute
  • isStatement parameter for Emit attribute
  • emitJsExpr and emitJsStatement helpers
  • Access compiler options in Compiler module

3.1.6 - 2020-09-22

  • Fixed TypedArray.set signature @Shmew

3.1.5 - 2020-02-10

  • Fixed missing indexer in JS TypedArray.

3.1.4 - 2019-12-23

  • Fix JS Map constructor @Luiz-Monad

3.1.3 - 2019-11-07

  • PR #1935: Put JS constructors in different module to prevent conflicts @pauldorehill

3.1.2 - 2019-10-14

  • Add CaseRules.SnakeCase

3.1.1 - 2019-09-25

  • Fix TypedArray bindings @Titaye

3.1.0 - 2019-09-17

  • Add JS Typed Arrays @Titaye
  • Fix names of arguments in Testing.Assert @zanaptak

3.0.0-beta-001 - 2019-02-28

  • Add JsInterop.importValueDynamic
  • Move nameof operators to Experimental module
  • JS extensions
  • Add Emit and Import attribute aliases
  • Namespace restructure

3.0.0-beta-006 - 2019-04-12

  • Add JsInterop.importValueDynamic

3.0.0-beta-005 - 2019-03-13

  • Move nameof operators to Experimental module

3.0.0-beta-004 - 2019-03-12

  • Move JS extensions to Fable.Core.Extensions file

3.0.0-beta-003 - 2019-03-05

  • Add some missing JS APIs

3.0.0-beta-002 - 2019-03-04

  • Array .buffer extension
  • Add Emit and Import attribute aliases

3.0.0-beta-001 - 2019-02-28

  • Namespace restructure

2.1.0-alpha-002 - 2019-01-22

  • Clean Fable.Import.JS module and rename it to Fable.Core.JS
  • Add unions of measure for non-numeric primitive types

2.0.3 - 2018-12-10

  • Add Fable.Core.Reflection module

2.0.2 - 2018-11-20

  • Add nameof2 and exportDefault

2.0.1 - 2018-10-26

  • Fix ReadonlyArray spelling

2.0.0-alpha-001 - 2018-05-24

  • Fable 2

1.3.7 - 2017-12-21

  • See dotnet-fable 1.3.7 release notes

1.3.0-beta-009 - 2017-11-15

  • See dotnet-fable 1.3.0-beta-009 release notes

1.2.4 - 2017-09-27

  • See dotnet-fable 1.2.4 release notes

1.2.3 - 2017-09-18

  • Fix #1135, #1136: unit option hack doesn't work with generic functions

1.2.2 - 2017-09-18

  • See Fable.Compiler 1.2.2

1.2.1 - 2017-09-10

  • Guid validation and byte[] conversion
  • Date Fix #1139

1.2.0-beta-001 - 2017-08-23

  • Add support for String.filter #1133
  • Fix #1131: DateTime.ToString not working without separator

1.2.0-beta-004 - 2017-09-05

  • Fix format over local dates #1129
  • Fix 2 digits years datetime #1127

1.2.0-beta-003 - 2017-08-31

  • Don't calculate relative path for paths in different drive letters on Windows

1.2.0-beta-002 - 2017-08-30

  • Target netstandard1.6 again

1.2.0-beta-001 - 2017-08-23

  • Upgrade to netstandard2.0

1.1.15 - 2017-08-22

  • Fix #1113: Set.union

1.1.14 - 2017-08-08

  • Fix #1104: JSON serialization of Long and BigInt

1.1.12 - 2017-07-31

  • Add DateTime ticks constructor
  • Convert to and from Base64String

1.1.11 - 2017-07-27

  • Fix #1094: Implement "indexed" in collection modules

1.1.10 - 2017-07-24

  • Fix recursive functions in Seq module

1.1.9 - 2017-07-22

  • Add constructors to JsFunc

1.1.8 - 2017-07-18

  • Small refactoring
  • Add DateTime.IsDaylightSavingTime replacement (#1082, #1083)

1.1.7 - 2017-07-11

  • Support String.Join with objects (#1058)

1.1.6 - 2017-07-04

  • Fix #1046: Parse time-only strings
  • Support some System.Uri static methods (#1048)

1.1.5 - 2017-06-28

  • Fix #1028: Arguments of auto-generated lambdas conflicting with outer variables

1.1.4 - 2017-06-24

  • Fix fable-import/#9: Don't try to replace method calls in bindings

1.1.3 - 2017-06-20

  • Add System.Console reference

1.1.2 - 2017-06-20

  • Fix Paket groups for Fable.Core

1.1.1 - 2017-06-19

  • Fix F# compiler errors in recompilation
  • Fix Elmish.Browser parser (#1003)
  • Add support for Option.defaultValue
  • Warn when there are nested options
  • Add replacement for System.Environment.NewLine (#993)
  • Expose Console among JS import globals

1.1.0-rc-001 - 2017-06-10

  • Fable stablish, yeah!

1.1.0-rc-002 - 2017-06-12

  • Fix #996: Don't wrap dynamic CurriedLambdas

1.1.0-rc-001 - 2017-06-10

  • Support Paket groups and move Browser and Node bindings out of Fable.Core

1.0.8 - 2017-06-02

  • Fix #940: Compilation of multiple projects in parallel

1.0.7 - 2017-05-27

  • Fix #952: Don't remove non-null unit arguments
  • Fix #944: Import and Emit on same function

1.0.6 - 2017-05-24

  • Propagate subprocess exit code

1.0.5 - 2017-05-24

  • Fix #946: --port free throws exception

1.0.4 - 2017-05-17

  • Don't redirect dotnet-fable commands but check version and locate fable-core JS files in packages/Fable.Core

1.0.0-narumi-917 - 2017-05-16

  • Fix location of fable-core files

1.0.0-narumi-916 - 2017-05-15

  • We're going PAKET!

1.0.0-narumi-915 - 2017-05-09

  • Fix curried lambdas assigned to generic params (see #888)

0.7.49 - 2017-03-29

  • Fix #744: CLI argument flags

0.7.48 - 2017-03-29

  • Fix #736: Case testing with erased unions

0.7.47 - 2017-03-29

  • Tailcall optimizes function arguments: #681

0.7.45 - 2017-03-29

  • Fix import expressions with methods with function arguments: #721

0.7.43 - 2017-03-29

  • Add reflection methods (see ReflectionTests.fs)
  • Improve import expressions #721

0.7.42 - 2017-03-29

  • Tailcall optimizations: PR #669 + Fixes

0.7.37 - 2017-03-29

  • Add FSharp.Core.dll to fable-compiler package
  • Improve handling of jsThis

0.7.35 - 2017-03-29

  • Only show Rollup warnings in --verbose mode
  • Minor fixes

0.7.34 - 2017-03-29

  • Fix #660: Option.fold and Option.foldBack

0.7.33 - 2017-03-29

  • Add operator enum

0.7.32 - 2017-03-29

  • Fixed default comparer: PR #658

0.7.31 - 2017-03-29

  • Added BigInt conversions: PR #650

0.7.30 - 2017-03-28

  • Fix #649: Int64 serialization
  • Fix #648: Caching of namespace F# entities
  • Fix #646: Zero fill shift right (>>>) for uint32

0.7.29 - 2017-03-14

  • Add BigInteger support

0.7.28 - 2017-02-21

  • Fix #640: Omitted non optional nulls
  • Fix #638: Inlined methods with this argument

0.7.27 - 2017-02-21

  • Add --includeJs compiler argument
  • Fix #629: Visual Studio error format
  • Fix #637: IEnumerable runtime issue

0.7.26 - 2017-01-25

  • Fixed Option.foldBack (#634)
  • Improve .NET Enumerator/JS Iterator compatibility
  • Fix #633: jsThis
  • Fixed Option.foldBack (PR #634)

0.7.25 - 2017-01-20

  • Fix #623: JS Global properties
  • Fix #624: Aether compilation

0.7.24 - 2017-01-19

  • Fix module generic methods without arguments
  • Added String.IndexOfAny/Compare/Equals with StringComparison enum
  • Fix generic types when compiling to ES2015
  • Unify Equals and CompareTo methods of Long.ts

0.7.23 - 2017-01-17

  • Fix #348 #608 Double/Int32 Parse & TryParse
  • Fix #609: Event unsubscription
  • Fix custom exception type testing in ES5
  • Inline local lambdas as values (#601)
  • Fix edge case in toJson (#611)
  • Fix fable-core Babel compilation
  • Added 64-bit integers (#600)
  • Fix #237: Recursive value definitions
  • Added char to int (#594)

0.7.22 - 2017-01-13

  • Fix secondary constructors of imported classes
  • Improvements in option handling

0.7.20 - 2017-01-09

  • Prevent infinite loops for bundle errors in watch mode

0.7.19 - 2017-01-06

  • Fix #509: Add KeyValuePattern
  • Fix #544 #585: Bundling in watch mode
  • Fix #589: Regex Provider with Fable 0.7
  • Add optional argument to GlobalAttribute

0.7.18 - 2017-01-05

  • Add validation to ofJson
  • Make Assert.AreEqual work with F# equality
  • Improve dynamic programming (add jsThis)
  • Add Printf.kprintf (#583)
  • Fix sprintf "%X" (#580)
  • Fix #579: Printf.printfn

0.7.17 - 2016-12-30

  • Add Pojo union types

0.7.16 - 2016-12-26

  • Fix issues in generic resolution

0.7.15 - 2016-12-06

  • Issue warning when calling typeof on a generic parameter
  • Use absolute paths for assembly references in node_modules

0.7.14 - 2016-12-04

  • Use "umd" distribution of fable-core and other libs when compiling for umd modules
  • Fix #569: Types with circular dependencies

0.7.12 - 2016-12-01

  • Fix #568: Types with StructAttribute (compiled as records)
  • Better checking when calling functions with PassGenericsAttribute

0.7.11 - 2016-11-28

  • Some adjustments in attribute resolution

0.7.10 - 2016-11-27

  • Fix #565, #566: Only watch F# files
  • Fix #564: Don't overload methods from imported classes
  • Fix #563: Overloads with PassGenericsAttribute

0.7.9 - 2016-11-24

  • Fix Array.rev (see #559)
  • Added UnboxFast intrinsic / List.truncate (see #561)

0.7.8 - 2016-11-22

  • System.Exception translates to JS Error
  • Fix #556: inline methods placed after calls

0.7.7 - 2016-11-22

  • Fix ES2015 imports

0.7.6 - 2016-11-22

0.7.5-alpha.41 - 2016-11-22

  • Fix cyclic dependencies in fable-core

0.7.5-alpha.40 - 2016-11-22

  • Minor fix

0.7.5-alpha.39 - 2016-11-22

  • Simplify Reflection system
  • Add PojoAttribute
  • Replace baseDir of references with --refs argument

0.7.5-alpha.38 - 2016-11-22

  • Fix #547: Ignored entities conflicting when calculating root namespace

0.7.5-alpha.37 - 2016-11-22

  • Mangle class methods when they conflict with an implemented interface

0.7.5-alpha.35 - 2016-11-22

  • Fix #545: Using Microsoft.FSharp namespace

0.7.5-alpha.34 - 2016-11-22

  • Add import: selector->path->'T to import expressions
  • Make arguments of JsConstructor statically typed
  • Add logs when compiling files for bundling

0.7.5-alpha.33 - 2016-11-22

  • Fix default watch directories
  • Ignore interfaces

0.7.5-alpha.32 - 2016-11-22

  • Compile scripts referenced as plugins
  • Apply Replace plugins to any call
  • Include in compilation JS files with relative paths

0.7.5-alpha.31 - 2016-11-22

  • Fix #535: Script referenced entity replacements

0.7.5-alpha.30 - 2016-11-22

  • Allow configuration of watching dirs

0.7.5-alpha.29 - 2016-11-22

  • Fix infinite recursion when resolving generic parameters

0.7.5-alpha.28 - 2016-11-22

  • More meaningful runtime representation of non-declared types

0.7.5-alpha.27 - 2016-11-22

  • When inlining, assign arguments referenced more than once to a temp var
  • Array.zeroCreate fills non-numeric arrays with null

0.7.5-alpha.26 - 2016-11-22

  • Resolve trait calls as normal method calls (check EmitAttribute, etc)

0.7.5-alpha.24 - 2016-11-22

  • Fix mangled interfaces
  • Improve error messages

0.7.5-alpha.23 - 2016-11-22

  • Add MangleAttribute to prevent conflicts with interfaces
  • Allow combination of ImportAttribute and EmitAttribute
  • Several fixes

0.7.5-alpha.22 - 2016-11-22

  • Add catch-all for missing replacements when referencing types of the BCL or FSharp.Core
  • Omit .js extension again in imports to keep compatibility with Require.js

0.7.5-alpha.21 - 2016-11-22

  • Don't print warnings in process.stderr (see #516)
  • Add String/formatError (see #519)
  • Add .js extension to fable-core and internal imports

0.7.5-alpha.19 - 2016-11-22

  • Distribute fable-core with ES2015 (default) and UMD module formats

0.7.5-alpha.18 - 2016-11-20

  • Don't deem interface setters as overloads (see #505)

0.7.5-alpha.17 - 2016-11-16

  • Update FCS and use Forge to read .fsproj files (removes MSBuild dependency)
  • Bug fixes and optimizations

0.7.5-alpha.16 - 2016-11-13

  • Add JsFunc and JsCons to Fable.Core.JsInterop

0.7.5-alpha.15 - 2016-11-12

  • Use outDir to place the generated dll with .fsproj projects
  • Only emit warnings when generating dlls in verbose mode
  • Fix error when reading Rollup options

0.7.5-alpha.14 - 2016-11-09

  • Fix errors in Fable JS API

0.7.5-alpha.12 - 2016-11-04

  • Change --bundle option to --rollup
  • --rollup can accept an object (in fableconfig.json) with Rollup config
  • Improve plugin resolution for Babel and Rollup

0.7.5-alpha.11 - 2016-10-30

  • Add a block scope to switch cases (see #483)

0.7.5-alpha.10 - 2016-10-29

  • Fix invalid identifiers in top level members (see #482)
  • Generate dll also for fsproj files
  • Expose Fable library to JS API

0.7.5-alpha.9 - 2016-10-29

  • Fix issues with bundling and System.Exception

0.7.5-alpha.8 - 2016-10-28

  • Fix problems with dll generation

0.7.5-alpha.7 - 2016-10-23

  • Add experimental --dll compiler option to generate assemblies

0.7.5-alpha.6 - 2016-10-22

  • Fix path resolution when referencing assemblies

0.7.5-alpha.5 - 2016-10-19

  • Fix partial patterns not returning any value (see #478)

0.7.5-alpha.4 - 2016-10-19

  • Minor fixes

0.7.5-alpha.2 - 2016-10-17

  • Resolve relative paths of referenced projects/dlls as if they were pointing to generated JS code from the fsproj/dll file (EntryModuleAttribute) or from working directory (--refs) and make them reachable from outDir (see #472)
  • Always resolve relative paths in command line options with the directory from where fable is called

0.7.5-alpha.1 - 2016-10-16

0.7.5-alpha - 2016-10-16

  • Add typedefof<>, .IsGenericType, .GetGenericTypeDefinition

0.7.4-alpha - 2016-10-15

  • Resolve import relative paths so they can be reached from outDir if they don't point to an internal file (see #472)

0.7.3-alpha - 2016-10-15

  • Add warning when creating references of types unknown at compile time

0.7.2-alpha - 2016-10-14

  • Convert functions to delegates when passed as arguments to EmitAttribute
  • Add warning when passing generic param to Serialize.ofJson/inflate

0.7.1-alpha - 2016-10-13

  • Add --bundle compiler option
  • Bring back JSON serialization with $type info

0.7.0-alpha - 2016-10-10

  • Add type info to JS constructors: cases (unions) and properties (records and classes)
  • Extend type references with generic info when calling typeof
  • Add GenericParamAttribute to implicitly pass type info of generic parameters
  • Add MutatingUpdateAttribute to compile record updates as mutations
  • Add EntryModuleAttribute to mark assemblies as Fable libraries

0.6.15 - 2016-10-11

  • Revert change from 0.6.14: ES6 modules automatically enable strict mode, so the directive is not needed

0.6.14 - 2016-10-11

  • Add always "use strict" directive

0.6.12 - 2016-10-11

  • Now fableconfig.json can be in JSON5 format (comments!)
  • Omit lambda argument when it's of unit type

0.6.11 - 2016-10-11

  • Don't wait until "postbuild-once" script is finished (see #432)

0.6.9 - 2016-10-11

  • Fix #431: Add --babelrc compiler option
  • Fix #432: Add "postbuild-once" script
  • Fix #433: Add --noTypedArrays compiler option
  • Fix #436: Inform users about not supported overloads of String.IndexOf/LastIndexOf
  • Fix #438: Incorrect this in local let functions creating object expressions
  • Fix #439: IDE locking project file and preventing watch compilations
  • Change compilation defaults: module=commonjs & loose=true

0.6.7 - 2016-10-02

  • Fix #416: Can't ifdef around a load directive
  • Fix List.unfold: PR #428
  • Use reference hint paths for netcore: PR #423

0.6.6 - 2016-09-30

  • Support ResizeArray.FindAll: PR #412

0.6.5 - 2016-09-29

  • Support decimal (converted to JS number): PR #413
  • Support recursive records: PR #417

0.6.4 - 2016-09-28

  • Fix #411: for .. downto

0.6.3 - 2016-09-15

  • Fix watch compilation on Windows

0.6.2 - 2016-09-15

  • Integer conversions (see #407)

0.6.1 - 2016-09-12

  • Multiple bug fixes
  • Internal Fable AST additions
  • Rewrite plugins
  • Use let/const when compiling value bindings to ES6
  • Compile pattern matching with string or number literals as switch statements

0.5.11 - 2016-09-11

  • Fix #382 (partially): Exclude files in "node_modules" when calculating the base directory of referenced dlls.

0.5.10 - 2016-09-11

  • Fix #369: Extra blank lines when running postbuild script
  • Fix #375: Add warning when replacements change semantics (printf, Async.Start...)
  • Fix #377: Remove null args at the end of method/constructor calls also with macros

0.5.9 - 2016-09-11

  • Fix type testing with Erased Unions
  • Erase assigments generated for tuple, record and union gets
  • Fix #370: Add warning when using unions or records with Dictionary (as keys) or HashSet
  • Internal cleanup

0.5.8 - 2016-09-11

  • Use chokidar to watch for file changes
  • Fix calculation of relative paths with special characters (like "#")