-
Notifications
You must be signed in to change notification settings - Fork 197
Compiler: toplevel and dynlink, some cleanup #1324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Well if it's always possible to figure out when these are needed you can forget about my comment about defining libraries for them in #1323… |
eed36ad to
6b96bae
Compare
|
@dbuenzli, this PR contains small refactoring, some documentation and example regarding the compilation of toplevel and Dynlink. review welcome. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At the moment the whole thing got me rather confused. I think it's partly due to the fact that I don't think that dynlink is what I thought it was (i.e. it's not about the Dynlink module). I think it would be good to make it clearer what these things are.
3fe911f to
63e2e7e
Compare
|
@dbuenzli, do you have more to comment on this PR ? |
--dynlink was changed/fixed to perform all necessary steps to have a working Dynlink module. --linkall was extended to link/export all compilation units in addition to linking all runtime primitives The previous semantic of --dynlink can now be achieved with --linkall
01da706 to
55c5ff1
Compare
f51bc7c to
6aa7616
Compare
…s_of_ocaml-ppx_deriving_json, js_of_ocaml-ppx, js_of_ocaml-lwt and js_of_ocaml-compiler (4.1.0) CHANGES: ## Features/Changes * Compiler: initial support for OCaml 5 (ocsigen/js_of_ocaml#1265,ocsigen/js_of_ocaml#1303) * Compiler: bump magic number to match the 5.0.0~alpha0 release (ocsigen/js_of_ocaml#1288) * Compiler: complain when runtime and compiler built-in primitives disagree (ocsigen/js_of_ocaml#1312) * Compiler: more efficient implementation of Js_traverse.freevar * Compiler: more efficient implementation of Js_traverse.rename_variable * Compiler: --linkall now export all compilation units in addition to primitives (ocsigen/js_of_ocaml#1324) * Compiler: improve --dynlink, one no longer need to pass --toplevel to use Dynlink (ocsigen/js_of_ocaml#1324) * Compiler: toplevel runtime files "+toplevel.js" and "+dynlink.js" are added automatically (ocsigen/js_of_ocaml#1324) * Misc: switch to cmdliner.1.1.0 * Misc: remove old binaries jsoo_link, jsoo_fs * Misc: remove uchar dep * Misc: use 4.14 in the CI * Misc: switch to dune 3 * Lib: add missing options for Intl.DateTimeFormat * Lib: add missing options for Intl.NumberFormat * Lib: wheel event binding * Lib: add normalize in js_string (ES6) * Lib: more complete transition event bindings * Lib: remove support for old browser-specific transition events * Runtime: Implement weak semantic for weak and ephemeron * Runtime: Implement Gc.finalise_last * Runtime: Implement buffer for in_channels * Runtime: add support for unix_opendir, unix_readdir, unix_closedir, win_findfirst, win_findnext, win_findclose * Runtime: Dont use require when target-env is browser * Runtime: Implements Parsing.set_trace (ocsigen/js_of_ocaml#1308) * Test: track external used in the stdlib and unix ## Bug fixes * Compiler: fix quadratic behavior of dominance frontier (fix ocsigen/js_of_ocaml#1300) * Compiler: fix rewriter bug in share_constant (fix ocsigen/js_of_ocaml#1247) * Compiler: fix miscompilation of mutually recursive functions in loop (ocsigen/js_of_ocaml#1321) * Compiler: fix bug while minifying/renaming try-catch blocks * Compiler: no dead code elimination for caml_js_get * Runtime: fix ocamlyacc parse engine (ocsigen/js_of_ocaml#1307) * Runtime: fix Out_channel.is_buffered, set_buffered * Runtime: fix format wrt alternative * Runtime: fix Digest.channel * Runtime: sync channel seek / pos with the native runtime * Misc: fix installation with dune 3 without opam * Node: Only write small chunks to stdout/stderr so they flush * Deriving: fix for nested polymorphic variants
Currently
--topleveland--dynlinkare very similar and should probably be merged or at least refactored and documented better.Runtime files
toplevel.jsanddynlink.jsare always necessary when building a toplevel or usingDynlink.These files could be added to the default runtime or added automatically when
--toplevelis used.--toplevelalone is equivalent to--toplevel --dynlink. It is necessary for building a toplevel or using the Dynlink module.--dynlinkalone has a very limited usage. It can be used to dynlink jsoo-generated js files without having to include the toplevel/dynlink logic.This PR
--dynlinkflags to perform the necessary steps for using the Dynlink module--linkallto export all compilation units in addition to runtime primitivesAlso:
--linkall,--dynlinkand--toplevel