@grain/binaryen.ml 0.20.1 → 0.22.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/CHANGELOG.md +64 -0
- binaryen-archive/binaryen.opam +3 -3
- binaryen-archive/esy.lock/index.json +491 -426
- binaryen-archive/esy.lock/opam/{base.v0.15.1 → base.v0.16.1}/opam +7 -4
- binaryen-archive/esy.lock/opam/{chrome-trace.3.6.1 → chrome-trace.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/{cmdliner.1.1.1 → cmdliner.1.2.0}/opam +2 -2
- binaryen-archive/esy.lock/opam/{csexp.1.5.1 → csexp.1.5.2}/opam +7 -9
- binaryen-archive/esy.lock/opam/{dune-build-info.3.6.1 → dune-build-info.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/{dune-configurator.3.6.1 → dune-configurator.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/{dune-rpc.3.6.1 → dune-rpc.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/{dune.3.6.1 → dune.3.9.1}/opam +5 -5
- binaryen-archive/esy.lock/opam/{dyn.3.6.1 → dyn.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/fiber.3.7.0/opam +39 -0
- binaryen-archive/esy.lock/opam/{fix.20220121 → fix.20230505}/opam +3 -3
- binaryen-archive/esy.lock/opam/gen.1.1/opam +31 -0
- binaryen-archive/esy.lock/opam/{js_of_ocaml-compiler.4.1.0 → js_of_ocaml-compiler.5.4.0}/opam +10 -10
- binaryen-archive/esy.lock/opam/{menhir.20220210 → menhir.20230608}/opam +4 -4
- binaryen-archive/esy.lock/opam/{menhirLib.20220210 → menhirLib.20230608}/opam +4 -4
- binaryen-archive/esy.lock/opam/{menhirSdk.20220210 → menhirSdk.20230608}/opam +4 -4
- binaryen-archive/esy.lock/opam/{ocamlbuild.0.14.2 → ocamlbuild.0.14.2+win}/opam +13 -14
- binaryen-archive/esy.lock/opam/ocamlfind.1.9.6/files/0001-Harden-test-for-OCaml-5.patch +12 -0
- binaryen-archive/esy.lock/opam/{ocamlfind.1.9.5 → ocamlfind.1.9.6}/opam +8 -7
- binaryen-archive/esy.lock/opam/{ocamlformat-rpc-lib.0.24.1 → ocamlformat-rpc-lib.0.25.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/ocamlformat.0.24.1/opam +1 -1
- binaryen-archive/esy.lock/opam/{ordering.3.6.1 → ordering.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/{ppx_yojson_conv_lib.v0.15.0 → ppx_yojson_conv_lib.v0.16.0}/opam +3 -3
- binaryen-archive/esy.lock/opam/{ppxlib.0.28.0 → ppxlib.0.29.1}/opam +5 -5
- binaryen-archive/esy.lock/opam/sedlex.3.2/opam +48 -0
- binaryen-archive/esy.lock/opam/{sexplib0.v0.15.1 → sexplib0.v0.16.0}/opam +3 -3
- binaryen-archive/esy.lock/opam/{stdio.v0.15.0 → stdio.v0.16.0}/opam +4 -4
- binaryen-archive/esy.lock/opam/{stdune.3.6.1 → stdune.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/{topkg.1.0.6 → topkg.1.0.7}/opam +2 -2
- binaryen-archive/esy.lock/opam/{xdg.3.6.1 → xdg.3.9.1}/opam +4 -4
- binaryen-archive/esy.lock/opam/{yojson.2.0.2 → yojson.2.1.0}/opam +33 -23
- binaryen-archive/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/files/ocamlbuild-0.14.2.patch +0 -0
- binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/files/findlib.patch +11 -0
- binaryen-archive/package.json +3 -3
- binaryen-archive/src/array_type.c +29 -0
- binaryen-archive/src/array_type.js +17 -0
- binaryen-archive/src/array_type.ml +8 -0
- binaryen-archive/src/array_type.mli +3 -0
- binaryen-archive/src/dune +38 -32
- binaryen-archive/src/{binaryen_stubs_exports.c → export.c} +0 -8
- binaryen-archive/src/{binaryen_stubs_expressions.c → expression.c} +24 -15
- binaryen-archive/src/{binaryen_stubs_expressions.js → expression.js} +20 -6
- binaryen-archive/src/expression.ml +14 -5
- binaryen-archive/src/expression.mli +10 -2
- binaryen-archive/src/{binaryen_stubs_functions.c → function.c} +0 -24
- binaryen-archive/src/{binaryen_stubs_globals.c → global.c} +0 -25
- binaryen-archive/src/heap_type.c +171 -0
- binaryen-archive/src/heap_type.js +131 -0
- binaryen-archive/src/heap_type.ml +12 -1
- binaryen-archive/src/heap_type.mli +12 -1
- binaryen-archive/src/{binaryen_stubs_literals.c → literal.c} +0 -9
- binaryen-archive/src/{binaryen_stubs_memory.c → memory.c} +15 -5
- binaryen-archive/src/{binaryen_stubs_memory.js → memory.js} +11 -1
- binaryen-archive/src/memory.ml +6 -3
- binaryen-archive/src/memory.mli +10 -1
- binaryen-archive/src/{binaryen_stubs_modules.c → module.c} +0 -9
- binaryen-archive/src/module.ml +4 -5
- binaryen-archive/src/module.mli +1 -1
- binaryen-archive/src/{binaryen_stubs_features.c → module_feature.c} +6 -6
- binaryen-archive/src/{binaryen_stubs_features.js → module_feature.js} +6 -6
- binaryen-archive/src/ocaml_helpers.c +87 -0
- binaryen-archive/src/ocaml_helpers.h +33 -0
- binaryen-archive/src/{binaryen_stubs_ops.c → op.c} +597 -333
- binaryen-archive/src/op.js +2129 -0
- binaryen-archive/src/op.ml +499 -352
- binaryen-archive/src/op.mli +46 -7
- binaryen-archive/src/passes.ml +46 -0
- binaryen-archive/src/passes.mli +45 -0
- binaryen-archive/src/signature_type.c +23 -0
- binaryen-archive/src/signature_type.js +11 -0
- binaryen-archive/src/signature_type.ml +5 -0
- binaryen-archive/src/signature_type.mli +2 -0
- binaryen-archive/src/struct_type.c +39 -0
- binaryen-archive/src/struct_type.js +23 -0
- binaryen-archive/src/struct_type.ml +11 -0
- binaryen-archive/src/struct_type.mli +4 -0
- binaryen-archive/src/{binaryen_stubs_tables.c → table.c} +0 -25
- binaryen-archive/src/{binaryen_stubs_types.c → type.c} +30 -12
- binaryen-archive/src/{binaryen_stubs_types.js → type.js} +31 -3
- binaryen-archive/src/type.ml +18 -2
- binaryen-archive/src/type.mli +5 -1
- binaryen-archive/src/{binaryen_stubs_type_system.c → type_system.c} +0 -6
- binaryen-archive/src/{binaryen_stubs_type_system.js → type_system.js} +0 -6
- binaryen-archive/src/type_system.ml +0 -1
- binaryen-archive/src/type_system.mli +0 -1
- binaryen-archive/test/test.expected +13 -13
- binaryen-archive/test/test.ml +11 -3
- binaryen-archive/esy.lock/opam/fiber.3.6.1/opam +0 -41
- binaryen-archive/esy.lock/opam/ocamlfind.1.9.5/files/0001-Fix-bug-when-installing-with-a-system-compiler.patch +0 -26
- binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.5_opam_override/files/findlib.patch +0 -485
- binaryen-archive/src/binaryen_stubs_heap_types.c +0 -95
- binaryen-archive/src/binaryen_stubs_heap_types.js +0 -65
- binaryen-archive/src/binaryen_stubs_ops.js +0 -1895
- /binaryen-archive/esy.lock/overrides/{opam__s__ocamlbuild_opam__c__0.14.2_opam_override → opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override}/files/winpatch.patch +0 -0
- /binaryen-archive/esy.lock/overrides/{opam__s__ocamlbuild_opam__c__0.14.2_opam_override → opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override}/package.json +0 -0
- /binaryen-archive/esy.lock/overrides/{opam__s__ocamlfind_opam__c__1.9.5_opam_override → opam__s__ocamlfind_opam__c__1.9.6_opam_override}/package.json +0 -0
- /binaryen-archive/src/{binaryen_stubs_exports.js → export.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_functions.js → function.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_globals.js → global.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_imports.c → import.c} +0 -0
- /binaryen-archive/src/{binaryen_stubs_imports.js → import.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_literals.js → literal.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_modules.js → module.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_packed_types.c → packed_type.c} +0 -0
- /binaryen-archive/src/{binaryen_stubs_packed_types.js → packed_type.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_settings.c → settings.c} +0 -0
- /binaryen-archive/src/{binaryen_stubs_settings.js → settings.js} +0 -0
- /binaryen-archive/src/{binaryen_stubs_tables.js → table.js} +0 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
#define CAML_NAME_SPACE
|
|
2
|
+
#include <caml/mlvalues.h>
|
|
3
|
+
#include <caml/fail.h>
|
|
4
|
+
#include <caml/memory.h>
|
|
5
|
+
|
|
6
|
+
#include "binaryen-c.h"
|
|
7
|
+
#include "ocaml_helpers.h"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
CAMLprim value
|
|
11
|
+
caml_binaryen_heap_type_ext(value unit) {
|
|
12
|
+
CAMLparam1(unit);
|
|
13
|
+
BinaryenHeapType ty = BinaryenHeapTypeExt();
|
|
14
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
CAMLprim value
|
|
18
|
+
caml_binaryen_heap_type_func(value unit) {
|
|
19
|
+
CAMLparam1(unit);
|
|
20
|
+
BinaryenHeapType ty = BinaryenHeapTypeFunc();
|
|
21
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
CAMLprim value
|
|
25
|
+
caml_binaryen_heap_type_any(value unit) {
|
|
26
|
+
CAMLparam1(unit);
|
|
27
|
+
BinaryenHeapType ty = BinaryenHeapTypeAny();
|
|
28
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
CAMLprim value
|
|
32
|
+
caml_binaryen_heap_type_eq(value unit) {
|
|
33
|
+
CAMLparam1(unit);
|
|
34
|
+
BinaryenHeapType ty = BinaryenHeapTypeEq();
|
|
35
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
CAMLprim value
|
|
39
|
+
caml_binaryen_heap_type_i31(value unit) {
|
|
40
|
+
CAMLparam1(unit);
|
|
41
|
+
BinaryenHeapType ty = BinaryenHeapTypeI31();
|
|
42
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
CAMLprim value
|
|
46
|
+
caml_binaryen_heap_type_struct(value unit) {
|
|
47
|
+
CAMLparam1(unit);
|
|
48
|
+
BinaryenHeapType ty = BinaryenHeapTypeStruct();
|
|
49
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
CAMLprim value
|
|
53
|
+
caml_binaryen_heap_type_array(value unit) {
|
|
54
|
+
CAMLparam1(unit);
|
|
55
|
+
BinaryenHeapType ty = BinaryenHeapTypeArray();
|
|
56
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
CAMLprim value
|
|
60
|
+
caml_binaryen_heap_type_string(value unit) {
|
|
61
|
+
CAMLparam1(unit);
|
|
62
|
+
BinaryenHeapType ty = BinaryenHeapTypeString();
|
|
63
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
CAMLprim value
|
|
67
|
+
caml_binaryen_heap_type_stringview_wtf8(value unit) {
|
|
68
|
+
CAMLparam1(unit);
|
|
69
|
+
BinaryenHeapType ty = BinaryenHeapTypeStringviewWTF8();
|
|
70
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
CAMLprim value
|
|
74
|
+
caml_binaryen_heap_type_stringview_wtf16(value unit) {
|
|
75
|
+
CAMLparam1(unit);
|
|
76
|
+
BinaryenHeapType ty = BinaryenHeapTypeStringviewWTF16();
|
|
77
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
CAMLprim value
|
|
81
|
+
caml_binaryen_heap_type_stringview_iter(value unit) {
|
|
82
|
+
CAMLparam1(unit);
|
|
83
|
+
BinaryenHeapType ty = BinaryenHeapTypeStringviewIter();
|
|
84
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
CAMLprim value
|
|
88
|
+
caml_binaryen_heap_type_none(value unit) {
|
|
89
|
+
CAMLparam1(unit);
|
|
90
|
+
BinaryenHeapType ty = BinaryenHeapTypeNone();
|
|
91
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
CAMLprim value
|
|
95
|
+
caml_binaryen_heap_type_noext(value unit) {
|
|
96
|
+
CAMLparam1(unit);
|
|
97
|
+
BinaryenHeapType ty = BinaryenHeapTypeNoext();
|
|
98
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
CAMLprim value
|
|
102
|
+
caml_binaryen_heap_type_nofunc(value unit) {
|
|
103
|
+
CAMLparam1(unit);
|
|
104
|
+
BinaryenHeapType ty = BinaryenHeapTypeNofunc();
|
|
105
|
+
CAMLreturn(alloc_BinaryenHeapType(ty));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
CAMLprim value
|
|
109
|
+
caml_binaryen_heap_type_is_basic(value _ty) {
|
|
110
|
+
CAMLparam1(_ty);
|
|
111
|
+
BinaryenHeapType ty = BinaryenHeapType_val(_ty);
|
|
112
|
+
bool result = BinaryenHeapTypeIsBasic(ty);
|
|
113
|
+
CAMLreturn(Val_bool(result));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
CAMLprim value
|
|
117
|
+
caml_binaryen_heap_type_is_signature(value _ty) {
|
|
118
|
+
CAMLparam1(_ty);
|
|
119
|
+
BinaryenHeapType ty = BinaryenHeapType_val(_ty);
|
|
120
|
+
bool result = BinaryenHeapTypeIsSignature(ty);
|
|
121
|
+
CAMLreturn(Val_bool(result));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
CAMLprim value
|
|
125
|
+
caml_binaryen_heap_type_is_struct(value _ty) {
|
|
126
|
+
CAMLparam1(_ty);
|
|
127
|
+
BinaryenHeapType ty = BinaryenHeapType_val(_ty);
|
|
128
|
+
bool result = BinaryenHeapTypeIsStruct(ty);
|
|
129
|
+
CAMLreturn(Val_bool(result));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
CAMLprim value
|
|
133
|
+
caml_binaryen_heap_type_is_array(value _ty) {
|
|
134
|
+
CAMLparam1(_ty);
|
|
135
|
+
BinaryenHeapType ty = BinaryenHeapType_val(_ty);
|
|
136
|
+
bool result = BinaryenHeapTypeIsArray(ty);
|
|
137
|
+
CAMLreturn(Val_bool(result));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
CAMLprim value
|
|
141
|
+
caml_binaryen_heap_type_is_bottom(value _ty) {
|
|
142
|
+
CAMLparam1(_ty);
|
|
143
|
+
BinaryenHeapType ty = BinaryenHeapType_val(_ty);
|
|
144
|
+
bool result = BinaryenHeapTypeIsBottom(ty);
|
|
145
|
+
CAMLreturn(Val_bool(result));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
CAMLprim value
|
|
149
|
+
caml_binaryen_heap_type_get_bottom(value _ty) {
|
|
150
|
+
CAMLparam1(_ty);
|
|
151
|
+
BinaryenHeapType ty = BinaryenHeapType_val(_ty);
|
|
152
|
+
BinaryenHeapType heapTy = BinaryenHeapTypeGetBottom(ty);
|
|
153
|
+
CAMLreturn(alloc_BinaryenHeapType(heapTy));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
CAMLprim value
|
|
157
|
+
caml_binaryen_heap_type_is_sub_type(value _left, value _right) {
|
|
158
|
+
CAMLparam2(_left, _right);
|
|
159
|
+
BinaryenHeapType left = BinaryenHeapType_val(_left);
|
|
160
|
+
BinaryenHeapType right = BinaryenHeapType_val(_right);
|
|
161
|
+
bool result = BinaryenHeapTypeIsSubType(left, right);
|
|
162
|
+
CAMLreturn(Val_bool(result));
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
CAMLprim value
|
|
166
|
+
caml_binaryen_type_get_heap_type(value _ty) {
|
|
167
|
+
CAMLparam1(_ty);
|
|
168
|
+
BinaryenType ty = BinaryenType_val(_ty);
|
|
169
|
+
BinaryenHeapType heapTy = BinaryenTypeGetHeapType(ty);
|
|
170
|
+
CAMLreturn(alloc_BinaryenHeapType(heapTy));
|
|
171
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
//Provides: caml_binaryen_heap_type_ext
|
|
2
|
+
//Requires: Binaryen
|
|
3
|
+
function caml_binaryen_heap_type_ext() {
|
|
4
|
+
return Binaryen._BinaryenHeapTypeExt();
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
//Provides: caml_binaryen_heap_type_func
|
|
8
|
+
//Requires: Binaryen
|
|
9
|
+
function caml_binaryen_heap_type_func() {
|
|
10
|
+
return Binaryen._BinaryenHeapTypeFunc();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//Provides: caml_binaryen_heap_type_any
|
|
14
|
+
//Requires: Binaryen
|
|
15
|
+
function caml_binaryen_heap_type_any() {
|
|
16
|
+
return Binaryen._BinaryenHeapTypeAny();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//Provides: caml_binaryen_heap_type_eq
|
|
20
|
+
//Requires: Binaryen
|
|
21
|
+
function caml_binaryen_heap_type_eq() {
|
|
22
|
+
return Binaryen._BinaryenHeapTypeEq();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//Provides: caml_binaryen_heap_type_i31
|
|
26
|
+
//Requires: Binaryen
|
|
27
|
+
function caml_binaryen_heap_type_i31() {
|
|
28
|
+
return Binaryen._BinaryenHeapTypeI31();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//Provides: caml_binaryen_heap_type_struct
|
|
32
|
+
//Requires: Binaryen
|
|
33
|
+
function caml_binaryen_heap_type_struct() {
|
|
34
|
+
return Binaryen._BinaryenHeapTypeStruct();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//Provides: caml_binaryen_heap_type_array
|
|
38
|
+
//Requires: Binaryen
|
|
39
|
+
function caml_binaryen_heap_type_array() {
|
|
40
|
+
return Binaryen._BinaryenHeapTypeArray();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//Provides: caml_binaryen_heap_type_string
|
|
44
|
+
//Requires: Binaryen
|
|
45
|
+
function caml_binaryen_heap_type_string() {
|
|
46
|
+
return Binaryen._BinaryenHeapTypeString();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
//Provides: caml_binaryen_heap_type_stringview_wtf8
|
|
50
|
+
//Requires: Binaryen
|
|
51
|
+
function caml_binaryen_heap_type_stringview_wtf8() {
|
|
52
|
+
return Binaryen._BinaryenHeapTypeStringviewWTF8();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//Provides: caml_binaryen_heap_type_stringview_wtf16
|
|
56
|
+
//Requires: Binaryen
|
|
57
|
+
function caml_binaryen_heap_type_stringview_wtf16() {
|
|
58
|
+
return Binaryen._BinaryenHeapTypeStringviewWTF16();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//Provides: caml_binaryen_heap_type_stringview_iter
|
|
62
|
+
//Requires: Binaryen
|
|
63
|
+
function caml_binaryen_heap_type_stringview_iter() {
|
|
64
|
+
return Binaryen._BinaryenHeapTypeStringviewIter();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
//Provides: caml_binaryen_heap_type_none
|
|
68
|
+
//Requires: Binaryen
|
|
69
|
+
function caml_binaryen_heap_type_none() {
|
|
70
|
+
return Binaryen._BinaryenHeapTypeNone();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//Provides: caml_binaryen_heap_type_noext
|
|
74
|
+
//Requires: Binaryen
|
|
75
|
+
function caml_binaryen_heap_type_noext() {
|
|
76
|
+
return Binaryen._BinaryenHeapTypeNoext();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
//Provides: caml_binaryen_heap_type_nofunc
|
|
80
|
+
//Requires: Binaryen
|
|
81
|
+
function caml_binaryen_heap_type_nofunc() {
|
|
82
|
+
return Binaryen._BinaryenHeapTypeNofunc();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
//Provides: caml_binaryen_heap_type_is_basic
|
|
86
|
+
//Requires: Binaryen
|
|
87
|
+
function caml_binaryen_heap_type_is_basic(ty) {
|
|
88
|
+
return Binaryen._BinaryenHeapTypeIsBasic(ty);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
//Provides: caml_binaryen_heap_type_is_signature
|
|
92
|
+
//Requires: Binaryen
|
|
93
|
+
function caml_binaryen_heap_type_is_signature(ty) {
|
|
94
|
+
return Binaryen._BinaryenHeapTypeIsSignature(ty);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
//Provides: caml_binaryen_heap_type_is_struct
|
|
98
|
+
//Requires: Binaryen
|
|
99
|
+
function caml_binaryen_heap_type_is_struct(ty) {
|
|
100
|
+
return Binaryen._BinaryenHeapTypeIsStruct(ty);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//Provides: caml_binaryen_heap_type_is_array
|
|
104
|
+
//Requires: Binaryen
|
|
105
|
+
function caml_binaryen_heap_type_is_array(ty) {
|
|
106
|
+
return Binaryen._BinaryenHeapTypeIsArray(ty);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
//Provides: caml_binaryen_heap_type_is_bottom
|
|
110
|
+
//Requires: Binaryen
|
|
111
|
+
function caml_binaryen_heap_type_is_bottom(ty) {
|
|
112
|
+
return Binaryen._BinaryenHeapTypeIsBottom(ty);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
//Provides: caml_binaryen_heap_type_get_bottom
|
|
116
|
+
//Requires: Binaryen
|
|
117
|
+
function caml_binaryen_heap_type_get_bottom(ty) {
|
|
118
|
+
return Binaryen._BinaryenHeapTypeGetBottom(ty);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
//Provides: caml_binaryen_heap_type_is_sub_type
|
|
122
|
+
//Requires: Binaryen
|
|
123
|
+
function caml_binaryen_heap_type_is_sub_type(left, right) {
|
|
124
|
+
return Binaryen._BinaryenHeapTypeIsSubType(left, right);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
//Provides: caml_binaryen_type_get_heap_type
|
|
128
|
+
//Requires: Binaryen
|
|
129
|
+
function caml_binaryen_type_get_heap_type(typ) {
|
|
130
|
+
return Binaryen._BinaryenTypeGetHeapType(typ);
|
|
131
|
+
}
|
|
@@ -5,7 +5,8 @@ external func : unit -> t = "caml_binaryen_heap_type_func"
|
|
|
5
5
|
external any : unit -> t = "caml_binaryen_heap_type_any"
|
|
6
6
|
external eq : unit -> t = "caml_binaryen_heap_type_eq"
|
|
7
7
|
external i31 : unit -> t = "caml_binaryen_heap_type_i31"
|
|
8
|
-
external
|
|
8
|
+
external struct_ : unit -> t = "caml_binaryen_heap_type_struct"
|
|
9
|
+
external array : unit -> t = "caml_binaryen_heap_type_array"
|
|
9
10
|
external string : unit -> t = "caml_binaryen_heap_type_string"
|
|
10
11
|
external stringview_wtf8 : unit -> t = "caml_binaryen_heap_type_stringview_wtf8"
|
|
11
12
|
|
|
@@ -13,3 +14,13 @@ external stringview_wtf16 : unit -> t
|
|
|
13
14
|
= "caml_binaryen_heap_type_stringview_wtf16"
|
|
14
15
|
|
|
15
16
|
external stringview_iter : unit -> t = "caml_binaryen_heap_type_stringview_iter"
|
|
17
|
+
external none : unit -> t = "caml_binaryen_heap_type_none"
|
|
18
|
+
external noext : unit -> t = "caml_binaryen_heap_type_noext"
|
|
19
|
+
external nofunc : unit -> t = "caml_binaryen_heap_type_nofunc"
|
|
20
|
+
external is_basic : t -> bool = "caml_binaryen_heap_type_is_basic"
|
|
21
|
+
external is_signature : t -> bool = "caml_binaryen_heap_type_is_signature"
|
|
22
|
+
external is_struct : t -> bool = "caml_binaryen_heap_type_is_struct"
|
|
23
|
+
external is_array : t -> bool = "caml_binaryen_heap_type_is_array"
|
|
24
|
+
external is_bottom : t -> bool = "caml_binaryen_heap_type_is_bottom"
|
|
25
|
+
external get_bottom : t -> t = "caml_binaryen_heap_type_get_bottom"
|
|
26
|
+
external is_sub_type : t -> bool = "caml_binaryen_heap_type_is_sub_type"
|
|
@@ -5,8 +5,19 @@ val func : unit -> t
|
|
|
5
5
|
val any : unit -> t
|
|
6
6
|
val eq : unit -> t
|
|
7
7
|
val i31 : unit -> t
|
|
8
|
-
val
|
|
8
|
+
val struct_ : unit -> t
|
|
9
|
+
val array : unit -> t
|
|
9
10
|
val string : unit -> t
|
|
10
11
|
val stringview_wtf8 : unit -> t
|
|
11
12
|
val stringview_wtf16 : unit -> t
|
|
12
13
|
val stringview_iter : unit -> t
|
|
14
|
+
val none : unit -> t
|
|
15
|
+
val noext : unit -> t
|
|
16
|
+
val nofunc : unit -> t
|
|
17
|
+
val is_basic : t -> bool
|
|
18
|
+
val is_signature : t -> bool
|
|
19
|
+
val is_struct : t -> bool
|
|
20
|
+
val is_array : t -> bool
|
|
21
|
+
val is_bottom : t -> bool
|
|
22
|
+
val get_bottom : t -> t
|
|
23
|
+
val is_sub_type : t -> bool
|
|
@@ -6,15 +6,6 @@
|
|
|
6
6
|
#include "binaryen-c.h"
|
|
7
7
|
#include "ocaml_helpers.h"
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
/* Allocating an OCaml custom block to hold the given BinaryenLiteral */
|
|
11
|
-
static value alloc_BinaryenLiteral(struct BinaryenLiteral op)
|
|
12
|
-
{
|
|
13
|
-
value v = caml_alloc_custom(&binaryen_ops, sizeof(struct BinaryenLiteral), 0, 1);
|
|
14
|
-
BinaryenLiteral_val(v) = op;
|
|
15
|
-
return v;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
9
|
CAMLprim value
|
|
19
10
|
caml_binaryen_literal_int32(value _i32) {
|
|
20
11
|
CAMLparam1(_i32);
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
CAMLprim value
|
|
11
|
-
caml_binaryen_set_memory(value _module, value _initial, value _maximum, value _exportName, value _segments, value _segmentPassive, value _segmentOffsets, value _segmentSizes, value _shared, value _memoryName) {
|
|
11
|
+
caml_binaryen_set_memory(value _module, value _initial, value _maximum, value _exportName, value _segments, value _segmentPassive, value _segmentOffsets, value _segmentSizes, value _shared, value _memory64, value _memoryName) {
|
|
12
12
|
CAMLparam5(_module, _initial, _maximum, _exportName, _segments);
|
|
13
|
-
CAMLxparam5(_segmentPassive, _segmentOffsets, _segmentSizes, _shared,
|
|
13
|
+
CAMLxparam5(_segmentPassive, _segmentOffsets, _segmentSizes, _shared, _memory64);
|
|
14
|
+
CAMLxparam1(_memoryName);
|
|
14
15
|
BinaryenModuleRef module = BinaryenModuleRef_val(_module);
|
|
15
16
|
BinaryenIndex initial = Int_val(_initial);
|
|
16
17
|
BinaryenIndex maximum = Int_val(_maximum);
|
|
@@ -39,14 +40,15 @@ caml_binaryen_set_memory(value _module, value _initial, value _maximum, value _e
|
|
|
39
40
|
for (int i = 0; i < segmentSizesLen; i++) {
|
|
40
41
|
segmentSizes[i] = Int_val(Field(_segmentSizes, i));
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
+
bool shared = Bool_val(_shared);
|
|
44
|
+
bool memory64 = Bool_val(_memory64);
|
|
43
45
|
char* memoryName = Safe_String_val(_memoryName);
|
|
44
|
-
BinaryenSetMemory(module, initial, maximum, exportName, segments, segmentPassive, segmentOffsets, segmentSizes, segmentsLen, shared, memoryName);
|
|
46
|
+
BinaryenSetMemory(module, initial, maximum, exportName, segments, segmentPassive, segmentOffsets, segmentSizes, segmentsLen, shared, memory64, memoryName);
|
|
45
47
|
CAMLreturn(Val_unit);
|
|
46
48
|
}
|
|
47
49
|
CAMLprim value
|
|
48
50
|
caml_binaryen_set_memory__bytecode(value * argv) {
|
|
49
|
-
return caml_binaryen_set_memory(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9]);
|
|
51
|
+
return caml_binaryen_set_memory(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
CAMLprim value
|
|
@@ -93,6 +95,14 @@ caml_binaryen_memory_is_shared(value _module, value _memoryName) {
|
|
|
93
95
|
CAMLreturn(Val_bool(BinaryenMemoryIsShared(module, memoryName)));
|
|
94
96
|
}
|
|
95
97
|
|
|
98
|
+
CAMLprim value
|
|
99
|
+
caml_binaryen_memory_is_64(value _module, value _memoryName) {
|
|
100
|
+
CAMLparam2(_module, _memoryName);
|
|
101
|
+
BinaryenModuleRef module = BinaryenModuleRef_val(_module);
|
|
102
|
+
char* memoryName = Safe_String_val(_memoryName);
|
|
103
|
+
CAMLreturn(Val_bool(BinaryenMemoryIs64(module, memoryName)));
|
|
104
|
+
}
|
|
105
|
+
|
|
96
106
|
CAMLprim value
|
|
97
107
|
caml_binaryen_get_num_memory_segments(value _module) {
|
|
98
108
|
CAMLparam1(_module);
|
|
@@ -11,6 +11,7 @@ function caml_binaryen_set_memory(
|
|
|
11
11
|
segmentOffsets,
|
|
12
12
|
segmentSizes,
|
|
13
13
|
shared,
|
|
14
|
+
memory64,
|
|
14
15
|
memoryName
|
|
15
16
|
) {
|
|
16
17
|
var passives = caml_list_to_js_array(segmentPassives);
|
|
@@ -29,6 +30,7 @@ function caml_binaryen_set_memory(
|
|
|
29
30
|
caml_jsstring_of_string(exportName),
|
|
30
31
|
segs,
|
|
31
32
|
caml_js_from_bool(shared),
|
|
33
|
+
caml_js_from_bool(memory64),
|
|
32
34
|
caml_jsstring_of_string(memoryName)
|
|
33
35
|
);
|
|
34
36
|
}
|
|
@@ -45,7 +47,8 @@ function caml_binaryen_set_memory__bytecode() {
|
|
|
45
47
|
arguments[6],
|
|
46
48
|
arguments[7],
|
|
47
49
|
arguments[8],
|
|
48
|
-
arguments[9]
|
|
50
|
+
arguments[9],
|
|
51
|
+
arguments[10]
|
|
49
52
|
);
|
|
50
53
|
}
|
|
51
54
|
|
|
@@ -92,6 +95,13 @@ function caml_binaryen_memory_is_shared(mod, memoryName) {
|
|
|
92
95
|
return caml_js_to_bool(memory_info.shared);
|
|
93
96
|
}
|
|
94
97
|
|
|
98
|
+
//Provides: caml_binaryen_memory_is_64
|
|
99
|
+
//Requires: caml_js_to_bool, caml_jsstring_of_string
|
|
100
|
+
function caml_binaryen_memory_is_64(mod, memoryName) {
|
|
101
|
+
var memory_info = mod.getMemoryInfo(caml_jsstring_of_string(memoryName));
|
|
102
|
+
return caml_js_to_bool(memory_info.is64);
|
|
103
|
+
}
|
|
104
|
+
|
|
95
105
|
//Provides: caml_binaryen_get_num_memory_segments
|
|
96
106
|
function caml_binaryen_get_num_memory_segments(wasm_mod) {
|
|
97
107
|
return wasm_mod.getNumMemorySegments();
|
binaryen-archive/src/memory.ml
CHANGED
|
@@ -8,15 +8,16 @@ external set_memory :
|
|
|
8
8
|
Expression.t list ->
|
|
9
9
|
int list ->
|
|
10
10
|
bool ->
|
|
11
|
+
bool ->
|
|
11
12
|
string ->
|
|
12
13
|
unit = "caml_binaryen_set_memory__bytecode" "caml_binaryen_set_memory"
|
|
13
14
|
|
|
14
15
|
type segment = { data : bytes; kind : segment_kind; size : int }
|
|
15
16
|
and segment_kind = Passive | Active of { offset : Expression.t }
|
|
16
17
|
|
|
17
|
-
(** Module, initial size, maximum size, export name, segments, shared. *)
|
|
18
|
+
(** Module, initial size, maximum size, export name, segments, shared, memory64, moduleName . *)
|
|
18
19
|
let set_memory wasm_mod initial maximum export_name (segments : segment list)
|
|
19
|
-
shared =
|
|
20
|
+
shared memory64 moduleName =
|
|
20
21
|
let split_segments segments =
|
|
21
22
|
List.fold_right
|
|
22
23
|
(fun { data; kind; size }
|
|
@@ -38,7 +39,7 @@ let set_memory wasm_mod initial maximum export_name (segments : segment list)
|
|
|
38
39
|
split_segments segments
|
|
39
40
|
in
|
|
40
41
|
set_memory wasm_mod initial maximum export_name segment_data segment_passive
|
|
41
|
-
segment_offsets segment_sizes shared
|
|
42
|
+
segment_offsets segment_sizes shared memory64 moduleName
|
|
42
43
|
|
|
43
44
|
external has_memory : Module.t -> bool = "caml_binaryen_has_memory"
|
|
44
45
|
|
|
@@ -51,6 +52,8 @@ external get_max : Module.t -> string -> int = "caml_binaryen_memory_get_max"
|
|
|
51
52
|
external is_shared : Module.t -> string -> bool
|
|
52
53
|
= "caml_binaryen_memory_is_shared"
|
|
53
54
|
|
|
55
|
+
external is_64 : Module.t -> string -> bool = "caml_binaryen_memory_is_64"
|
|
56
|
+
|
|
54
57
|
let unlimited = -1
|
|
55
58
|
|
|
56
59
|
external get_num_segments : Module.t -> int
|
binaryen-archive/src/memory.mli
CHANGED
|
@@ -2,13 +2,22 @@ type segment = { data : bytes; kind : segment_kind; size : int }
|
|
|
2
2
|
and segment_kind = Passive | Active of { offset : Expression.t }
|
|
3
3
|
|
|
4
4
|
val set_memory :
|
|
5
|
-
Module.t ->
|
|
5
|
+
Module.t ->
|
|
6
|
+
int ->
|
|
7
|
+
int ->
|
|
8
|
+
string ->
|
|
9
|
+
segment list ->
|
|
10
|
+
bool ->
|
|
11
|
+
bool ->
|
|
12
|
+
string ->
|
|
13
|
+
unit
|
|
6
14
|
|
|
7
15
|
val has_memory : Module.t -> bool
|
|
8
16
|
val get_initial : Module.t -> string -> int
|
|
9
17
|
val has_max : Module.t -> string -> bool
|
|
10
18
|
val get_max : Module.t -> string -> int
|
|
11
19
|
val is_shared : Module.t -> string -> bool
|
|
20
|
+
val is_64 : Module.t -> string -> bool
|
|
12
21
|
val unlimited : int
|
|
13
22
|
val get_num_segments : Module.t -> int
|
|
14
23
|
val get_segment_byte_offset : Module.t -> int -> int
|
|
@@ -7,15 +7,6 @@
|
|
|
7
7
|
#include "binaryen-c.h"
|
|
8
8
|
#include "ocaml_helpers.h"
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
/* Allocating an OCaml custom block to hold the given BinaryenModuleRef */
|
|
12
|
-
static value alloc_BinaryenModuleRef(BinaryenModuleRef typ)
|
|
13
|
-
{
|
|
14
|
-
value v = caml_alloc_custom(&binaryen_ops, sizeof(BinaryenModuleRef), 0, 1);
|
|
15
|
-
BinaryenModuleRef_val(v) = typ;
|
|
16
|
-
return v;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
10
|
CAMLprim value
|
|
20
11
|
caml_binaryen_module_create(value unit) {
|
|
21
12
|
CAMLparam1(unit);
|
binaryen-archive/src/module.ml
CHANGED
|
@@ -60,11 +60,6 @@ module Feature = struct
|
|
|
60
60
|
|
|
61
61
|
let memory64 = memory64 ()
|
|
62
62
|
|
|
63
|
-
external typed_function_references : unit -> t
|
|
64
|
-
= "caml_binaryen_feature_typed_function_references"
|
|
65
|
-
|
|
66
|
-
let typed_function_references = typed_function_references ()
|
|
67
|
-
|
|
68
63
|
external relaxed_simd : unit -> t = "caml_binaryen_feature_relaxed_simd"
|
|
69
64
|
|
|
70
65
|
let relaxed_simd = relaxed_simd ()
|
|
@@ -77,6 +72,10 @@ module Feature = struct
|
|
|
77
72
|
|
|
78
73
|
let strings = strings ()
|
|
79
74
|
|
|
75
|
+
external multi_memories : unit -> t = "caml_binaryen_feature_multi_memories"
|
|
76
|
+
|
|
77
|
+
let multi_memories = multi_memories ()
|
|
78
|
+
|
|
80
79
|
external all : unit -> t = "caml_binaryen_feature_all"
|
|
81
80
|
|
|
82
81
|
let all = all ()
|
binaryen-archive/src/module.mli
CHANGED
|
@@ -101,12 +101,6 @@ caml_binaryen_feature_memory64(value unit) {
|
|
|
101
101
|
CAMLreturn(Val_int(BinaryenFeatureMemory64()));
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
CAMLprim value
|
|
105
|
-
caml_binaryen_feature_typed_function_references(value unit) {
|
|
106
|
-
CAMLparam1(unit);
|
|
107
|
-
CAMLreturn(Val_int(BinaryenFeatureTypedFunctionReferences()));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
104
|
CAMLprim value
|
|
111
105
|
caml_binaryen_feature_relaxed_simd(value unit) {
|
|
112
106
|
CAMLparam1(unit);
|
|
@@ -125,6 +119,12 @@ caml_binaryen_feature_strings(value unit) {
|
|
|
125
119
|
CAMLreturn(Val_int(BinaryenFeatureStrings()));
|
|
126
120
|
}
|
|
127
121
|
|
|
122
|
+
CAMLprim value
|
|
123
|
+
caml_binaryen_feature_multi_memories(value unit) {
|
|
124
|
+
CAMLparam1(unit);
|
|
125
|
+
CAMLreturn(Val_int(BinaryenFeatureMultiMemories()));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
128
|
CAMLprim value
|
|
129
129
|
caml_binaryen_feature_all(value unit) {
|
|
130
130
|
CAMLparam1(unit);
|
|
@@ -86,12 +86,6 @@ function caml_binaryen_feature_memory64() {
|
|
|
86
86
|
return Binaryen.Features.Memory64;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
//Provides: caml_binaryen_feature_typed_function_references
|
|
90
|
-
//Requires: Binaryen
|
|
91
|
-
function caml_binaryen_feature_typed_function_references() {
|
|
92
|
-
return Binaryen.Features.TypedFunctionReferences;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
89
|
//Provides: caml_binaryen_feature_relaxed_simd
|
|
96
90
|
//Requires: Binaryen
|
|
97
91
|
function caml_binaryen_feature_relaxed_simd() {
|
|
@@ -110,6 +104,12 @@ function caml_binaryen_feature_strings() {
|
|
|
110
104
|
return Binaryen.Features.Strings;
|
|
111
105
|
}
|
|
112
106
|
|
|
107
|
+
//Provides: caml_binaryen_feature_multi_memories
|
|
108
|
+
//Requires: Binaryen
|
|
109
|
+
function caml_binaryen_feature_multi_memories() {
|
|
110
|
+
return Binaryen.Features.MultiMemories;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
113
|
//Provides: caml_binaryen_feature_all
|
|
114
114
|
//Requires: Binaryen
|
|
115
115
|
function caml_binaryen_feature_all() {
|