@grain/binaryen.ml 0.9.1 → 0.11.2

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.
Files changed (187) hide show
  1. {binaryen-archive → binaryen-archive-v0.11.2}/.gitattributes +0 -0
  2. {binaryen-archive → binaryen-archive-v0.11.2}/.gitignore +1 -0
  3. {binaryen-archive → binaryen-archive-v0.11.2}/.gitmodules +0 -0
  4. {binaryen-archive → binaryen-archive-v0.11.2}/CHANGELOG.md +73 -0
  5. {binaryen-archive → binaryen-archive-v0.11.2}/LICENSE +0 -0
  6. {binaryen-archive → binaryen-archive-v0.11.2}/README.md +27 -3
  7. {binaryen-archive → binaryen-archive-v0.11.2}/binaryen.opam +8 -8
  8. {binaryen-archive → binaryen-archive-v0.11.2}/dune +0 -0
  9. {binaryen-archive → binaryen-archive-v0.11.2}/dune-project +0 -0
  10. {binaryen-archive → binaryen-archive-v0.11.2}/dune-workspace +0 -0
  11. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/.gitattributes +0 -0
  12. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/.gitignore +0 -0
  13. binaryen-archive-v0.11.2/esy.lock/index.json +1365 -0
  14. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/astring.0.8.5/opam +0 -0
  15. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/base-threads.base/opam +0 -0
  16. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/base-unix.base/opam +0 -0
  17. {binaryen-archive/esy.lock/opam/base.v0.14.1 → binaryen-archive-v0.11.2/esy.lock/opam/base.v0.14.2}/opam +4 -4
  18. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/biniou.1.2.1/opam +1 -1
  19. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/cmdliner.1.0.4/opam +0 -0
  20. {binaryen-archive/esy.lock/opam/cppo.1.6.7 → binaryen-archive-v0.11.2/esy.lock/opam/cppo.1.6.8}/opam +4 -6
  21. {binaryen-archive/esy.lock/opam/csexp.1.4.0 → binaryen-archive-v0.11.2/esy.lock/opam/csexp.1.5.1}/opam +11 -9
  22. {binaryen-archive/esy.lock/opam/dune-build-info.2.8.2 → binaryen-archive-v0.11.2/esy.lock/opam/dune-build-info.2.9.1}/opam +5 -5
  23. {binaryen-archive/esy.lock/opam/dune-configurator.2.8.2 → binaryen-archive-v0.11.2/esy.lock/opam/dune-configurator.2.9.1}/opam +5 -5
  24. {binaryen-archive/esy.lock/opam/dune.2.8.2 → binaryen-archive-v0.11.2/esy.lock/opam/dune.2.9.1}/opam +4 -4
  25. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/easy-format.1.3.2/opam +1 -1
  26. {binaryen-archive/esy.lock/opam/fix.20201120 → binaryen-archive-v0.11.2/esy.lock/opam/fix.20211231}/opam +7 -5
  27. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/fpath.0.7.3/opam +0 -0
  28. binaryen-archive-v0.11.2/esy.lock/opam/js_of_ocaml-compiler.3.11.0/opam +54 -0
  29. binaryen-archive-v0.11.2/esy.lock/opam/js_of_ocaml-ppx.3.11.0/opam +44 -0
  30. binaryen-archive-v0.11.2/esy.lock/opam/js_of_ocaml.3.11.0/opam +45 -0
  31. {binaryen-archive/esy.lock/opam/menhir.20201216 → binaryen-archive-v0.11.2/esy.lock/opam/menhir.20211128}/opam +8 -6
  32. {binaryen-archive/esy.lock/opam/menhirLib.20201216 → binaryen-archive-v0.11.2/esy.lock/opam/menhirLib.20211128}/opam +8 -6
  33. {binaryen-archive/esy.lock/opam/menhirSdk.20201216 → binaryen-archive-v0.11.2/esy.lock/opam/menhirSdk.20211128}/opam +8 -6
  34. binaryen-archive-v0.11.2/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam +39 -0
  35. {binaryen-archive/esy.lock/opam/ocaml-lsp-server.1.4.0 → binaryen-archive-v0.11.2/esy.lock/opam/ocaml-lsp-server.1.9.0}/opam +15 -12
  36. {binaryen-archive/esy.lock/opam/ocaml-migrate-parsetree.2.1.0 → binaryen-archive-v0.11.2/esy.lock/opam/ocaml-migrate-parsetree.2.3.0}/opam +13 -10
  37. binaryen-archive-v0.11.2/esy.lock/opam/ocaml-version.3.4.0/opam +49 -0
  38. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/ocamlbuild.0.14.0/opam +1 -1
  39. {binaryen-archive/esy.lock/opam/ocamlfind.1.8.1 → binaryen-archive-v0.11.2/esy.lock/opam/ocamlfind.1.9.1}/opam +19 -39
  40. binaryen-archive-v0.11.2/esy.lock/opam/ocamlformat-rpc-lib.0.19.0/opam +40 -0
  41. binaryen-archive-v0.11.2/esy.lock/opam/ocamlformat.0.18.0/opam +56 -0
  42. {binaryen-archive/esy.lock/opam/odoc.1.5.2 → binaryen-archive-v0.11.2/esy.lock/opam/odoc.1.5.3}/opam +12 -12
  43. binaryen-archive-v0.11.2/esy.lock/opam/pp.1.1.2/opam +58 -0
  44. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/ppx_derivers.1.2.1/opam +1 -1
  45. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam +2 -2
  46. {binaryen-archive/esy.lock/opam/ppxlib.0.21.0 → binaryen-archive-v0.11.2/esy.lock/opam/ppxlib.0.22.2}/opam +40 -32
  47. {binaryen-archive/esy.lock/opam/re.1.9.0 → binaryen-archive-v0.11.2/esy.lock/opam/re.1.10.3}/opam +8 -4
  48. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/result.1.5/opam +2 -2
  49. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/seq.base/files/META.seq +0 -0
  50. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/seq.base/files/seq.install +0 -0
  51. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/seq.base/opam +0 -0
  52. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/sexplib0.v0.14.0/opam +2 -2
  53. binaryen-archive-v0.11.2/esy.lock/opam/spawn.v0.15.0/opam +56 -0
  54. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/stdio.v0.14.0/opam +2 -2
  55. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/stdlib-shims.0.3.0/opam +0 -0
  56. {binaryen-archive/esy.lock/opam/topkg.1.0.3 → binaryen-archive-v0.11.2/esy.lock/opam/topkg.1.0.4}/opam +18 -22
  57. binaryen-archive-v0.11.2/esy.lock/opam/tyxml.4.5.0/opam +42 -0
  58. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/uchar.0.0.2/opam +0 -0
  59. binaryen-archive-v0.11.2/esy.lock/opam/uucp.14.0.0/opam +41 -0
  60. {binaryen-archive/esy.lock/opam/uuseg.13.0.0 → binaryen-archive-v0.11.2/esy.lock/opam/uuseg.14.0.0}/opam +22 -28
  61. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/uutf.1.0.2/opam +0 -0
  62. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/opam/yojson.1.7.0/opam +1 -1
  63. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch +0 -0
  64. {binaryen-archive → binaryen-archive-v0.11.2}/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json +0 -0
  65. binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override/files/findlib-1.8.1.patch → binaryen-archive-v0.11.2/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.1_opam_override/files/findlib-1.9.1.patch +0 -0
  66. {binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.8.1_opam_override → binaryen-archive-v0.11.2/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.1_opam_override}/package.json +1 -1
  67. binaryen-archive-v0.11.2/js/binaryen.es5.js +5 -0
  68. {binaryen-archive → binaryen-archive-v0.11.2}/js/dune +1 -6
  69. binaryen-archive-v0.11.2/js/element_segment.ml +33 -0
  70. binaryen-archive-v0.11.2/js/export.ml +60 -0
  71. binaryen-archive-v0.11.2/js/expression.ml +944 -0
  72. binaryen-archive-v0.11.2/js/function.ml +60 -0
  73. binaryen-archive-v0.11.2/js/global.ml +48 -0
  74. {binaryen-archive → binaryen-archive-v0.11.2}/js/import.ml +24 -0
  75. {binaryen-archive → binaryen-archive-v0.11.2}/js/literal.ml +0 -0
  76. {binaryen-archive → binaryen-archive-v0.11.2}/js/memory.ml +0 -0
  77. {binaryen-archive → binaryen-archive-v0.11.2}/js/module.ml +42 -46
  78. {binaryen-archive → binaryen-archive-v0.11.2}/js/op.ml +9 -78
  79. binaryen-archive-v0.11.2/js/postlude.js +2 -0
  80. binaryen-archive-v0.11.2/js/prelude.js +11 -0
  81. binaryen-archive-v0.11.2/js/settings.ml +60 -0
  82. {binaryen-archive → binaryen-archive-v0.11.2}/js/stubs.c +0 -0
  83. binaryen-archive-v0.11.2/js/table.ml +29 -0
  84. {binaryen-archive → binaryen-archive-v0.11.2}/js/type.ml +3 -0
  85. binaryen-archive-v0.11.2/package.json +37 -0
  86. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_exports.c +78 -0
  87. binaryen-archive-v0.11.2/src/binaryen_stubs_expressions.c +1710 -0
  88. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_features.c +7 -0
  89. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_functions.c +78 -0
  90. binaryen-archive-v0.11.2/src/binaryen_stubs_globals.c +109 -0
  91. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_imports.c +29 -0
  92. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_literals.c +0 -0
  93. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_memory.c +1 -1
  94. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_modules.c +0 -122
  95. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_ops.c +19 -173
  96. binaryen-archive-v0.11.2/src/binaryen_stubs_settings.c +145 -0
  97. binaryen-archive-v0.11.2/src/binaryen_stubs_tables.c +145 -0
  98. {binaryen-archive → binaryen-archive-v0.11.2}/src/binaryen_stubs_types.c +18 -0
  99. binaryen-archive-v0.11.2/src/dune +14 -0
  100. binaryen-archive-v0.11.2/src/element_segment.ml +13 -0
  101. binaryen-archive-v0.11.2/src/export.ml +54 -0
  102. binaryen-archive-v0.11.2/src/expression.ml +844 -0
  103. {binaryen-archive → binaryen-archive-v0.11.2}/src/function.ml +18 -0
  104. binaryen-archive-v0.11.2/src/global.ml +24 -0
  105. {binaryen-archive → binaryen-archive-v0.11.2}/src/import.ml +12 -0
  106. {binaryen-archive → binaryen-archive-v0.11.2}/src/literal.ml +0 -0
  107. {binaryen-archive → binaryen-archive-v0.11.2}/src/memory.ml +0 -0
  108. binaryen-archive-v0.11.2/src/module.ml +115 -0
  109. {binaryen-archive → binaryen-archive-v0.11.2}/src/ocaml_helpers.c +0 -8
  110. {binaryen-archive → binaryen-archive-v0.11.2}/src/ocaml_helpers.h +2 -3
  111. {binaryen-archive → binaryen-archive-v0.11.2}/src/op.ml +18 -131
  112. binaryen-archive-v0.11.2/src/settings.ml +45 -0
  113. binaryen-archive-v0.11.2/src/table.ml +26 -0
  114. {binaryen-archive → binaryen-archive-v0.11.2}/src/type.ml +2 -0
  115. binaryen-archive-v0.11.2/test/config/dune +8 -0
  116. binaryen-archive-v0.11.2/test/config/ocamlopt_flags.ml +16 -0
  117. {binaryen-archive → binaryen-archive-v0.11.2}/test/dune +4 -0
  118. {binaryen-archive → binaryen-archive-v0.11.2}/test/test.expected +38 -5
  119. binaryen-archive-v0.11.2/test/test.ml +147 -0
  120. binaryen-archive-v0.11.2/virtual/dune +6 -0
  121. binaryen-archive-v0.11.2/virtual/element_segment.mli +11 -0
  122. binaryen-archive-v0.11.2/virtual/export.mli +33 -0
  123. binaryen-archive-v0.11.2/virtual/expression.mli +423 -0
  124. {binaryen-archive → binaryen-archive-v0.11.2}/virtual/function.mli +16 -0
  125. binaryen-archive-v0.11.2/virtual/global.mli +19 -0
  126. {binaryen-archive → binaryen-archive-v0.11.2}/virtual/import.mli +8 -0
  127. {binaryen-archive → binaryen-archive-v0.11.2}/virtual/literal.mli +0 -0
  128. {binaryen-archive → binaryen-archive-v0.11.2}/virtual/memory.mli +0 -0
  129. binaryen-archive-v0.11.2/virtual/module.mli +65 -0
  130. {binaryen-archive → binaryen-archive-v0.11.2}/virtual/op.mli +9 -53
  131. binaryen-archive-v0.11.2/virtual/settings.mli +35 -0
  132. binaryen-archive-v0.11.2/virtual/table.mli +19 -0
  133. {binaryen-archive → binaryen-archive-v0.11.2}/virtual/type.mli +2 -0
  134. binaryen-archive/esy.lock/index.json +0 -1288
  135. binaryen-archive/esy.lock/opam/conf-m4.1/opam +0 -22
  136. binaryen-archive/esy.lock/opam/dot-merlin-reader.4.1/opam +0 -30
  137. binaryen-archive/esy.lock/opam/js_of_ocaml-compiler.3.9.1/opam +0 -40
  138. binaryen-archive/esy.lock/opam/js_of_ocaml-ppx.3.9.0/opam +0 -30
  139. binaryen-archive/esy.lock/opam/js_of_ocaml.3.9.0/opam +0 -31
  140. binaryen-archive/esy.lock/opam/ocaml-compiler-libs.v0.12.3/opam +0 -29
  141. binaryen-archive/esy.lock/opam/ocamlfind.1.8.1/files/ocaml-stub +0 -4
  142. binaryen-archive/esy.lock/opam/ocamlfind.1.8.1/files/ocamlfind.install +0 -6
  143. binaryen-archive/esy.lock/opam/ocamlformat.0.15.1/opam +0 -41
  144. binaryen-archive/esy.lock/opam/tyxml.4.4.0/opam +0 -47
  145. binaryen-archive/esy.lock/opam/uucp.13.0.0/opam +0 -44
  146. binaryen-archive/esy.lock/overrides/opam__s__conf_m4_opam__c__1_opam_override/package.json +0 -6
  147. binaryen-archive/js/export.ml +0 -23
  148. binaryen-archive/js/expression.ml +0 -185
  149. binaryen-archive/js/features.ml +0 -27
  150. binaryen-archive/js/function.ml +0 -29
  151. binaryen-archive/js/function_table.ml +0 -13
  152. binaryen-archive/js/global.ml +0 -19
  153. binaryen-archive/js/postlude.js +0 -2
  154. binaryen-archive/js/table.ml +0 -12
  155. binaryen-archive/package.json +0 -43
  156. binaryen-archive/src/binaryen_stubs_expressions.c +0 -410
  157. binaryen-archive/src/binaryen_stubs_function_tables.c +0 -25
  158. binaryen-archive/src/binaryen_stubs_globals.c +0 -46
  159. binaryen-archive/src/binaryen_stubs_tables.c +0 -31
  160. binaryen-archive/src/config/dune +0 -8
  161. binaryen-archive/src/config/library_flags.ml +0 -16
  162. binaryen-archive/src/dune +0 -53
  163. binaryen-archive/src/export.ml +0 -21
  164. binaryen-archive/src/expression.ml +0 -115
  165. binaryen-archive/src/features.ml +0 -49
  166. binaryen-archive/src/function_table.ml +0 -6
  167. binaryen-archive/src/global.ml +0 -10
  168. binaryen-archive/src/module.ml +0 -89
  169. binaryen-archive/src/table.ml +0 -4
  170. binaryen-archive/test/test.ml +0 -83
  171. binaryen-archive/vendor/binaryen-c.h +0 -2647
  172. binaryen-archive/vendor/js/index.es5.js +0 -5
  173. binaryen-archive/vendor/linux/libbinaryen.a +0 -0
  174. binaryen-archive/vendor/linux/libbinaryen.so +0 -0
  175. binaryen-archive/vendor/macosx/libbinaryen.a +0 -0
  176. binaryen-archive/vendor/macosx/libbinaryen.dylib +0 -0
  177. binaryen-archive/vendor/mingw64/libbinaryen.a +0 -0
  178. binaryen-archive/vendor/mingw64/libbinaryen.dll +0 -0
  179. binaryen-archive/vendor/wasm-delegations.h +0 -85
  180. binaryen-archive/virtual/dune +0 -6
  181. binaryen-archive/virtual/export.mli +0 -11
  182. binaryen-archive/virtual/expression.mli +0 -68
  183. binaryen-archive/virtual/features.mli +0 -23
  184. binaryen-archive/virtual/function_table.mli +0 -4
  185. binaryen-archive/virtual/global.mli +0 -7
  186. binaryen-archive/virtual/module.mli +0 -67
  187. binaryen-archive/virtual/table.mli +0 -2
