-
Notifications
You must be signed in to change notification settings - Fork 195
Wasm text file preprocessor #1822
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
hhugo
reviewed
Jan 30, 2025
22aa8ab
to
408fc17
Compare
Have you considered using this to add sugars to help write control flows (e.g having a |
That seems a good idea, indeed! |
hhugo
reviewed
Feb 3, 2025
hhugo
approved these changes
Feb 3, 2025
32f8b5d
to
28907d4
Compare
a8f6217
to
18ebdc1
Compare
hhugo
reviewed
Feb 25, 2025
hhugo
reviewed
Feb 25, 2025
hhugo
reviewed
Feb 25, 2025
This provides a better debugging experience since reference to these functions will now use an id rather than a number in disassembled code.
hhugo
added a commit
to hhugo/opam-repository
that referenced
this pull request
Jun 27, 2025
CHANGES: ## Features/Changes * Misc: drop support for OCaml 4.12 and bellow * Misc: switch to dune.3.19 * Misc: initial support for ocaml 5.4 (ocsigen/js_of_ocaml#2030, ocsigen/js_of_ocaml#2058) * Compiler: support for OCaml 4.14.3+trunk (ocsigen/js_of_ocaml#1844) * Compiler: add the `--empty-sourcemap` flag * Compiler: improve debug/sourcemap location of closures (ocsigen/js_of_ocaml#1947) * Compiler: optimize compilation of switches (ocsigen/js_of_ocaml#1921, ocsigen/js_of_ocaml#2057) * Compiler: evaluate statically more primitives (ocsigen/js_of_ocaml#1912, ocsigen/js_of_ocaml#1915, ocsigen/js_of_ocaml#1965, ocsigen/js_of_ocaml#1969) * Compiler: rewrote inlining pass (ocsigen/js_of_ocaml#1935, ocsigen/js_of_ocaml#2018, ocsigen/js_of_ocaml#2027) * Compiler: improve tailcall optimization (ocsigen/js_of_ocaml#1943) * Compiler: improve deadcode optimization (ocsigen/js_of_ocaml#1963, ocsigen/js_of_ocaml#1962, ocsigen/js_of_ocaml#1967) * Compiler: deadcode elimination of cyclic values (ocsigen/js_of_ocaml#1978) * Compiler: remove empty blocks (ocsigen/js_of_ocaml#1934) * Compiler: improve coloring optimization (ocsigen/js_of_ocaml#1971, ocsigen/js_of_ocaml#1984, ocsigen/js_of_ocaml#1986, ocsigen/js_of_ocaml#1989) * Compiler: faster constant sharing (ocsigen/js_of_ocaml#1988) * Compiler: faster js code generation (ocsigen/js_of_ocaml#1985) * Compiler: improve performance of Javascript linking * Compiler: more efficient code generation from bytecode (ocsigen/js_of_ocaml#1972) * Compiler: faster compilation by improving the scheduling of optimization passes (ocsigen/js_of_ocaml#1962, ocsigen/js_of_ocaml#2001, ocsigen/js_of_ocaml#2012, ocsigen/js_of_ocaml#2027) * Compiler: faster compilation by stopping sooner when optimizations become unproductive (ocsigen/js_of_ocaml#1939) * Compiler: Propagate arity between compilation units (ocsigen/js_of_ocaml#1594) * Compiler: Add flags to enable/disable warnings (ocsigen/js_of_ocaml#2052) * Compiler/wasm: directly write Wasm binary modules (ocsigen/js_of_ocaml#2000, ocsigen/js_of_ocaml#2003) * Compiler/wasm: faster wat output (ocsigen/js_of_ocaml#1992) * Compiler/wasm: use a Wasm text files preprocessor (ocsigen/js_of_ocaml#1822) * Compiler/wasm: optimize integer operations (ocsigen/js_of_ocaml#2032) * Compiler/wasm: use type analysis to remove some unnecessary uses of JavasScript strict equality (ocsigen/js_of_ocaml#2040) * Compiler/wasm: use more precise environment types (ocsigen/js_of_ocaml#2041) * Compiler/wasm: optimize calls to statically known function (ocsigen/js_of_ocaml#2044) * Runtime: use es6 class (ocsigen/js_of_ocaml#1840) * Runtime: support more Unix functions (ocsigen/js_of_ocaml#1829) * Runtime: remove polyfill for Map to simplify MlObjectTable implementation (ocsigen/js_of_ocaml#1846) * Runtime: refactor caml_xmlhttprequest_create implementation (ocsigen/js_of_ocaml#1846) * Runtime: update constant imports to use `node:fs` module (ocsigen/js_of_ocaml#1850) * Runtime: make Obj.dup work with floats and boxed numbers (ocsigen/js_of_ocaml#1871) * Runtime: delete BigStringReader, one should use UInt8ArrayReader instead * Runtime: less conversion during un-marshalling (ocsigen/js_of_ocaml#1889) * Runtime: use TextEncoder/TextDecoder for utf8-utf16 conversions * Runtime: use Dataview to convert between floats and bit representation * Runtime: optimize Str.search_forward/search_backward (ocsigen/js_of_ocaml#2056) * Runtime: deprecate caml_ba_create_from (ocsigen/js_of_ocaml#2056) * Runtime: check for unused variable in the runtime (ocsigen/js_of_ocaml#2056) * Runtime/wasm: implement BLAKE2b primitives for Wasm (ocsigen/js_of_ocaml#1873) * Runtime/wasm: support jsoo_env and keep track of backtrace status (ocsigen/js_of_ocaml#1881) * Runtime/wasm: support unmarshaling compressed data (ocsigen/js_of_ocaml#1898) * Runtime/wasm: make resuming a continuation more efficient in Wasm (ocsigen/js_of_ocaml#1892) * Runtime/wasm: use imported string constants for JavaScript strings (ocsigen/js_of_ocaml#2022) * Runtime/wasm: use DataView primitives to implement bigarrays (ocsigen/js_of_ocaml#1979) * Ppx: explicitly disallow polymorphic method (ocsigen/js_of_ocaml#1897) * Ppx: allow "function" in object literals (ocsigen/js_of_ocaml#1897) * Lib: add Dom_html.window.matchMedia & Dom_html.mediaQueryList (ocsigen/js_of_ocaml#2017) * Lib: make the Wasm version of Json.output work with native ints and JavaScript objects (ocsigen/js_of_ocaml#1872) ## Bug fixes * Compiler: fix stack overflow issues with double translation (ocsigen/js_of_ocaml#1869) * Compiler: minifier fix (ocsigen/js_of_ocaml#1867) * Compiler: fix shortvar with --enable es6 (AssignTarget was not properly handled) * Compiler: fix assert failure with double translation (ocsigen/js_of_ocaml#1870) * Compiler: fix path rewriting of Wasm source maps (ocsigen/js_of_ocaml#1882) * Compiler: fix global dead code in presence of dead tailcall (ocsigen/js_of_ocaml#2010) * Compiler/wasm: fix bound check for empty float array (ocsigen/js_of_ocaml#1904) * Runtime: fix path normalization (ocsigen/js_of_ocaml#1848) * Runtime: fix reading from the pseudo-filesystem (ocsigen/js_of_ocaml#1859) * Runtime: fix initialization of standard streams under Windows (ocsigen/js_of_ocaml#1849) * Runtime: fix Int64.of_string overflow check (ocsigen/js_of_ocaml#1874) * Runtime: fix caml_string_concat when not using JS strings (ocsigen/js_of_ocaml#1874) * Runtime: consistent bigarray hashing across all architectures (ocsigen/js_of_ocaml#1977) * Runtime: fix caml_utf8_of_utf16 bug in high surrogate case (ocsigen/js_of_ocaml#2008) * Runtime: fix method lookup (ocsigen/js_of_ocaml#2034, ocsigen/js_of_ocaml#2038, ocsigen/js_of_ocaml#2039) * Lib: fix Dom_html.Keyboard_code.of_event (ocsigen/js_of_ocaml#1878) * Tools: fix jsoo_mktop and jsoo_mkcmis (ocsigen/js_of_ocaml#1877) * Toplevel: fix for when use-js-strings is disabled (ocsigen/js_of_ocaml#1997)
This was referenced Jun 27, 2025
hhugo
added a commit
to hhugo/opam-repository
that referenced
this pull request
Jul 4, 2025
CHANGES: ## Features/Changes * Misc: drop support for OCaml 4.12 and bellow * Misc: switch to dune.3.19 * Misc: initial support for ocaml 5.4 (ocsigen/js_of_ocaml#2030, ocsigen/js_of_ocaml#2058) * Compiler: support for OCaml 4.14.3+trunk (ocsigen/js_of_ocaml#1844) * Compiler: add the `--empty-sourcemap` flag * Compiler: improve debug/sourcemap location of closures (ocsigen/js_of_ocaml#1947) * Compiler: optimize compilation of switches (ocsigen/js_of_ocaml#1921, ocsigen/js_of_ocaml#2057) * Compiler: evaluate statically more primitives (ocsigen/js_of_ocaml#1912, ocsigen/js_of_ocaml#1915, ocsigen/js_of_ocaml#1965, ocsigen/js_of_ocaml#1969) * Compiler: rewrote inlining pass (ocsigen/js_of_ocaml#1935, ocsigen/js_of_ocaml#2018, ocsigen/js_of_ocaml#2027) * Compiler: improve tailcall optimization (ocsigen/js_of_ocaml#1943) * Compiler: improve deadcode optimization (ocsigen/js_of_ocaml#1963, ocsigen/js_of_ocaml#1962, ocsigen/js_of_ocaml#1967) * Compiler: deadcode elimination of cyclic values (ocsigen/js_of_ocaml#1978) * Compiler: remove empty blocks (ocsigen/js_of_ocaml#1934) * Compiler: improve coloring optimization (ocsigen/js_of_ocaml#1971, ocsigen/js_of_ocaml#1984, ocsigen/js_of_ocaml#1986, ocsigen/js_of_ocaml#1989) * Compiler: faster constant sharing (ocsigen/js_of_ocaml#1988) * Compiler: faster js code generation (ocsigen/js_of_ocaml#1985, ocsigen/js_of_ocaml#2066) * Compiler: improve performance of Javascript linking * Compiler: more efficient code generation from bytecode (ocsigen/js_of_ocaml#1972) * Compiler: faster compilation by improving the scheduling of optimization passes (ocsigen/js_of_ocaml#1962, ocsigen/js_of_ocaml#2001, ocsigen/js_of_ocaml#2012, ocsigen/js_of_ocaml#2027) * Compiler: faster compilation by stopping sooner when optimizations become unproductive (ocsigen/js_of_ocaml#1939) * Compiler: Propagate arity between compilation units (ocsigen/js_of_ocaml#1594) * Compiler: Add flags to enable/disable warnings (ocsigen/js_of_ocaml#2052) * Compiler/wasm: directly write Wasm binary modules (ocsigen/js_of_ocaml#2000, ocsigen/js_of_ocaml#2003) * Compiler/wasm: faster wat output (ocsigen/js_of_ocaml#1992) * Compiler/wasm: use a Wasm text files preprocessor (ocsigen/js_of_ocaml#1822) * Compiler/wasm: optimize integer operations (ocsigen/js_of_ocaml#2032) * Compiler/wasm: use type analysis to remove some unnecessary uses of JavasScript strict equality (ocsigen/js_of_ocaml#2040) * Compiler/wasm: use more precise environment types (ocsigen/js_of_ocaml#2041) * Compiler/wasm: optimize calls to statically known function (ocsigen/js_of_ocaml#2044) * Runtime: use es6 class (ocsigen/js_of_ocaml#1840) * Runtime: support more Unix functions (ocsigen/js_of_ocaml#1829) * Runtime: remove polyfill for Map to simplify MlObjectTable implementation (ocsigen/js_of_ocaml#1846) * Runtime: refactor caml_xmlhttprequest_create implementation (ocsigen/js_of_ocaml#1846) * Runtime: update constant imports to use `node:fs` module (ocsigen/js_of_ocaml#1850) * Runtime: make Obj.dup work with floats and boxed numbers (ocsigen/js_of_ocaml#1871) * Runtime: delete BigStringReader, one should use UInt8ArrayReader instead * Runtime: less conversion during un-marshalling (ocsigen/js_of_ocaml#1889) * Runtime: use TextEncoder/TextDecoder for utf8-utf16 conversions * Runtime: use Dataview to convert between floats and bit representation * Runtime: optimize Str.search_forward/search_backward (ocsigen/js_of_ocaml#2056) * Runtime: deprecate caml_ba_create_from (ocsigen/js_of_ocaml#2056) * Runtime: check for unused variable in the runtime (ocsigen/js_of_ocaml#2056) * Runtime/wasm: implement BLAKE2b primitives for Wasm (ocsigen/js_of_ocaml#1873) * Runtime/wasm: support jsoo_env and keep track of backtrace status (ocsigen/js_of_ocaml#1881) * Runtime/wasm: support unmarshaling compressed data (ocsigen/js_of_ocaml#1898) * Runtime/wasm: make resuming a continuation more efficient in Wasm (ocsigen/js_of_ocaml#1892) * Runtime/wasm: use imported string constants for JavaScript strings (ocsigen/js_of_ocaml#2022) * Runtime/wasm: use DataView primitives to implement bigarrays (ocsigen/js_of_ocaml#1979) * Ppx: explicitly disallow polymorphic method (ocsigen/js_of_ocaml#1897) * Ppx: allow "function" in object literals (ocsigen/js_of_ocaml#1897) * Lib: add Dom_html.window.matchMedia & Dom_html.mediaQueryList (ocsigen/js_of_ocaml#2017) * Lib: make the Wasm version of Json.output work with native ints and JavaScript objects (ocsigen/js_of_ocaml#1872) ## Bug fixes * Compiler: fix stack overflow issues with double translation (ocsigen/js_of_ocaml#1869) * Compiler: minifier fix (ocsigen/js_of_ocaml#1867) * Compiler: fix shortvar with --enable es6 (AssignTarget was not properly handled) * Compiler: fix assert failure with double translation (ocsigen/js_of_ocaml#1870) * Compiler: fix path rewriting of Wasm source maps (ocsigen/js_of_ocaml#1882) * Compiler: fix global dead code in presence of dead tailcall (ocsigen/js_of_ocaml#2010) * Compiler/wasm: fix bound check for empty float array (ocsigen/js_of_ocaml#1904) * Runtime: fix path normalization (ocsigen/js_of_ocaml#1848) * Runtime: fix reading from the pseudo-filesystem (ocsigen/js_of_ocaml#1859) * Runtime: fix initialization of standard streams under Windows (ocsigen/js_of_ocaml#1849) * Runtime: fix Int64.of_string overflow check (ocsigen/js_of_ocaml#1874) * Runtime: fix caml_string_concat when not using JS strings (ocsigen/js_of_ocaml#1874) * Runtime: consistent bigarray hashing across all architectures (ocsigen/js_of_ocaml#1977) * Runtime: fix caml_utf8_of_utf16 bug in high surrogate case (ocsigen/js_of_ocaml#2008) * Runtime: fix method lookup (ocsigen/js_of_ocaml#2034, ocsigen/js_of_ocaml#2038, ocsigen/js_of_ocaml#2039) * Lib: fix Dom_html.Keyboard_code.of_event (ocsigen/js_of_ocaml#1878) * Tools: fix jsoo_mktop and jsoo_mkcmis (ocsigen/js_of_ocaml#1877) * Toplevel: fix for when use-js-strings is disabled (ocsigen/js_of_ocaml#1997)
hhugo
added a commit
to hhugo/opam-repository
that referenced
this pull request
Jul 4, 2025
CHANGES: ## Features/Changes * Misc: drop support for OCaml 4.12 and bellow * Misc: switch to dune.3.19 * Misc: initial support for ocaml 5.4 (ocsigen/js_of_ocaml#2030, ocsigen/js_of_ocaml#2058) * Compiler: support for OCaml 4.14.3+trunk (ocsigen/js_of_ocaml#1844) * Compiler: add the `--empty-sourcemap` flag * Compiler: improve debug/sourcemap location of closures (ocsigen/js_of_ocaml#1947) * Compiler: optimize compilation of switches (ocsigen/js_of_ocaml#1921, ocsigen/js_of_ocaml#2057) * Compiler: evaluate statically more primitives (ocsigen/js_of_ocaml#1912, ocsigen/js_of_ocaml#1915, ocsigen/js_of_ocaml#1965, ocsigen/js_of_ocaml#1969) * Compiler: rewrote inlining pass (ocsigen/js_of_ocaml#1935, ocsigen/js_of_ocaml#2018, ocsigen/js_of_ocaml#2027) * Compiler: improve tailcall optimization (ocsigen/js_of_ocaml#1943) * Compiler: improve deadcode optimization (ocsigen/js_of_ocaml#1963, ocsigen/js_of_ocaml#1962, ocsigen/js_of_ocaml#1967) * Compiler: deadcode elimination of cyclic values (ocsigen/js_of_ocaml#1978) * Compiler: remove empty blocks (ocsigen/js_of_ocaml#1934) * Compiler: improve coloring optimization (ocsigen/js_of_ocaml#1971, ocsigen/js_of_ocaml#1984, ocsigen/js_of_ocaml#1986, ocsigen/js_of_ocaml#1989) * Compiler: faster constant sharing (ocsigen/js_of_ocaml#1988) * Compiler: faster js code generation (ocsigen/js_of_ocaml#1985, ocsigen/js_of_ocaml#2066) * Compiler: improve performance of Javascript linking * Compiler: more efficient code generation from bytecode (ocsigen/js_of_ocaml#1972) * Compiler: faster compilation by improving the scheduling of optimization passes (ocsigen/js_of_ocaml#1962, ocsigen/js_of_ocaml#2001, ocsigen/js_of_ocaml#2012, ocsigen/js_of_ocaml#2027) * Compiler: faster compilation by stopping sooner when optimizations become unproductive (ocsigen/js_of_ocaml#1939) * Compiler: Propagate arity between compilation units (ocsigen/js_of_ocaml#1594) * Compiler: Add flags to enable/disable warnings (ocsigen/js_of_ocaml#2052) * Compiler/wasm: directly write Wasm binary modules (ocsigen/js_of_ocaml#2000, ocsigen/js_of_ocaml#2003) * Compiler/wasm: faster wat output (ocsigen/js_of_ocaml#1992) * Compiler/wasm: use a Wasm text files preprocessor (ocsigen/js_of_ocaml#1822) * Compiler/wasm: optimize integer operations (ocsigen/js_of_ocaml#2032) * Compiler/wasm: use type analysis to remove some unnecessary uses of JavasScript strict equality (ocsigen/js_of_ocaml#2040) * Compiler/wasm: use more precise environment types (ocsigen/js_of_ocaml#2041) * Compiler/wasm: optimize calls to statically known function (ocsigen/js_of_ocaml#2044) * Runtime: use es6 class (ocsigen/js_of_ocaml#1840) * Runtime: support more Unix functions (ocsigen/js_of_ocaml#1829) * Runtime: remove polyfill for Map to simplify MlObjectTable implementation (ocsigen/js_of_ocaml#1846) * Runtime: refactor caml_xmlhttprequest_create implementation (ocsigen/js_of_ocaml#1846) * Runtime: update constant imports to use `node:fs` module (ocsigen/js_of_ocaml#1850) * Runtime: make Obj.dup work with floats and boxed numbers (ocsigen/js_of_ocaml#1871) * Runtime: delete BigStringReader, one should use UInt8ArrayReader instead * Runtime: less conversion during un-marshalling (ocsigen/js_of_ocaml#1889) * Runtime: use TextEncoder/TextDecoder for utf8-utf16 conversions * Runtime: use Dataview to convert between floats and bit representation * Runtime: optimize Str.search_forward/search_backward (ocsigen/js_of_ocaml#2056) * Runtime: deprecate caml_ba_create_from (ocsigen/js_of_ocaml#2056) * Runtime: check for unused variable in the runtime (ocsigen/js_of_ocaml#2056) * Runtime/wasm: implement BLAKE2b primitives for Wasm (ocsigen/js_of_ocaml#1873) * Runtime/wasm: support jsoo_env and keep track of backtrace status (ocsigen/js_of_ocaml#1881) * Runtime/wasm: support unmarshaling compressed data (ocsigen/js_of_ocaml#1898) * Runtime/wasm: make resuming a continuation more efficient in Wasm (ocsigen/js_of_ocaml#1892) * Runtime/wasm: use imported string constants for JavaScript strings (ocsigen/js_of_ocaml#2022) * Runtime/wasm: use DataView primitives to implement bigarrays (ocsigen/js_of_ocaml#1979) * Ppx: explicitly disallow polymorphic method (ocsigen/js_of_ocaml#1897) * Ppx: allow "function" in object literals (ocsigen/js_of_ocaml#1897) * Lib: add Dom_html.window.matchMedia & Dom_html.mediaQueryList (ocsigen/js_of_ocaml#2017) * Lib: make the Wasm version of Json.output work with native ints and JavaScript objects (ocsigen/js_of_ocaml#1872) ## Bug fixes * Compiler: fix stack overflow issues with double translation (ocsigen/js_of_ocaml#1869) * Compiler: minifier fix (ocsigen/js_of_ocaml#1867) * Compiler: fix shortvar with --enable es6 (AssignTarget was not properly handled) * Compiler: fix assert failure with double translation (ocsigen/js_of_ocaml#1870) * Compiler: fix path rewriting of Wasm source maps (ocsigen/js_of_ocaml#1882) * Compiler: fix global dead code in presence of dead tailcall (ocsigen/js_of_ocaml#2010) * Compiler/wasm: fix bound check for empty float array (ocsigen/js_of_ocaml#1904) * Runtime: fix path normalization (ocsigen/js_of_ocaml#1848) * Runtime: fix reading from the pseudo-filesystem (ocsigen/js_of_ocaml#1859) * Runtime: fix initialization of standard streams under Windows (ocsigen/js_of_ocaml#1849) * Runtime: fix Int64.of_string overflow check (ocsigen/js_of_ocaml#1874) * Runtime: fix caml_string_concat when not using JS strings (ocsigen/js_of_ocaml#1874) * Runtime: consistent bigarray hashing across all architectures (ocsigen/js_of_ocaml#1977) * Runtime: fix caml_utf8_of_utf16 bug in high surrogate case (ocsigen/js_of_ocaml#2008) * Runtime: fix method lookup (ocsigen/js_of_ocaml#2034, ocsigen/js_of_ocaml#2038, ocsigen/js_of_ocaml#2039) * Lib: fix Dom_html.Keyboard_code.of_event (ocsigen/js_of_ocaml#1878) * Tools: fix jsoo_mktop and jsoo_mkcmis (ocsigen/js_of_ocaml#1877) * Toplevel: fix for when use-js-strings is disabled (ocsigen/js_of_ocaml#1997)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For a start, it is only used to manage runtime differences between OCaml versions, and to provide some syntactic sugar for strings. But I plan to use it for a WASI version of the runtime and to implement the use-js-string flag.