Skip to content

Releases: ocsigen/js_of_ocaml

5.9.0

22 Nov 13:48
8e1b6ca
Compare
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)

5.8.2

26 May 14:10
519dc5c
Compare
Choose a tag to compare

CHANGES:

Bug fixes

  • Compiler: fix variable renaming for property binding and assignment target (part 2)

5.8.1

05 May 13:19
f4d64b6
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Library: new Typed_array.Bytes module.

Bug fixes

5.8.0

20 Apr 07:58
1c43da9
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: es6 now generate consise body
  • Compiler: codegen: optimize Offset_ref for negative offsets
  • Compiler: codegen: change argument passing of back edges.
  • Compiler: codegen: use Array destruction to assign args of back
    edges with es6.
  • Compiler: codegen: specialize string equality
  • Compiler: codegen: more specialization for %int_add, %int_sub
  • Compiler: recognize and optimize String.concat
  • Compiler: more inlining - duplicate small function.
  • Compiler: Make it possible to link runtime JavaScript file
    together with OCaml libraries #1509
  • Runtime: abort instead of exit when calling unimplemented
    js primitives in bytecode/native. It should help if one tries
    to understand the source of the call with gdb (see #677)
  • Runtime: re-enable marshalling of floats, disabled in jsoo 2.0
  • Runtime: new runtime api for channels

Bug fixes

  • Compiler: fix variable renaming for property binding and assignment target
  • Compiler: fix separate compilation of toplevels (broken since 5.7.0)
  • Compiler: fix assertion while checking stack compatibility (#1600)

5.7.2

03 Apr 14:39
0df746b
Compare
Choose a tag to compare

CHANGES:

Bug fixes

  • Runtime: add missing primitives for ocaml 5.2.0~beta1

5.7.1

05 Mar 15:05
eb987e0
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: only flush the necessary env for closures (#1568)
  • Library: dialog element support

Bug fixes

  • Compiler: fix --enable=vardecl
  • Compiler: fix parallel renaming (bug introduced in #1567)
  • Lib: fix paragraph construction and coercion
  • Runtime: reduce memory leak with channels (#1581)

5.7.0

21 Feb 23:39
ca84344
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Mics: fix support for OCaml 5.2
  • Compiler: no longer rely on IIFE for scoping variable inside loops
  • Compiler: avoid parsing bytecode sections twice, jsoo counter part of ocaml#12599
  • Lib: add ellipse to canvasRenderingContext2D (@FayCarsons, #1555)

Bug fixes

  • Compiler: fix global dead code elimination in a toplevel context
  • Compiler: fix exit-loop-early optim in presence of closure (#1561)
  • Compiler: remove quadratic behavior in generate.ml (#1531, #1567)

5.6.0

02 Jan 20:53
b9c9a4b
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: try to preserve clorures ordering between ml and js
  • Compiler: js-parser accept for await

Bug fixes

  • Compiler: js-parser now accept all the line terminators defined in the spec
  • Compiler: js-parser: fix support for LHS assignment target
  • Compiler: js-parser: fix parser of default export
  • Compiler: js-parser: allow 'as' as ident
  • Compiler: js-parser: fix for-in rewriting
  • Compiler: js-parser: fix yield pretty print
  • Compiler: js-parser: fix async arrow function
  • Compiler: js-parser: fix class printing
  • Compiler: js-parser: fix #privateName

5.5.2

05 Dec 14:30
ba5d826
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: global dead code elimination (Micah Cantor, #1503)
  • Compiler: change control-flow compilation strategy (#1496)
  • Compiler: loop no longer absorb the whole continuation
  • Compiler: Dead code elimination of unused references (#2076)
  • Compiler: reduce memory consumption (#1516)
  • Compiler: support for import and export construct in the js parser/printer
  • Lib: add download attribute to anchor element
  • Misc: switch CI to OCaml 5.1
  • Misc: preliminary support for OCaml 5.2
  • Misc: support for OCaml 5.1.1

Bug fixes

  • Runtime: fix Dom_html.onIE (#1493)
  • Runtime: add conversion functions + strict equality for compatibility with Wasm_of_ocaml (#1492)
  • Runtime: Dynlink should be able to find symbols in jsoo_runtime #1517
  • Runtime: fix Unix.lstat, Unix.LargeFile.lstat (#1519)
  • Compiler: fix global flow analysis (#1494)
  • Compiler: fix js parser/printer wrt async functions (#1515)
  • Compiler: fix free variables pass wrt parameters' default value (#1521)
  • Compiler: fix free variables for classes
  • Compiler: fix internal invariant (continuation)
  • Compiler: fix variable renaming for let, const and classes
  • Lib: Url.Current.set_fragment need not any urlencode (#1497)

5.5.1

04 Dec 07:38
922b472
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: global dead code elimination (Micah Cantor, #1503)
  • Compiler: change control-flow compilation strategy (#1496)
  • Compiler: loop no longer absorb the whole continuation
  • Compiler: Dead code elimination of unused references (#2076)
  • Compiler: reduce memory consumption (#1516)
  • Compiler: support for import and export construct in the js parser/printer
  • Lib: add download attribute to anchor element
  • Misc: switch CI to OCaml 5.1
  • Misc: preliminary support for OCaml 5.2
  • Misc: support for OCaml 5.1.1

Bug fixes

  • Runtime: fix Dom_html.onIE (#1493)
  • Runtime: add conversion functions + strict equality for compatibility with Wasm_of_ocaml (#1492)
  • Runtime: Dynlink should be able to find symbols in jsoo_runtime #1517
  • Runtime: fix Unix.lstat, Unix.LargeFile.lstat (#1519)
  • Compiler: fix global flow analysis (#1494)
  • Compiler: fix js parser/printer wrt async functions (#1515)
  • Compiler: fix free variables pass wrt parameters' default value (#1521)
  • Compiler: fix free variables for classes
  • Compiler: fix internal invariant (continuation)
  • Compiler: fix variable renaming for let, const and classes
  • Lib: Url.Current.set_fragment need not any urlencode (#1497)