Skip to content

Releases: ocsigen/js_of_ocaml

3.5.1

17 Nov 01:12
Compare
Choose a tag to compare

CHANGES:

Features/Changes

Bug fixes

  • Runtime: fix poly compare with null and undefined (#920)
  • Lib: Deriving Json does not export an [import] unit
  • Dynlink/toplevel: export all units when no export file is specified (#921)
  • Ppx: ppx_deriving_json should allow [%to_json: t] syntax

3.5.0

10 Nov 13:45
Compare
Choose a tag to compare

CHANGES:

Features/Changes

  • Compiler: Improve testing of the compiler (Ty Overby)
  • Compiler: Add several macros for making the runtime easier to maintain (#771) (Ty Overby)
  • Compiler: Allow to emit one javascript per compilation unit (#783)
  • Compiler: refactoring (#781, #782, #787, #795, #802)
  • Compiler: more source map location for the javascript runtime (#795)
  • Compiler: tune variable naming (#838)
  • Compiler: Work around num lib incompatibility
  • Compiler: escape '</' in strings (#899)
  • Compiler: speedup toplevel creation
  • Runtime: support sharing when marshaling (#814)
  • Runtime: add caml_obj_with_tag
  • Runtime: support marshaling custom block
  • Runtime: complete rewrite of bigarray
  • Runtime: complete num implementation
  • Runtime: add caml_ba_hash
  • Runtime: rewrite polymorphic compare
  • Ppx: switch ppx rewriter to the OCaml 4.08 ast
  • Misc: Improve CI speed
  • Misc: remove ppx_deriving dependency
  • Misc: remove cppo dependency
  • Misc: remove ppx_tools_versioned dependency in ppx_deriving_json
  • Misc: support for ocaml 4.09
  • Misc: switch to ocamlformat.0.12
  • Misc: many more tests
  • Misc: new jsoo_fs tool to embed files in a jsoo pseudo fs.
  • Lib: Use expect tests
  • Lib: Add support for 'addEventListener' with options (#807)
  • Lib: Change api of [Lwt_js_events.async] (#862)
  • Lib: Change api of responseText in xmlhttprequest (#863)
  • Lib: add resizeObserver bindings
  • Lib: Added support for custom events (#877)
  • Lib: Added support for focus events (#885)
  • Lib: Added passive option support for Lwt_js_events module
  • Lib: Added bindings for pointer events (#894)

Bug fixes

  • Compiler: don't generate source if no-source-map passed (#780)
  • Compiler: Fix compilation of [Array.set] to return [unit]/0 (#792)
  • Compiler: Fix assertion failure (#828)
  • Compiler: Fix compilation of exception handlers (#830)
  • Compiler: Fix static evaluation of caml_equal (#906)
  • Misc: Fix install on windows (#794)
  • Lib: Fix Dom_svg.createForeignObject (#756)
  • Runtime: Fix caml_obj_tag, causing miscompilation with lazy value (#772)
  • Runtime: Fix caml_ml_seek_out, caml_ml_pos_out (#779) (Shachar Itzhaky)
  • Runtime: caml_parse_sign_and_base to support unsigned syntax (#792) (Shachar Itzhaky)
  • Runtime: fix encoding when printing to stdout (#800)
  • Runtime: Handle browserfs in fs_node detection logic (#831)
  • Runtime: fix Obj.tag (#832)
  • Runtime: fix marshalling of custom blocks (#861)
  • Runtime: fix frexp
  • Runtime: fix float printing with "%f" and large floats

Version 3.4.0

25 Oct 08:50
Compare
Choose a tag to compare

Features/Changes

  • Compiler: Support reproducible builds by using BUILD_PATH_PREFIX_MAP
  • Compiler: Remove support for ocaml < 4.02.3
  • Compiler: use paths from debug info when looking to looking cmis to embed
  • Compiler: refactoring, renaming
  • Compiler: make float literals look like float (#767)
  • Misc: use ocamlformat
  • Misc: dunify the build of the toplevel
  • Misc: support for OCaml 4.08
  • Lib: wrap js_of_ocaml-lwt, js_of_ocaml-tyxml, js_of_ocaml-toplevel, js_of_ocaml-compiler
  • Runtime: don't use deprecated [new Buffer] on nodejs (#726)

Bug fixes

  • Compiler: fix compilation of empty cma
  • Compiler: fix js parser with keyword as ident
  • Compiler, Runtime: make --setenv work with Sys.getenv_opt
  • Compiler: fix miscompilation of Obj.is_int with a match expression
  • Compiler: fix quadratic behaviour in findlib.ml
  • Compiler: prevent addition with a positively-signed number from being coalesced… (#764)
  • Compiler: Fix: static eval of String.get (#770)
  • Runtime: make obj_dup work on string/bytes
  • Runtime: fix bad hash function on int64
  • Runtime: avoid redundant conversion to string in fs_fake.js

Version 3.3.0

25 Oct 08:48
Compare
Choose a tag to compare

Features/Changes

  • Toplevel: [--toplevel] is now taken account when compilig cmo and cma.
  • Lib: make [Js.Unsafe.any] be [Js.Unsafe.top Js.t]
  • Lib: Improve generation of dummy stubs (#700)
  • Lib: Deprecate non namespaced module access
  • Lib: Upgrade to Tyxml 4.3.0
  • Misc: switch to dune
  • Misc: remove camlp4 support

Bug fixes

  • Toplevel: Fix dynlink of precompiled javascript files.
  • Lib: Fix encoding in Sys.set_channel_flusher (fix #686)
  • Runtime: fix the type of dataTransfer##.types
  • Runtime: add dummy implementation for caml_restore_raw_backtrace

Version 3.2.1

25 Oct 08:48
Compare
Choose a tag to compare

Bug fixes

  • Misc: Fix the dependencies of the Lwt logger
  • Runtime: fix semantic of bigstring_destroy_stub

Version 3.2.0

25 Oct 08:48
Compare
Choose a tag to compare

Features/Changes

  • Runime: improve stacktraces.
  • Ppx: ppx uses the OCaml 4.06 ast.
  • Misc: support for OCaml 4.07
  • Misc: start leveraging safe-string.
  • Lib: add support for Internationalization API.
  • Lib: Added media events support.

Bug fixes

  • Runtime: int_of_string accepts leading '+'
  • Runtime: fix polymorphic & hash compare on custom non-ocaml values.
  • Runtime: fix string encoding when writing to channels.
  • Runtime: improve mode js detection wrt filesystem.

Version 3.1.0

25 Oct 08:47
Compare
Choose a tag to compare

Features/Changes

  • Lib: add missing File.blob constructor (fix #630)
  • Runtime: hash support for custom blocks
  • Runtime: weak.js loaded by default
  • Compiler: compile an OCaml program into a named javascript function (fix #599)
  • Misc: move ppx_deriving_json in its own opam package (Rudi Grinberg)
  • Compiler: static eval of float negation
  • Compiler: improve constant sharing.
  • Ppx: add support for writeonly_prop and optdef_prop in object literal.

Bug fixes

  • Compiler: fix code generation of unary ops (missing space).
  • Compiler: fix static eval of conditions (fix #616)
  • Compiler: fix code generation for OCaml GPR#1568
  • Runtime: fix bug found using the closure compiler (#644)

Version 3.0.2

25 Oct 08:47
Compare
Choose a tag to compare

Features/Changes

  • Runtime: support for latest core_kernel

Bug fixes

  • Runtime: fix sys_chdir
  • Runtime: fix fs support on windows
  • Ppx: fix ppx_deriving_json for ocaml 4.05

Version 3.0.1

25 Oct 08:46
Compare
Choose a tag to compare

Features/Changes

  • Lib: add Jstable.remove (Cedric Cellier)
  • Build: use recent version of jbuilder (># 1.0+beta12)

Bug fixes

  • Runtime: fix Sys.file_exists for the in-memory filesystem.
  • Runtime: implement missing primitives: caml_nativeint_bswap, caml_floatarray_*,
    caml_ba_change_layout
  • Runtime: few other bugfixes.
  • Compiler: fix compat with OCaml 4.06

Js_of_ocaml version 3.0.0

22 Jun 04:39
Compare
Choose a tag to compare

Version 3.0.0

Features/Changes

  • Misc: switch to ppx instead of camlp4
  • Misc: always install deriving_json
  • Misc: remove support for async_kernel, bin_prot
  • Misc: remove support for ppx_driver
  • Misc: split js_of_ocaml in multiple packages
  • Misc: switch to jbuilder
  • Misc: new pseudo filesystem support with better node support
  • Compiler: sourcemap support is now optional
  • Compiler: no more strong dep on yojson, b64, menhir, ocamllex
  • Compiler: improve separate compilation workflow
  • Runtime: add support for weakdef
  • Syntaxes: add expect tests
  • Syntaxes: switch to ocaml-migrate-parsetree and ppx_tools_versioned
  • Lib: Add primitives in [Js.Unsafe]
  • Lib: remove keycode module, replaced by Dom_html.Keyboard_code
  • Lib: XmlHttpRequest, API change for perform functions.

Bug fixes:

  • Runtime: fix many stubs
  • Lib: fix many signatures
  • Compiler: fix performance of compilation passes (simpl,clean)
  • Compiler: fix compat with OCaml 4.06
  • Toplevel: flush channels after execution.
  • Toplevel: fix toplevel generation when using -export-unit