-
Notifications
You must be signed in to change notification settings - Fork 197
Description
Describe the bug
js_of_ocaml is very cool! I use it on CI to generate a webpage. However, I cannot use it on the new GitHub Actions arm64 MacOS boxes, which have only 7 GB of RAM, because it sometimes eats 8--9 GB RAM to generate a single .js file. For example here is a table of build times and memory usages on linux:
Time | Peak Mem | File Name
---------------------------------------------------------------------------
15m11.31s | 8904232 ko | Total Time / Peak Mem
---------------------------------------------------------------------------
4m46.85s | 8808932 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.js
4m37.20s | 7151532 ko | ExtractionJsOfOCaml/fiat_crypto.js
4m30.42s | 8904232 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.js
0m25.80s | 3195952 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.byte
0m25.32s | 3193600 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.byte
0m24.60s | 2814364 ko | ExtractionJsOfOCaml/fiat_crypto.byte
0m00.38s | 102780 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.cmi
0m00.37s | 98468 ko | ExtractionJsOfOCaml/fiat_crypto.cmi
0m00.37s | 102360 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.cmi
It is similar on mac, and a bit better on debian sid.
I invoke it with --source-map --no-inline --enable=effects and invoke the compiler with -package js_of_ocaml -package unix -w -20 -g
For the near future (until artifacts expire), the build artifacts page contains generated .js files (fiat-html-js-of-ocaml), .ml source files (ExtractionJsOfOCaml-source-master), and compiled files (ExtractionJsOfOCaml-master-ocaml-4.11.1).
Expected behavior
I expect there to be a way to make the js_of_ocaml pipeline fit in under 7GB of RAM, possibly with a flag, if necessary.
Versions
js_of_ocaml 5.7.2, ocaml 4.11.1