github ocsigen/js_of_ocaml 5.1.0

latest releases: 5.8.2-floats, 5.8.2, 5.8.1...
18 months ago

CHANGES:

Features/Changes

  • Lib: Added support for KeyboardEvent.getModifierState
  • Misc: bump min ocaml version to 4.08
  • Misc: remove some old runtime files to support some external libs
  • Misc: switch to dune 3.7
  • Effects: partial CPS transformation, resulting in much better performances, lower compilation time and smaller generated code
  • Compiler: separate compilation can now drops unused units when linking (similar to ocamlc). (#1378)
  • Compiler: specialize string to js-string conversion for all valid utf8 strings (previously just ascii)
  • Compiler: JavaScript files generated by js_of_ocaml are now UTF-8 encoded.
  • Compiler: use identifier for object literals when possible
  • Compiler: Cache function arity (the length prop of a function is slow with v8)
  • Compiler: The js lexer is now utf8 aware, recognize and emit utf8 ident
  • Compiler: Update the js lexer with new number literal syntax
  • Compiler: update js parser to support most es6 feature (#1391)
  • Compiler: stop parsing the builtin js runtime if not necessary
  • Compiler: improve js pretty printer (#1405)
  • Compiler: improve debug location and speedup compilation (#1407)
  • Toplevel: Enable separate compilation of toplevels
  • Runtime: js backtrace recording controled by OCAMLRUNPARAM
  • Runtime: support for zstd decompression of marshalled data (ocaml.5.1) (#12006)
  • Runtime: stub out custom runtime events symbols for OCaml 5.1 (#1414)

Bug fixes

  • Effects: fix Js.export and Js.export_all to work with functions (#1417,#1377)
  • Sourcemap: fix incorrect sourcemap with separate compilation
  • Compiler: fix control flow analysis; some annotions were wrong in the runtime
  • Compiler: js backtrace recording respected in the js runtime and when using effects
  • Compiler: no longer fail on invalid source file (when the file is a directory)
  • Runtime: fix the compilation of some mutually recursive functions

Don't miss a new js_of_ocaml release

NewReleases is sending notifications on new releases.