Cache file contents in action builder by name.#6555
Cache file contents in action builder by name.#6555dkalinichenko-js merged 5 commits intoocaml:mainfrom
Conversation
|
It's worth adding that in our monorepo, this change sped up null builds by the factor of 2.6x! We were reading every file 6 times on average. @ejgallego Could you check if this change makes Coq null builds noticeably faster? (Asking because presumably Coq build is pretty expensive.) |
|
@dkalinichenko-js There is a little benchmark in perf.sh. Could you run it and show the results? |
Signed-off-by: Diana Kalinichenko <dkalinichenko@janestreet.com>
c9d1f3e to
97df87f
Compare
Oops, done. |
Signed-off-by: Diana Kalinichenko <dkalinichenko@janestreet.com>
…inichenko-js/dune into cache-file-contents-by-name
|
@snowleopard our monorepo coq-universe needs some work since we are updating the Coq version, but I'll make a note to test ASAP when it is functional again. |
Unfortunately can't get the benchmark to compile on my machine, but I don't expect much improvement outside of Jane due to different build rules. Merging anyway. |
@Alizter Thanks, please share the results! |
* main: (58 commits) test: formatting of alternative dune files (ocaml#6567) refactor: remove Modules.is_empty (ocaml#6564) refactor: module kinds (ocaml#6562) refactor(coq): resolve lack of coqc properly Cache file contents in action builder by name. (ocaml#6555) fix: re-enable dune on older macos sdk's (ocaml#6515) fix: do not hide lib interface module (ocaml#6549) test: remove pkg-config output for reproducibility (ocaml#6543) melange: add test for ocaml flags (ocaml#6548) fix: improve virtual library error messages test: virtual library and impl locations test: alias module regression (ocaml#6544) refactor(merlin): dump config sub command (ocaml#6547) refactor: simplify merlin (ocaml#6508) chore(nix): use nix-overlays for the slim devShell (ocaml#6546) fix: module compilation rule env (ocaml#6527) chore: update nix (ocaml#6536) fix: merlin rules with pp's (ocaml#6474) Call [Dune_util.Log.init] as soon as possible (ocaml#6542) refactor: speed up stdlib build (ocaml#6524) ...
* main: test: formatting of alternative dune files (ocaml#6567) refactor: remove Modules.is_empty (ocaml#6564) refactor: module kinds (ocaml#6562) refactor(coq): resolve lack of coqc properly Cache file contents in action builder by name. (ocaml#6555) fix: re-enable dune on older macos sdk's (ocaml#6515) fix: do not hide lib interface module (ocaml#6549) test: remove pkg-config output for reproducibility (ocaml#6543) melange: add test for ocaml flags (ocaml#6548) fix: improve virtual library error messages test: virtual library and impl locations test: alias module regression (ocaml#6544) refactor(merlin): dump config sub command (ocaml#6547)
Improve overall performance in builds by removing redundant reads. Previously, Dune was caching file contents only by callsites.