@@ -1,115 +0,0 @@
1
- type t
2
-
3
- external block : Module.t -> string -> t list -> Type.t -> t
4
- = "caml_binaryen_block"
5
-
6
- (** Module, block name, expression list. *)
7
- let block ?(return_type = Type.auto) wasm_mod name exprs =
8
- block wasm_mod name exprs return_type
9
-
10
- external if_ : Module.t -> t -> t -> t -> t = "caml_binaryen_if"
11
- (** Module, condition, true branch, false branch. False branch may be null. *)
12
-
13
- external loop : Module.t -> string -> t -> t = "caml_binaryen_loop"
14
- (** Module, loop name, body. *)
15
-
16
- external break : Module.t -> string -> t -> t -> t = "caml_binaryen_break"
17
- (** Module, block name, condition, result. Value and condition may be null. *)
18
-
19
- external switch : Module.t -> string list -> string -> t -> t -> t
20
- = "caml_binaryen_switch"
21
- (** Module, branch names, default branch name, condition, value. Value may be null. *)
22
-
23
- external call : Module.t -> string -> t list -> Type.t -> t
24
- = "caml_binaryen_call"
25
- (** Module, function name, params, return type. *)
26
-
27
- external call_indirect :
28
- Module.t -> string -> t -> t list -> Type.t -> Type.t -> t
29
- = "caml_binaryen_call_indirect__bytecode" "caml_binaryen_call_indirect"
30
- (** Module, table, function value, params, params type, return type. *)
31
-
32
- external return_call : Module.t -> string -> t list -> Type.t -> t
33
- = "caml_binaryen_return_call"
34
- (** Module, function name, params, return type. *)
35
-
36
- external return_call_indirect :
37
- Module.t -> string -> t -> t list -> Type.t -> Type.t -> t
38
- = "caml_binaryen_return_call_indirect__bytecode" "caml_binaryen_return_call_indirect"
39
- (** Module, table, function value, params, params type, return type. *)
40
-
41
- external local_get : Module.t -> int -> Type.t -> t = "caml_binaryen_local_get"
42
- (** Module, slot, type. *)
43
-
44
- external local_set : Module.t -> int -> t -> t = "caml_binaryen_local_set"
45
- (** Module, slot, value. *)
46
-
47
- external local_tee : Module.t -> int -> t -> Type.t -> t
48
- = "caml_binaryen_local_tee"
49
- (** Module, slot, value, type. *)
50
-
51
- external global_get : Module.t -> string -> Type.t -> t
52
- = "caml_binaryen_global_get"
53
- (** Module, name, type. *)
54
-
55
- external global_set : Module.t -> string -> t -> t = "caml_binaryen_global_set"
56
- (** Module, name, value. *)
57
-
58
- external load : Module.t -> int -> bool -> int -> int -> Type.t -> t -> t
59
- = "caml_binaryen_load__bytecode" "caml_binaryen_load"
60
-
61
- (** Module, num_bytes, ?signed, offset, align, type, ptr. *)
62
- let load wasm_mod bytes ?(signed = false) offset align ty ptr =
63
- load wasm_mod bytes signed offset align ty ptr
64
-
65
- external store : Module.t -> int -> int -> int -> t -> t -> Type.t -> t
66
- = "caml_binaryen_store__bytecode" "caml_binaryen_store"
67
- (** Module, num_bytes, offset, align, ptr, value, type. *)
68
-
69
- external const : Module.t -> Literal.t -> t = "caml_binaryen_const"
70
-
71
- external unary : Module.t -> Op.t -> t -> t = "caml_binaryen_unary"
72
-
73
- external binary : Module.t -> Op.t -> t -> t -> t = "caml_binaryen_binary"
74
-
75
- external select : Module.t -> t -> t -> t -> Type.t -> t
76
- = "caml_binaryen_select"
77
-
78
- (** Module, condition, true branch, false branch. *)
79
- let select wasm_mod cond tru fals = select wasm_mod cond tru fals Type.auto
80
-
81
- external drop : Module.t -> t -> t = "caml_binaryen_drop"
82
-
83
- external return : Module.t -> t -> t = "caml_binaryen_return"
84
-
85
- external memory_size : Module.t -> t = "caml_binaryen_memory_size"
86
-
87
- external memory_grow : Module.t -> t -> t = "caml_binaryen_memory_grow"
88
-
89
- external nop : Module.t -> t = "caml_binaryen_nop"
90
-
91
- external unreachable : Module.t -> t = "caml_binaryen_unreachable"
92
-
93
- external memory_copy : Module.t -> t -> t -> t -> t
94
- = "caml_binaryen_memory_copy"
95
- (** Module, destination, source, size. *)
96
-
97
- external memory_fill : Module.t -> t -> t -> t -> t
98
- = "caml_binaryen_memory_fill"
99
- (** Module, destination, value, size. *)
100
-
101
- external tuple_make : Module.t -> t list -> t = "caml_binaryen_tuple_make"
102
- (** Module, items *)
103
-
104
- external tuple_extract : Module.t -> t -> int -> t
105
- = "caml_binaryen_tuple_extract"
106
- (** Module, tuple, index *)
107
-
108
- external pop : Module.t -> Type.t -> t = "caml_binaryen_pop"
109
- (** Module, type *)
110
-
111
- external null : unit -> t = "caml_binaryen_null_expression"
112
- (** A null reference. *)
113
-
114
- external print : t -> unit = "caml_binaryen_expression_print"
115
- (** Print an expression to the console. *)
@@ -1,49 +0,0 @@
1
- external mvp : unit -> int = "caml_binaryen_feature_mvp"
2
-
3
- let mvp = mvp ()
4
-
5
- external atomics : unit -> int = "caml_binaryen_feature_atomics"
6
-
7
- let atomics = atomics ()
8
-
9
- external bulk_memory : unit -> int = "caml_binaryen_feature_bulk_memory"
10
-
11
- let bulk_memory = bulk_memory ()
12
-
13
- external mutable_globals : unit -> int = "caml_binaryen_feature_mutable_globals"
14
-
15
- let mutable_globals = mutable_globals ()
16
-
17
- external nontrapping_fp_to_int : unit -> int
18
- = "caml_binaryen_feature_nontrapping_fp_to_int"
19
-
20
- let nontrapping_fp_to_int = nontrapping_fp_to_int ()
21
-
22
- external sign_ext : unit -> int = "caml_binaryen_feature_sign_ext"
23
-
24
- let sign_ext = sign_ext ()
25
-
26
- external simd128 : unit -> int = "caml_binaryen_feature_simd128"
27
-
28
- let simd128 = simd128 ()
29
-
30
- external exception_handling : unit -> int
31
- = "caml_binaryen_feature_exception_handling"
32
-
33
- let exception_handling = exception_handling ()
34
-
35
- external tail_call : unit -> int = "caml_binaryen_feature_tail_call"
36
-
37
- let tail_call = tail_call ()
38
-
39
- external reference_types : unit -> int = "caml_binaryen_feature_reference_types"
40
-
41
- let reference_types = reference_types ()
42
-
43
- external multivalue : unit -> int = "caml_binaryen_feature_multivalue"
44
-
45
- let multivalue = multivalue ()
46
-
47
- external all : unit -> int = "caml_binaryen_feature_all"
48
-
49
- let all = all ()
@@ -1,6 +0,0 @@
1
- external set_function_table :
2
- Module.t -> int -> int -> string list -> Expression.t -> unit
3
- = "caml_binaryen_set_function_table"
4
- (** Module, initial size, maximum size, function names, offset. *)
5
-
6
- let unlimited = -1
@@ -1,10 +0,0 @@
1
- type t
2
-
3
- external add_global : Module.t -> string -> Type.t -> bool -> Expression.t -> t
4
- = "caml_binaryen_add_global"
5
- (** Module, name, type, mutable, value. *)
6
-
7
- external get_global : Module.t -> string -> t = "caml_binaryen_get_global"
8
-
9
- external remove_global : Module.t -> string -> unit
10
- = "caml_binaryen_remove_global"
@@ -1,89 +0,0 @@
1
- let _ = Callback.register "array_of_list" Array.of_list
2
-
3
- let _ = Callback.register "array_length" Array.length
4
-
5
- type t
6
-
7
- external create : unit -> t = "caml_binaryen_module_create"
8
-
9
- external dispose : t -> unit = "caml_binaryen_module_dispose"
10
-
11
- external add_custom_section : t -> string -> string -> unit
12
- = "caml_binaryen_add_custom_section"
13
-
14
- external parse : string -> t = "caml_binaryen_module_parse"
15
-
16
- external print : t -> unit = "caml_binaryen_module_print"
17
-
18
- external print_asmjs : t -> unit = "caml_binaryen_module_print_asmjs"
19
-
20
- external validate : t -> int = "caml_binaryen_module_validate"
21
-
22
- external optimize : t -> unit = "caml_binaryen_module_optimize"
23
-
24
- external set_features : t -> int -> unit = "caml_binaryen_module_set_features"
25
-
26
- let set_features wasm_mod features =
27
- set_features wasm_mod (List.fold_left ( lor ) 0 features)
28
-
29
- external get_optimize_level : unit -> int = "caml_binaryen_get_optimize_level"
30
-
31
- external set_optimize_level : int -> unit = "caml_binaryen_set_optimize_level"
32
-
33
- external get_shrink_level : unit -> int = "caml_binaryen_get_shrink_level"
34
-
35
- external set_shrink_level : int -> unit = "caml_binaryen_set_shrink_level"
36
-
37
- external get_debug_info : unit -> int = "caml_binaryen_get_debug_info"
38
-
39
- external set_debug_info : int -> unit = "caml_binaryen_set_debug_info"
40
-
41
- external get_low_memory_unused : unit -> int
42
- = "caml_binaryen_get_low_memory_unused"
43
-
44
- external set_low_memory_unused : int -> unit
45
- = "caml_binaryen_set_low_memory_unused"
46
-
47
- external get_pass_argument : string -> string
48
- = "caml_binaryen_get_pass_argument"
49
-
50
- external set_pass_argument : string -> string -> unit
51
- = "caml_binaryen_set_pass_argument"
52
-
53
- external get_always_inline_max_size : unit -> int
54
- = "caml_binaryen_get_always_inline_max_size"
55
-
56
- external set_always_inline_max_size : int -> unit
57
- = "caml_binaryen_set_always_inline_max_size"
58
-
59
- external get_flexible_inline_max_size : unit -> int
60
- = "caml_binaryen_get_flexible_inline_max_size"
61
-
62
- external set_flexible_inline_max_size : int -> unit
63
- = "caml_binaryen_set_flexible_inline_max_size"
64
-
65
- external get_one_caller_inline_max_size : unit -> int
66
- = "caml_binaryen_get_one_caller_inline_max_size"
67
-
68
- external set_one_caller_inline_max_size : int -> unit
69
- = "caml_binaryen_set_one_caller_inline_max_size"
70
-
71
- external run_passes : t -> string list -> unit
72
- = "caml_binaryen_module_run_passes"
73
-
74
- external auto_drop : t -> unit = "caml_binaryen_module_auto_drop"
75
-
76
- external write : t -> string option -> bytes * string option
77
- = "caml_binaryen_module_write"
78
-
79
- external write_text : t -> string = "caml_binaryen_module_write_text"
80
-
81
- external read : bytes -> t = "caml_binaryen_module_read"
82
-
83
- external interpret : t -> unit = "caml_binaryen_module_interpret"
84
-
85
- external add_debug_info_filename : t -> string -> int
86
- = "caml_binaryen_module_add_debug_info_filename"
87
-
88
- external get_debug_info_filename : t -> int -> string
89
- = "caml_binaryen_module_get_debug_info_filename"
@@ -1,4 +0,0 @@
1
- external add_table :
2
- Module.t -> string -> int -> int -> string list -> Expression.t -> unit
3
- = "caml_binaryen_add_table__bytecode" "caml_binaryen_add_table"
4
- (** Module, name, initial size, maximum size, function names, offset. *)
@@ -1,83 +0,0 @@
1
- open Binaryen
2
-
3
- let wasm_mod = Module.create ()
4
-
5
- (* Create function type for i32 (i32, i32) *)
6
- let params () = Type.create [| Type.int32; Type.int32 |]
7
-
8
- let results = Type.int32
9
-
10
- let x () = Expression.local_get wasm_mod 0 Type.int32
11
-
12
- let y () = Expression.local_get wasm_mod 1 Type.int32
13
-
14
- let load = Expression.load wasm_mod 1 ~signed:true 0 0 Type.int32 (y ())
15
-
16
- let select =
17
- Expression.select wasm_mod
18
- (Expression.const wasm_mod (Literal.int32 1l))
19
- (x ()) load
20
-
21
- let bin = Expression.binary wasm_mod Op.add_int32 select (y ())
22
-
23
- let add =
24
- Expression.block wasm_mod ~return_type:Type.int32 "add"
25
- [
26
- Expression.if_ wasm_mod
27
- (Expression.const wasm_mod (Literal.int32 0l))
28
- (Expression.unreachable wasm_mod)
29
- (Expression.null ());
30
- bin;
31
- ]
32
-
33
- (* Create the add function *)
34
- let adder = Function.add_function wasm_mod "adder" (params ()) results [||] add
35
-
36
- let call_adder =
37
- Expression.call_indirect wasm_mod "table"
38
- (Expression.const wasm_mod (Literal.int32 0l))
39
- [
40
- Expression.const wasm_mod (Literal.int32 3l);
41
- Expression.const wasm_mod (Literal.int32 5l);
42
- ]
43
- (params ()) Type.int32
44
-
45
- let start =
46
- Function.add_function wasm_mod "start" Type.none Type.none [||]
47
- (Expression.drop wasm_mod call_adder)
48
-
49
- let _ = Export.add_function_export wasm_mod "adder" "adder"
50
-
51
- let _ =
52
- Global.add_global wasm_mod "max_int64" Type.int64 false
53
- (Expression.const wasm_mod (Literal.int64 Int64.max_int))
54
-
55
- let _ =
56
- Global.add_global wasm_mod "test_float64_bits" Type.float64 false
57
- (Expression.const wasm_mod (Literal.float64_bits 0x3FF3AE147AE147AEL))
58
-
59
- let _ =
60
- Table.add_table wasm_mod "table" 1 1 [ "adder" ]
61
- (Expression.const wasm_mod (Literal.int32 0l))
62
-
63
- let _ = Function.set_start wasm_mod start
64
-
65
- let _ = Memory.set_memory wasm_mod 1 Memory.unlimited "memory" [] false
66
-
67
- let _ = Module.print wasm_mod
68
-
69
- let _ = Module.optimize wasm_mod
70
-
71
- let _ = Module.print wasm_mod
72
-
73
- let byts, _ = Module.write wasm_mod None
74
-
75
- let new_mod = Module.read byts
76
-
77
- let _ = Module.validate new_mod
78
-
79
- let _ = Module.print new_mod
80
-
81
- let _ = Module.dispose wasm_mod
82
-
83
- let _ = Module.dispose new_mod