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
* Features/Changes
** Compiler: new jsoo_link binary to link multiple javascript files
together and merging sourcemaps.
** Toplevel: improve genaration of toplevels, one can now pass a
an export file containing units to export. (see jsoo_listunits)
** Lib: Provide a Js_of_ocaml (namespace) module to ease transition
with future version of js_of_ocaml
* Bug fixes
** Compiler: fix separate compilation when facing empty unit inside a library
** Runtime: fix many javascript stubs
** Syntac: fix ppx deriving json
===== 2.8.3 (2016-11-04) =====
* Features/Changes
** Runtime: complete support for 4.04
* Bug fixes
** Compiler: fix order of javascript files
** Compiler: fix Javascript lexer (newline inside strings)
** Compiler: fix bug in closure generation
** Compiler: fix regression in closure generation (introduced in 2.8) (#531)
** Compiler: fix code generation when static evaluation is disabled
===== 2.8.2 (2016-09-10) =====
* Features/Changes
** Lib: add Dom_html.Keyboard_code & Dom_html.Keyboard_key (Corwin de Boor)
** Misc: update lib and runtime to work better with non browser environment
** Misc: initial support for 4.04
* Bug fixes
** Compiler: fix js output for x - -1
** Compiler: fix parsing of annotations in the runtime
** Compiler: fix javascript minifier
** Compiler: various fixes for separate compilation.
Issues found with existing distfiles:
distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
distfiles/fortran-utils-1.1.tar.gz
distfiles/ivykis-0.39.tar.gz
distfiles/enum-1.11.tar.gz
distfiles/pvs-3.2-libraries.tgz
distfiles/pvs-3.2-linux.tgz
distfiles/pvs-3.2-solaris.tgz
distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
There are many changes since the latest version, most important are:
** Compiler: SourceMap improvement
** Compiler: remove registration of unused named value (wrt runtime)
** Compiler: Smarter inlining, Constant sharing, Switch generation
** Lib: Dom binding: *AttributeNS, *AttributeNode*, borderRadius
** Runtime: improve performence of string, array allocation
* Misc: enable safestring for OCaml 4.02
* Commandline: switch to Cmdliner. Better -help + manpage
** Runtime: support for num (Ryan Goulden)
** Lib: initial support for Dom_svg
** Lib: introduce Jsonp module
** Lib: introduce JSON object binding
** Lib: introduce DomContentLoaded
** lib: introduce eventSource
** Lib: introduce js_of_ocaml.toplevel package
** Lib: various improvement: textContent,outerHTML,unload event,css properties
** Lib: complete binding of Js.array
** Lib: change signature of Sys_js.register_autoload
** Lib: sync js_of_ocaml.tyxml with latest tyxml
** Tools: helpers to build toplevel: jsoo_mktop, jsoo_mkcmis
** Lib: remove deprecated Event_arrow
** Lib: introduce js_of_ocaml.tyxml
** Lib: introduce js_of_ocaml.weak (that loads weak.js)
and remove predicate joo_weak
** Lib: introduce js_of_ocaml.log (Lwt logger)
** Lib: Dom_html.{range,selection} (Enguerrand Decorne)
** Runtime: improve blit_string perf
** Compiler: option to warn about unused js variable
** Lib: audio/videoElement
** Runtime: bigarray comparison
** Compiler: allow to embed directory with -file dir_name=ext1,ext2:dest_path
** Compiler: can now output embeded files in a differant js file
** Lib: js_of_ocaml.graphics
** Lib: Js.Unsafe.expr to embed JavasScript expression
to be used instead of Js.Unsafe.variable (or eval_string)
** Lib: Sys_js.js_of_ocaml_version && Sys_js.file_content
** OCamlbuild plugin: Add the OASIS support, document the API and add the tags
sourcemap (included in the meta-tag debug) and tailcall (#148)
(by Jacques-Pascal Deplaix)
** Compiler: generate shorter variable names
** Parsing and minifying of external javascript file (ie: runtime)
(by Hugo Heuzard)
** Compiler: JavaScript strict mode enabled
** Runtime: add support for recursive module (by Hugo Heuzard)
** Compiler: use trampoline to implement tailcall optim (by Hugo Heuzard)
** Improved OCaml toplevel UI (by Hugo Heuzard)
** Toplevel: support dynamic loading of cmo and cma files
** Runtime: add Bigarray support (contributed by Andrew Ray)
** Library: switch from "float Js.t" to just "float" for typing
JavaScript numbers
** Compiler: Add javascript file lookup using findlib
(+mypkg/myfile.js will read myfile.js from mypkg findlib directory)
(by Hugo Heuzard)
** Compiler: improve missing primitives & reserved name detection
(by Hugo Heuzard)
** Compiler: static evaluation of constant ("staticeval" optimisation)
(by Hugo Heuzard)
** Compiler: share constants (by Hugo Heuzard)
** Compiler: alias primitives (by Hugo Heuzard)
** Compiler: complete javacript ast (by Hugo Heuzard)
** Compiler: 'caml_format_int %d x' compiles to ""+x (by Hugo Heuzard)
** Add JavaScript file in META (to be used with ocamlfind)
(by Hugo Heuzard)
** Add Ocamlbuild plugin js_of_ocaml.ocamlbuild
(by Jacques-Pascal Deplaix)
** Add/Install classlist.js, weak.js
** Add Url.Current.protocol (by Vicent Balat)
** Dependency: deriving instead of deriving-ocsigen
** Runtime: log wrong string encoding issues to the console (by Hugo Heuzard)
** Add compiler_libs (by Pierre Chambart)
** Compile syntax extension to native code as well (by Hugo Heuzard)
** Add a JavaScript parser (extracted from facebook/pfff)
** Compiler: remove redundant 'var' (by Hugo Heuzard)
** Compiler: improve compact mode, remove unnecessary space, semicolon
** Runtime: Support in_channel and out_channel (by Hugo Heuzard)
** Compiler: option to embed files into the generated js
such files can be read using open_in (by Hugo Heuzard)
** Runtime: add cache for method lookup (by Hugo Heuzard)
** Compiler: experimental sourcemap support (by Hugo Heuzard)
** JavaScript Errors are now wrapped inside OCaml exceptions (by Hugo Heuzard)
** Add missing primitives for OCaml 4.01
** Improved Dom bindings (Hugo Heuzard and many other contributors)
** Add -linkall option to keep all provided primitives (Pierre Chambard)
** Improved tail-call optimization (Hugo Heuzard)
** Added optimization levels: -o {1,2,3} (Hugo Heuzard)
Features/Changes
* Runtime and toplevel updates to support OCaml 4.0
* Add WebSocket bindings
* Added -debuginfo option to output source code location information
(patch by Kensuke Matsuzaki)
* Dom_html: added change, input and hashChange event bindings
* Adding Lwt_js_events.async_loop and buffered_loop
Bugfixes
* Fix array and string blitting with overlapping regions
* Url module: fix encoding of '+'
* Library: use 'this' instead of 'window' for better portability
* Dom_html: fix creation of elements with type or name attribute under IE 9
* Compiler: small fix to bytecode parsing that could result in incorrect
generated code
* Dom_html: fix mouse wheel event bindings
* Dom: fix the type of item methods
* Deriving_json: tail-recursive serialisation of lists (by Hugo Heuzard)
* Deriving_json: fix parsing of float arrays and polymorphic variants
(by Hugo Heuzard)