@grain/binaryen.ml 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {binaryen-archive → binaryen-archive-v0.12.0}/.gitattributes +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/.gitignore +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/.gitmodules +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/CHANGELOG.md +51 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/LICENSE +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/README.md +28 -4
- {binaryen-archive → binaryen-archive-v0.12.0}/binaryen.opam +8 -8
- {binaryen-archive → binaryen-archive-v0.12.0}/dune +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/dune-project +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/dune-workspace +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/.gitattributes +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/.gitignore +0 -0
- binaryen-archive-v0.12.0/esy.lock/index.json +1365 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/astring.0.8.5/opam +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/base-threads.base/opam +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/base-unix.base/opam +0 -0
- {binaryen-archive/esy.lock/opam/base.v0.14.1 → binaryen-archive-v0.12.0/esy.lock/opam/base.v0.14.2}/opam +4 -4
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/biniou.1.2.1/opam +1 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/cmdliner.1.0.4/opam +0 -0
- {binaryen-archive/esy.lock/opam/cppo.1.6.7 → binaryen-archive-v0.12.0/esy.lock/opam/cppo.1.6.8}/opam +4 -6
- {binaryen-archive/esy.lock/opam/csexp.1.4.0 → binaryen-archive-v0.12.0/esy.lock/opam/csexp.1.5.1}/opam +11 -9
- {binaryen-archive/esy.lock/opam/dune-build-info.2.8.2 → binaryen-archive-v0.12.0/esy.lock/opam/dune-build-info.2.9.1}/opam +5 -5
- {binaryen-archive/esy.lock/opam/dune-configurator.2.8.2 → binaryen-archive-v0.12.0/esy.lock/opam/dune-configurator.2.9.1}/opam +5 -5
- {binaryen-archive/esy.lock/opam/dune.2.8.2 → binaryen-archive-v0.12.0/esy.lock/opam/dune.2.9.2}/opam +5 -4
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/easy-format.1.3.2/opam +1 -1
- {binaryen-archive/esy.lock/opam/fix.20201120 → binaryen-archive-v0.12.0/esy.lock/opam/fix.20220121}/opam +7 -5
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/fpath.0.7.3/opam +0 -0
- binaryen-archive-v0.12.0/esy.lock/opam/js_of_ocaml-compiler.3.11.0/opam +54 -0
- binaryen-archive-v0.12.0/esy.lock/opam/js_of_ocaml-ppx.3.11.0/opam +44 -0
- binaryen-archive-v0.12.0/esy.lock/opam/js_of_ocaml.3.11.0/opam +45 -0
- {binaryen-archive/esy.lock/opam/menhir.20201216 → binaryen-archive-v0.12.0/esy.lock/opam/menhir.20211128}/opam +8 -6
- {binaryen-archive/esy.lock/opam/menhirLib.20201216 → binaryen-archive-v0.12.0/esy.lock/opam/menhirLib.20211128}/opam +8 -6
- {binaryen-archive/esy.lock/opam/menhirSdk.20201216 → binaryen-archive-v0.12.0/esy.lock/opam/menhirSdk.20211128}/opam +8 -6
- binaryen-archive-v0.12.0/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam +39 -0
- {binaryen-archive/esy.lock/opam/ocaml-lsp-server.1.4.0 → binaryen-archive-v0.12.0/esy.lock/opam/ocaml-lsp-server.1.9.0}/opam +15 -12
- {binaryen-archive/esy.lock/opam/ocaml-migrate-parsetree.2.1.0 → binaryen-archive-v0.12.0/esy.lock/opam/ocaml-migrate-parsetree.2.3.0}/opam +13 -10
- binaryen-archive-v0.12.0/esy.lock/opam/ocaml-version.3.4.0/opam +49 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/ocamlbuild.0.14.0/opam +1 -1
- {binaryen-archive/esy.lock/opam/ocamlfind.1.8.1 → binaryen-archive-v0.12.0/esy.lock/opam/ocamlfind.1.9.2}/opam +19 -39
- binaryen-archive-v0.12.0/esy.lock/opam/ocamlformat-rpc-lib.0.19.0/opam +40 -0
- binaryen-archive-v0.12.0/esy.lock/opam/ocamlformat.0.18.0/opam +56 -0
- {binaryen-archive/esy.lock/opam/odoc.1.5.2 → binaryen-archive-v0.12.0/esy.lock/opam/odoc.1.5.3}/opam +12 -12
- binaryen-archive-v0.12.0/esy.lock/opam/pp.1.1.2/opam +58 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/ppx_derivers.1.2.1/opam +1 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam +2 -2
- {binaryen-archive/esy.lock/opam/ppxlib.0.21.0 → binaryen-archive-v0.12.0/esy.lock/opam/ppxlib.0.22.2}/opam +40 -32
- {binaryen-archive/esy.lock/opam/re.1.9.0 → binaryen-archive-v0.12.0/esy.lock/opam/re.1.10.3}/opam +8 -4
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/result.1.5/opam +2 -2
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/seq.base/files/META.seq +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/seq.base/files/seq.install +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/seq.base/opam +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/sexplib0.v0.14.0/opam +2 -2
- binaryen-archive-v0.12.0/esy.lock/opam/spawn.v0.15.0/opam +56 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/stdio.v0.14.0/opam +2 -2
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/stdlib-shims.0.3.0/opam +0 -0
- {binaryen-archive/esy.lock/opam/topkg.1.0.3 → binaryen-archive-v0.12.0/esy.lock/opam/topkg.1.0.4}/opam +18 -22
- binaryen-archive-v0.12.0/esy.lock/opam/tyxml.4.5.0/opam +42 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/uchar.0.0.2/opam +0 -0
- binaryen-archive-v0.12.0/esy.lock/opam/uucp.14.0.0/opam +41 -0
- {binaryen-archive/esy.lock/opam/uuseg.13.0.0 → binaryen-archive-v0.12.0/esy.lock/opam/uuseg.14.0.0}/opam +22 -28
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/uutf.1.0.2/opam +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/opam/yojson.1.7.0/opam +1 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json +0 -0
- binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch → binaryen-archive-v0.12.0/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.2_opam_override/files/findlib-1.9.2.patch +0 -0
- {binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override → binaryen-archive-v0.12.0/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.2_opam_override}/package.json +1 -1
- binaryen-archive-v0.12.0/js/binaryen.es5.js +5 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/dune +1 -6
- {binaryen-archive → binaryen-archive-v0.12.0}/js/element_segment.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/export.ml +1 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/js/expression.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/function.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/global.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/import.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/literal.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/memory.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/module.ml +6 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/js/op.ml +0 -0
- binaryen-archive-v0.12.0/js/postlude.js +2 -0
- binaryen-archive-v0.12.0/js/prelude.js +11 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/settings.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/stubs.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/js/table.ml +2 -2
- {binaryen-archive → binaryen-archive-v0.12.0}/js/type.ml +0 -0
- binaryen-archive-v0.12.0/package.json +37 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_exports.c +2 -2
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_expressions.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_features.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_functions.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_globals.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_imports.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_literals.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_memory.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_modules.c +7 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_ops.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_settings.c +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_tables.c +4 -3
- {binaryen-archive → binaryen-archive-v0.12.0}/src/binaryen_stubs_types.c +0 -0
- binaryen-archive-v0.12.0/src/dune +13 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/element_segment.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/export.ml +2 -2
- {binaryen-archive → binaryen-archive-v0.12.0}/src/expression.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/function.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/global.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/import.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/literal.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/memory.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/module.ml +5 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/src/ocaml_helpers.c +0 -8
- {binaryen-archive → binaryen-archive-v0.12.0}/src/ocaml_helpers.h +0 -3
- {binaryen-archive → binaryen-archive-v0.12.0}/src/op.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/settings.ml +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/src/table.ml +2 -2
- {binaryen-archive → binaryen-archive-v0.12.0}/src/type.ml +0 -0
- binaryen-archive-v0.12.0/test/config/dune +8 -0
- binaryen-archive-v0.12.0/test/config/ocamlopt_flags.ml +16 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/test/dune +4 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/test/test.expected +5 -5
- {binaryen-archive → binaryen-archive-v0.12.0}/test/test.ml +4 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/dune +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/element_segment.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/export.mli +1 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/expression.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/function.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/global.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/import.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/literal.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/memory.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/module.mli +2 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/op.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/settings.mli +0 -0
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/table.mli +1 -1
- {binaryen-archive → binaryen-archive-v0.12.0}/virtual/type.mli +0 -0
- binaryen-archive/esy.lock/index.json +0 -1288
- binaryen-archive/esy.lock/opam/conf-m4.1/opam +0 -22
- binaryen-archive/esy.lock/opam/dot-merlin-reader.4.1/opam +0 -30
- binaryen-archive/esy.lock/opam/js_of_ocaml-compiler.3.9.1/opam +0 -40
- binaryen-archive/esy.lock/opam/js_of_ocaml-ppx.3.9.0/opam +0 -30
- binaryen-archive/esy.lock/opam/js_of_ocaml.3.9.0/opam +0 -31
- binaryen-archive/esy.lock/opam/ocaml-compiler-libs.v0.12.3/opam +0 -29
- binaryen-archive/esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub +0 -4
- binaryen-archive/esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install +0 -6
- binaryen-archive/esy.lock/opam/ocamlformat.0.15.1/opam +0 -41
- binaryen-archive/esy.lock/opam/tyxml.4.4.0/opam +0 -47
- binaryen-archive/esy.lock/opam/uucp.13.0.0/opam +0 -44
- binaryen-archive/esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override/package.json +0 -6
- binaryen-archive/js/postlude.js +0 -2
- binaryen-archive/package.json +0 -43
- binaryen-archive/src/config/dune +0 -8
- binaryen-archive/src/config/library_flags.ml +0 -16
- binaryen-archive/src/dune +0 -52
- binaryen-archive/vendor/binaryen-c.h +0 -2720
- binaryen-archive/vendor/js/index.es5.js +0 -5
- binaryen-archive/vendor/linux/libbinaryen.a +0 -0
- binaryen-archive/vendor/linux/libbinaryen.so +0 -0
- binaryen-archive/vendor/macosx/libbinaryen.a +0 -0
- binaryen-archive/vendor/macosx/libbinaryen.dylib +0 -0
- binaryen-archive/vendor/mingw64/libbinaryen.a +0 -0
- binaryen-archive/vendor/mingw64/libbinaryen.dll +0 -0
- binaryen-archive/vendor/wasm-delegations.h +0 -83
|
@@ -10,9 +10,4 @@
|
|
|
10
10
|
(names stubs))
|
|
11
11
|
(js_of_ocaml
|
|
12
12
|
(flags --no-sourcemap)
|
|
13
|
-
(javascript_files binaryen.js postlude.js)))
|
|
14
|
-
|
|
15
|
-
(rule
|
|
16
|
-
(target binaryen.js)
|
|
17
|
-
(action
|
|
18
|
-
(copy ../vendor/js/index.es5.js binaryen.js)))
|
|
13
|
+
(javascript_files prelude.js binaryen.es5.js postlude.js)))
|
|
File without changes
|
|
@@ -51,7 +51,7 @@ let external_memory = meth_call global##.binaryen "_BinaryenExternalMemory" [||]
|
|
|
51
51
|
|
|
52
52
|
let external_global = meth_call global##.binaryen "_BinaryenExternalGlobal" [||]
|
|
53
53
|
|
|
54
|
-
let
|
|
54
|
+
let external_tag = meth_call global##.binaryen "_BinaryenExternalTag" [||]
|
|
55
55
|
|
|
56
56
|
let export_get_kind export =
|
|
57
57
|
let export_info =
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -74,7 +74,9 @@ let get_features wasm_mod =
|
|
|
74
74
|
feature :: split_features (feature lsr 1)
|
|
75
75
|
| feature -> split_features (feature lsr 1)
|
|
76
76
|
in
|
|
77
|
-
|
|
77
|
+
(* Support 32-bit OCaml where integers are 31 bits *)
|
|
78
|
+
(* This supports up to 31 Binaryen features *)
|
|
79
|
+
split_features 0x40000000
|
|
78
80
|
|
|
79
81
|
let set_features wasm_mod features =
|
|
80
82
|
meth_call wasm_mod "setFeatures"
|
|
@@ -112,3 +114,6 @@ let add_debug_info_filename wasm_mod filename =
|
|
|
112
114
|
|
|
113
115
|
let get_debug_info_filename wasm_mod index =
|
|
114
116
|
meth_call wasm_mod "getDebugInfoFileName" [| inject index |]
|
|
117
|
+
|
|
118
|
+
(* The JS version doesn't expose `update_maps` *)
|
|
119
|
+
let update_maps wasm_mod = ()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -3,9 +3,9 @@ open Js_of_ocaml.Js.Unsafe
|
|
|
3
3
|
|
|
4
4
|
type t = int
|
|
5
5
|
|
|
6
|
-
let add_table wasm_mod name initial maximum =
|
|
6
|
+
let add_table wasm_mod name initial maximum tableType =
|
|
7
7
|
meth_call wasm_mod "addTable"
|
|
8
|
-
[| inject (string name); inject initial; inject maximum |]
|
|
8
|
+
[| inject (string name); inject initial; inject maximum; inject tableType |]
|
|
9
9
|
|
|
10
10
|
let add_active_element_segment wasm_mod table name funcnames offset =
|
|
11
11
|
meth_call wasm_mod "addActiveElementSegment"
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grain/binaryen.ml",
|
|
3
|
+
"version": "0.12.0",
|
|
4
|
+
"description": "OCaml bindings for Binaryen.",
|
|
5
|
+
"author": "Oscar Spencer <oscar@grain-lang.org>",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"ocaml": ">= 4.12.0 < 4.13.0",
|
|
9
|
+
"@grain/libbinaryen": "^102.0.4",
|
|
10
|
+
"@opam/dune": "^2.9.1",
|
|
11
|
+
"@opam/dune-configurator": "^2.9.1",
|
|
12
|
+
"@opam/js_of_ocaml": "^3.10.0",
|
|
13
|
+
"@opam/js_of_ocaml-ppx": "^3.10.0"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@opam/js_of_ocaml-compiler": "^3.10.0",
|
|
17
|
+
"@opam/ocamlformat": "0.18.0",
|
|
18
|
+
"@opam/ocaml-lsp-server": "^1.8.2"
|
|
19
|
+
},
|
|
20
|
+
"esy": {
|
|
21
|
+
"build": "dune build -p binaryen"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"test": "esy b dune runtest",
|
|
25
|
+
"format": "dune build @fmt --auto-promote"
|
|
26
|
+
},
|
|
27
|
+
"installConfig": {
|
|
28
|
+
"pnp": false
|
|
29
|
+
},
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"binaryen",
|
|
35
|
+
"ocaml"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -130,9 +130,9 @@ caml_binaryen_external_global(value _unit) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
CAMLprim value
|
|
133
|
-
|
|
133
|
+
caml_binaryen_external_tag(value _unit) {
|
|
134
134
|
CAMLparam1(_unit);
|
|
135
|
-
CAMLreturn(Val_int(
|
|
135
|
+
CAMLreturn(Val_int(BinaryenExternalTag()));
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
CAMLprim value
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -172,3 +172,10 @@ caml_binaryen_add_custom_section(value _module, value _name, value _contents) {
|
|
|
172
172
|
BinaryenAddCustomSection(module, name, contents, contentsLen);
|
|
173
173
|
CAMLreturn(Val_unit);
|
|
174
174
|
}
|
|
175
|
+
|
|
176
|
+
CAMLprim value
|
|
177
|
+
caml_binaryen_module_update_maps(value module) {
|
|
178
|
+
CAMLparam1(module);
|
|
179
|
+
BinaryenModuleUpdateMaps(BinaryenModuleRef_val(module));
|
|
180
|
+
CAMLreturn(Val_unit);
|
|
181
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -33,13 +33,14 @@ static value alloc_BinaryenExpressionRef(BinaryenExpressionRef exp)
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
CAMLprim value
|
|
36
|
-
caml_binaryen_add_table(value _module, value _table, value _initial, value _maximum) {
|
|
37
|
-
|
|
36
|
+
caml_binaryen_add_table(value _module, value _table, value _initial, value _maximum, value _tableType) {
|
|
37
|
+
CAMLparam5(_module, _table, _initial, _maximum, _tableType);
|
|
38
38
|
BinaryenModuleRef module = BinaryenModuleRef_val(_module);
|
|
39
39
|
char* table = Safe_String_val(_table);
|
|
40
40
|
BinaryenIndex initial = Int_val(_initial);
|
|
41
41
|
BinaryenIndex maximum = Int_val(_maximum);
|
|
42
|
-
|
|
42
|
+
BinaryenType tableType = BinaryenType_val(_tableType);
|
|
43
|
+
CAMLreturn(alloc_BinaryenTableRef(BinaryenAddTable(module, table, initial, maximum, tableType)));
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
CAMLprim value
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
(library
|
|
2
|
+
(name binaryen_native)
|
|
3
|
+
(public_name binaryen.native)
|
|
4
|
+
(implements binaryen)
|
|
5
|
+
(libraries libbinaryen.c)
|
|
6
|
+
(foreign_stubs
|
|
7
|
+
(language c)
|
|
8
|
+
(names binaryen_stubs_types binaryen_stubs_ops binaryen_stubs_literals
|
|
9
|
+
binaryen_stubs_expressions binaryen_stubs_functions
|
|
10
|
+
binaryen_stubs_imports binaryen_stubs_exports binaryen_stubs_globals
|
|
11
|
+
binaryen_stubs_tables binaryen_stubs_memory binaryen_stubs_features
|
|
12
|
+
binaryen_stubs_modules binaryen_stubs_settings ocaml_helpers)
|
|
13
|
+
(flags :standard -O2 -Wall -Wextra)))
|
|
File without changes
|
|
@@ -47,8 +47,8 @@ external external_global : unit -> int = "caml_binaryen_external_global"
|
|
|
47
47
|
|
|
48
48
|
let external_global = external_global ()
|
|
49
49
|
|
|
50
|
-
external
|
|
50
|
+
external external_tag : unit -> int = "caml_binaryen_external_tag"
|
|
51
51
|
|
|
52
|
-
let
|
|
52
|
+
let external_tag = external_tag ()
|
|
53
53
|
|
|
54
54
|
external export_get_kind : t -> int = "caml_binaryen_export_get_kind"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -85,7 +85,9 @@ let get_features wasm_mod =
|
|
|
85
85
|
feature :: split_features (feature lsr 1)
|
|
86
86
|
| feature -> split_features (feature lsr 1)
|
|
87
87
|
in
|
|
88
|
-
|
|
88
|
+
(* Support 32-bit OCaml where integers are 31 bits *)
|
|
89
|
+
(* This supports up to 31 Binaryen features *)
|
|
90
|
+
split_features 0x40000000
|
|
89
91
|
|
|
90
92
|
external set_features : t -> int -> unit = "caml_binaryen_module_set_features"
|
|
91
93
|
|
|
@@ -111,3 +113,5 @@ external add_debug_info_filename : t -> string -> int
|
|
|
111
113
|
|
|
112
114
|
external get_debug_info_filename : t -> int -> string
|
|
113
115
|
= "caml_binaryen_module_get_debug_info_filename"
|
|
116
|
+
|
|
117
|
+
external update_maps : t -> unit = "caml_binaryen_module_update_maps"
|
|
@@ -7,14 +7,6 @@
|
|
|
7
7
|
#include "ocaml_helpers.h"
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
CAMLprim value
|
|
11
|
-
caml_alloc_some(value v) {
|
|
12
|
-
CAMLparam1(v);
|
|
13
|
-
value some = caml_alloc_small(1, 0);
|
|
14
|
-
Store_field(some, 0, v);
|
|
15
|
-
CAMLreturn(some);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
10
|
CAMLprim value
|
|
19
11
|
array_of_list(value list) {
|
|
20
12
|
CAMLparam1(list);
|
|
@@ -40,9 +40,6 @@ static struct custom_operations binaryen_ops = {
|
|
|
40
40
|
|
|
41
41
|
#define Safe_String_val(v) ((char *)memcpy(malloc(caml_string_length(v) + 1), String_val(v), caml_string_length(v) + 1))
|
|
42
42
|
|
|
43
|
-
CAMLprim value
|
|
44
|
-
caml_alloc_some(value v);
|
|
45
|
-
|
|
46
43
|
CAMLprim value
|
|
47
44
|
array_of_list(value list);
|
|
48
45
|
|
|
File without changes
|
|
File without changes
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
type t
|
|
2
2
|
|
|
3
|
-
external add_table : Module.t -> string -> int -> int -> t
|
|
3
|
+
external add_table : Module.t -> string -> int -> int -> Type.t -> t
|
|
4
4
|
= "caml_binaryen_add_table"
|
|
5
|
-
(** Module, name, initial size, maximum size
|
|
5
|
+
(** Module, name, initial size, maximum size, table type *)
|
|
6
6
|
|
|
7
7
|
external add_active_element_segment :
|
|
8
8
|
Module.t ->
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module C = Configurator.V1
|
|
2
|
+
|
|
3
|
+
let () =
|
|
4
|
+
C.main ~name:"ocamlopt_flags" (fun c ->
|
|
5
|
+
let default = [] in
|
|
6
|
+
|
|
7
|
+
let ocamlopt_flags =
|
|
8
|
+
match C.ocaml_config_var c "system" with
|
|
9
|
+
| Some "macosx" ->
|
|
10
|
+
(* These flags preserve the original C++ error behavior. Ref https://github.com/ocaml/ocaml/issues/10423 *)
|
|
11
|
+
[ "-cc"; "clang++" ]
|
|
12
|
+
| Some _ -> default
|
|
13
|
+
| None -> default
|
|
14
|
+
in
|
|
15
|
+
|
|
16
|
+
C.Flags.write_sexp "ocamlopt_flags.sexp" ocamlopt_flags)
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
(name test)
|
|
5
5
|
(modules test)
|
|
6
6
|
(libraries binaryen)
|
|
7
|
+
(ocamlopt_flags
|
|
8
|
+
(:include ./config/ocamlopt_flags.sexp))
|
|
7
9
|
(action
|
|
8
10
|
(run %{test})))
|
|
9
11
|
|
|
@@ -20,6 +22,8 @@
|
|
|
20
22
|
(name test_native)
|
|
21
23
|
(modules test_native)
|
|
22
24
|
(libraries binaryen binaryen.native)
|
|
25
|
+
(ocamlopt_flags
|
|
26
|
+
(:include ./config/ocamlopt_flags.sexp))
|
|
23
27
|
(action
|
|
24
28
|
(run %{test})))
|
|
25
29
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(module
|
|
2
2
|
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
|
|
3
3
|
(type $none_=>_none (func))
|
|
4
|
-
(type $externref_=>_i32 (func (param externref) (result i32)))
|
|
5
4
|
(type $externref_i32_i32_=>_i32 (func (param externref i32 i32) (result i32)))
|
|
5
|
+
(type $externref_=>_i32 (func (param externref) (result i32)))
|
|
6
6
|
(import "future-wasi" "write" (func $write (param externref i32 i32) (result i32)))
|
|
7
7
|
(global $max_int64 i64 (i64.const 9223372036854775807))
|
|
8
8
|
(global $test_float64_bits f64 (f64.const 1.23))
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
)
|
|
50
50
|
)
|
|
51
51
|
(module
|
|
52
|
-
(type $none_=>_none (func))
|
|
53
|
-
(type $externref_=>_i32 (func (param externref) (result i32)))
|
|
54
52
|
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
|
|
53
|
+
(type $none_=>_none (func))
|
|
55
54
|
(type $externref_i32_i32_=>_i32 (func (param externref i32 i32) (result i32)))
|
|
55
|
+
(type $externref_=>_i32 (func (param externref) (result i32)))
|
|
56
56
|
(import "future-wasi" "write" (func $write (param externref i32 i32) (result i32)))
|
|
57
57
|
(memory $0 1)
|
|
58
58
|
(table $table 1 1 funcref)
|
|
@@ -90,10 +90,10 @@
|
|
|
90
90
|
)
|
|
91
91
|
)
|
|
92
92
|
(module
|
|
93
|
+
(type $externref_i32_i32_=>_i32 (func (param externref i32 i32) (result i32)))
|
|
94
|
+
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
|
|
93
95
|
(type $none_=>_none (func))
|
|
94
96
|
(type $externref_=>_i32 (func (param externref) (result i32)))
|
|
95
|
-
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
|
|
96
|
-
(type $externref_i32_i32_=>_i32 (func (param externref i32 i32) (result i32)))
|
|
97
97
|
(import "future-wasi" "write" (func $fimport$0 (param externref i32 i32) (result i32)))
|
|
98
98
|
(memory $0 1)
|
|
99
99
|
(table $0 1 1 funcref)
|
|
@@ -77,7 +77,7 @@ let start =
|
|
|
77
77
|
|
|
78
78
|
let _ = Export.add_function_export wasm_mod "adder" "adder"
|
|
79
79
|
|
|
80
|
-
let _ = Table.add_table wasm_mod "table" 1 1
|
|
80
|
+
let _ = Table.add_table wasm_mod "table" 1 1 Type.funcref
|
|
81
81
|
|
|
82
82
|
let _ =
|
|
83
83
|
Global.add_global wasm_mod "max_int64" Type.int64 false
|
|
@@ -116,6 +116,9 @@ let _ =
|
|
|
116
116
|
|
|
117
117
|
let _ = Export.add_function_export wasm_mod "hello" "hello"
|
|
118
118
|
|
|
119
|
+
(* Shouldn't actually do anything since we aren't doing function renames *)
|
|
120
|
+
let _ = Module.update_maps wasm_mod
|
|
121
|
+
|
|
119
122
|
(* Finally, we print 3 versions of the module to be checked against test.expected *)
|
|
120
123
|
|
|
121
124
|
(* 1. Print the the module as-is *)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|