Skip to content

Releases: ocsigen/js_of_ocaml

6.3.2

15 Feb 10:02
f5fe45b

Choose a tag to compare

CHANGES:

Changes

  • Misc: fix installation of completion files again.

6.3.1

13 Feb 22:58
69bd319

Choose a tag to compare

CHANGES:

Changes

  • Misc: fix installation of completion files in monorepo, working around
    bugs in dune

6.3.0

06 Feb 22:46

Choose a tag to compare

CHANGES:

Features/Changes

  • Misc: install shell completion script generated by cmdliner (#2140)
  • Compiler/wasm: omit code pointer from closures when not used (#2059, #2093)
  • Compiler/wasm: number unboxing (#2069, #2101)
  • Compiler/wasm: specialization of number comparisons and bigarray operations (#1954)
  • Compiler/wasm: make the type of some Wasm primitives more precise (#2100)
  • Compiler: reference unboxing (#1958)
  • Compiler: js-parser: support import/export with attributes
  • Compiler: js-parser: support 'using X = E' for resource management (#2143)
  • Compiler: js-parser: support decorators
  • Compiler: js-parser: support html-comments
  • Compiler: avoid unnecessary boolean-to-integer conversions (#2168)
  • Runtime: improved handling of NaNs (#2110)
  • Lib: allow to reference values from the runtime (#2086)
  • Lib: add Dom_html.onload for WASM-safe load handling (#1948)
  • Runtime: make eval functions more robust (#2108)
  • Compiler: added a constant sinking pass (#2167)

Bug fixes

  • Compiler: fix Global_flow.do_escape monotonicity
  • Compiler: fix static eval of caml_nativeint_to_int
  • Compiler: remove invalid conditional simplification
  • Lib: fix characterData.substringData method name typo in Dom module
  • Lib: fix various Dom_html bindings (submitEvent, mediaQueryListEvent, pointerEvent, element, inputElement, tableElement types and deprecations)
  • Lib: fix numberList type in Dom_svg to use number_t
  • Lib: fix eventSource.url type to use js_string t
  • Lib: fix file.lastModifiedDate type to use Js.date t, add lastModified
  • Lib: fix Form.get_form_elements infinite loop bug
  • Lib: fix position.timestamp type in Geolocation module
  • Lib: remove non-existent setDay and setUTCDay methods from Js.date
  • Lib: fix _ACTIVE_TEXTURE_ type in WebGL to use textureUnit
  • Compiler: fix purity of comparison functions (again) (#2092)
  • Compiler: fix inlining (#2107)
  • Compiler: allow arrow functions in for loops
  • Ppx: disable spurious warning for unused "self" in object literal (#2128)
  • Ppx: fix labelled arguments for methods (#2126)
  • Runtime/wasm: fix Unix.times (#2096)
  • Runtime: runtime with target-env=browser should not rely on "require(..)" (#2129)
  • Runtime: fix fake filesystem with path containing special regexp chars. (#2132)
  • Runtime/wasm: fix unmarshalling of compressed data (#2141)
  • Runtime: fix compilation of loops at start of exception handlers (#2151)
  • Compiler: fix parallel renaming (#2156)

6.2.0

30 Jul 07:24
938c18c

Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: exit-loop-early in more cases (#2077)
  • Runtime: support rename in fake filesystem (#2080)
  • Compiler: remove reserved keyword in ecmascript 3

Bug fixes

  • Compiler: Fix inlining. do not inline recursive functions (#2084)
  • Compiler: fix purity of caml_compare and caml_lxm_next
  • Runtime: fix Sys.rename for directories on windows

6.1.1

07 Jul 13:07
104e924

Choose a tag to compare

CHANGES:

Bug fixes

  • Compiler: Fix shape loading (#2074)

6.1.0

04 Jul 21:57
e7c930e

Choose a tag to compare

CHANGES:

Features/Changes

  • Misc: drop support for OCaml 4.12 and bellow
  • Misc: switch to dune.3.19
  • Misc: initial support for ocaml 5.4 (#2030, #2058)
  • Compiler: support for OCaml 4.14.3+trunk (#1844)
  • Compiler: add the --empty-sourcemap flag
  • Compiler: improve debug/sourcemap location of closures (#1947)
  • Compiler: optimize compilation of switches (#1921, #2057)
  • Compiler: evaluate statically more primitives (#1912, #1915, #1965, #1969)
  • Compiler: rewrote inlining pass (#1935, #2018, #2027)
  • Compiler: improve tailcall optimization (#1943)
  • Compiler: improve deadcode optimization (#1963, #1962, #1967)
  • Compiler: deadcode elimination of cyclic values (#1978)
  • Compiler: remove empty blocks (#1934)
  • Compiler: improve coloring optimization (#1971, #1984, #1986, #1989)
  • Compiler: faster constant sharing (#1988)
  • Compiler: faster js code generation (#1985, #2066)
  • Compiler: improve performance of Javascript linking
  • Compiler: more efficient code generation from bytecode (#1972)
  • Compiler: faster compilation by improving the scheduling of optimization passes (#1962, #2001, #2012, #2027)
  • Compiler: faster compilation by stopping sooner when optimizations become unproductive (#1939)
  • Compiler: Propagate arity between compilation units (#1594)
  • Compiler: Add flags to enable/disable warnings (#2052)
  • Compiler/wasm: directly write Wasm binary modules (#2000, #2003)
  • Compiler/wasm: faster wat output (#1992)
  • Compiler/wasm: use a Wasm text files preprocessor (#1822)
  • Compiler/wasm: optimize integer operations (#2032)
  • Compiler/wasm: use type analysis to remove some unnecessary uses of JavasScript strict equality (#2040)
  • Compiler/wasm: use more precise environment types (#2041)
  • Compiler/wasm: optimize calls to statically known function (#2044)
  • Runtime: use es6 class (#1840)
  • Runtime: support more Unix functions (#1829)
  • Runtime: remove polyfill for Map to simplify MlObjectTable implementation (#1846)
  • Runtime: refactor caml_xmlhttprequest_create implementation (#1846)
  • Runtime: update constant imports to use node:fs module (#1850)
  • Runtime: make Obj.dup work with floats and boxed numbers (#1871)
  • Runtime: delete BigStringReader, one should use UInt8ArrayReader instead
  • Runtime: less conversion during un-marshalling (#1889)
  • Runtime: use TextEncoder/TextDecoder for utf8-utf16 conversions
  • Runtime: use Dataview to convert between floats and bit representation
  • Runtime: optimize Str.search_forward/search_backward (#2056)
  • Runtime: deprecate caml_ba_create_from (#2056)
  • Runtime: check for unused variable in the runtime (#2056)
  • Runtime/wasm: implement BLAKE2b primitives for Wasm (#1873)
  • Runtime/wasm: support jsoo_env and keep track of backtrace status (#1881)
  • Runtime/wasm: support unmarshaling compressed data (#1898)
  • Runtime/wasm: make resuming a continuation more efficient in Wasm (#1892)
  • Runtime/wasm: use imported string constants for JavaScript strings (#2022)
  • Runtime/wasm: use DataView primitives to implement bigarrays (#1979)
  • Ppx: explicitly disallow polymorphic method (#1897)
  • Ppx: allow "function" in object literals (#1897)
  • Lib: add Dom_html.window.matchMedia & Dom_html.mediaQueryList (#2017)
  • Lib: make the Wasm version of Json.output work with native ints and JavaScript objects (#1872)

Bug fixes

  • Compiler: fix stack overflow issues with double translation (#1869)
  • Compiler: minifier fix (#1867)
  • Compiler: fix shortvar with --enable es6 (AssignTarget was not properly handled)
  • Compiler: fix assert failure with double translation (#1870)
  • Compiler: fix path rewriting of Wasm source maps (#1882)
  • Compiler: fix global dead code in presence of dead tailcall (#2010)
  • Compiler/wasm: fix bound check for empty float array (#1904)
  • Runtime: fix path normalization (#1848)
  • Runtime: fix reading from the pseudo-filesystem (#1859)
  • Runtime: fix initialization of standard streams under Windows (#1849)
  • Runtime: fix Int64.of_string overflow check (#1874)
  • Runtime: fix caml_string_concat when not using JS strings (#1874)
  • Runtime: consistent bigarray hashing across all architectures (#1977)
  • Runtime: fix caml_utf8_of_utf16 bug in high surrogate case (#2008)
  • Runtime: fix method lookup (#2034, #2038, #2039)
  • Lib: fix Dom_html.Keyboard_code.of_event (#1878)
  • Tools: fix jsoo_mktop and jsoo_mkcmis (#1877)
  • Toplevel: fix for when use-js-strings is disabled (#1997)

6.0.1

07 Feb 12:06
b6d60e4

Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler/Runtime: Make resuming a continuation more efficient in js (#1765)
  • Compiler/Runtime: Effects: add an optional feature of "dynamic switching" between CPS
    and direct style, resulting in better performance when
    no effect handler is installed
  • Compiler: Merged Wasm_of_ocaml (#1724)
  • Lib: fix the type of some DOM properties and methods (#1747)
  • Lib: removed no longer relevant Js.optdef type annotations (#1769)
  • Lib: Add other textMetrics property (#1784)
  • Lib: rename Firebug to Console (#1802)
  • Test: use dune test stanzas (#1631)
  • Test: run wasm tests on windows
  • Misc: drop support for IE
  • Misc: move tests to OCaml 5.3
  • Misc: import many test from the OCaml codebase
  • Runtime: support for float16 bigarrays
  • Runtime: support more Unix functions (#1823)
  • Runtime: various filesystem fixes (#1825)

Bug fixes

  • Compiler: Fix small bug in global data flow analysis (#1768)
  • Runtime: no longer leak channels
  • Runtime: Fix Marshal.to_buffer (#1798)
  • Runtime: unmarshalling objects should refresh its id
  • Runtime: check size upper bound during array creation
  • Runtime: return sys_error when reading from a closed channels
  • Runtime: fix parsing of hex-float with very large exponent
  • Runtime: make sure [n / 0L] is not optimized away by DCE
  • Runtime: fix Unix.LargeFile.stat/lstat
  • Runtime: fix stat/lstat times
  • Runtime: fix reading from stdin in an interactive nodejs

6.0.0

03 Feb 23:58

Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler/Runtime: Make resuming a continuation more efficient in js (#1765)
  • Compiler/Runtime: Effects: add an optional feature of "dynamic switching" between CPS
    and direct style, resulting in better performance when
    no effect handler is installed
  • Compiler: Merged Wasm_of_ocaml (#1724)
  • Lib: fix the type of some DOM properties and methods (#1747)
  • Lib: removed no longer relevant Js.optdef type annotations (#1769)
  • Lib: Add other textMetrics property (#1784)
  • Lib: rename Firebug to Console (#1802)
  • Test: use dune test stanzas (#1631)
  • Test: run wasm tests on windows
  • Misc: drop support for IE
  • Misc: move tests to OCaml 5.3
  • Misc: import many test from the OCaml codebase
  • Runtime: support for float16 bigarrays
  • Runtime: support more Unix functions (#1823)
  • Runtime: various filesystem fixes (#1825)

Bug fixes

  • Compiler: Fix small bug in global data flow analysis (#1768)
  • Runtime: no longer leak channels
  • Runtime: Fix Marshal.to_buffer (#1798)
  • Runtime: unmarshalling objects should refresh its id
  • Runtime: check size upper bound during array creation
  • Runtime: return sys_error when reading from a closed channels
  • Runtime: fix parsing of hex-float with very large exponent
  • Runtime: make sure [n / 0L] is not optimized away by DCE
  • Runtime: fix Unix.LargeFile.stat/lstat
  • Runtime: fix stat/lstat times
  • Runtime: fix reading from stdin in an interactive nodejs

5.9.1

02 Dec 13:48
a023429

Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: add mechanism to deprecate runtime promitives
  • Runtime: re-introduce caml_new_string, marked as deprecated

5.9.0

22 Nov 13:48
8e1b6ca

Choose a tag to compare

CHANGES:

Features/Changes

  • Misc: update testsuite to OCaml 5.2
  • Misc: CI uses opam.2.2 and no longer use sunset repo
  • Misc: yojson is no longer optional
  • Misc: reduce the diff with the wasm_of_ocaml fork
  • Misc: finalize support for OCaml 5.3
  • Compiler: speedup global_flow/global_deadcode pass on large bytecode
  • Compiler: improved global dead code elimination (#2206)
  • Compiler: speedup json parsing, relying on Yojson.Raw (#1640)
  • Compiler: Decode sourcemap mappings only when necessary (#1664)
  • Compiler: mark [TextEncoder] as reserved
  • Compiler: add support for the Wasm backend in parts of the pipeline, in
    prevision for the merge of wasm_of_ocaml
  • Compiler: introduce a Targetint module
    that follows the semantic of the backend (js or wasm)
  • Compiler: warn on joo_global_object
  • Compiler: revisit static env handling (#1708)
  • Compiler: Emit index source_map to avoid changing mappings (#1714, #1715)
  • Compiler: improved source map generation (#1716)
  • Runtime: change Sys.os_type on windows (Cygwin -> Win32)
  • Runtime: backtraces are really expensive, they need to be explicitly
    requested at compile time (--enable with-js-error) or at startup (OCAMLRUNPARAM=b=1)
  • Runtime: allow dynlink of precompiled js with separate compilation (#1676)
  • Runtime: reimplement the runtime of weak and ephemeron (#1707)
  • Lib: Modify Typed_array API for compatibility with WebAssembly
  • Lib: add details element and toggle event (#1728)
  • Toplevel: no longer set globals for toplevel initialization
  • Runtime: precompute constants used in caml_lxm_next (#1730)
  • Runtime: cleanup runtime

Bug fixes

  • Runtime: fix parsing of unsigned integers (0u2147483648) (#1633, #1666)
  • Runtime: fix incorrect pos_in after unmarshalling
  • Runtime: make float_of_string stricter (#1609)
  • Toplevel: fix missing primitives with separate compilation
  • Compiler: fix link of packed modules with separate compilation
  • Compiler: Fixed the static evaluation of some equalities (#1659)
  • Compiler: fix global analysis bug (subsumes #1556)