@grain/binaryen.ml 0.12.1 → 0.14.1
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 +32 -0
- binaryen-archive/README.md +24 -0
- binaryen-archive/binaryen.opam +4 -4
- binaryen-archive/esy.lock/index.json +102 -100
- binaryen-archive/esy.lock/opam/{cmdliner.1.0.4 → cmdliner.1.1.0}/opam +17 -20
- binaryen-archive/esy.lock/opam/{ocaml-lsp-server.1.9.1 → ocaml-lsp-server.1.10.3}/opam +4 -4
- binaryen-archive/esy.lock/opam/{ocamlbuild.0.14.0 → ocamlbuild.0.14.1}/opam +18 -15
- binaryen-archive/esy.lock/opam/ocamlformat.0.20.1/opam +2 -0
- binaryen-archive/esy.lock/opam/{ppxlib.0.24.0 → ppxlib.0.25.0}/opam +4 -4
- binaryen-archive/esy.lock/opam/stdlib-shims.0.3.0/opam +1 -1
- binaryen-archive/esy.lock/opam/uchar.0.0.2/opam +1 -1
- binaryen-archive/esy.lock/opam/uutf.1.0.3/opam +36 -0
- binaryen-archive/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.1_opam_override/files/winpatch.patch +11 -0
- binaryen-archive/esy.lock/overrides/{opam__s__ocamlbuild_opam__c__0.14.0_opam_override → opam__s__ocamlbuild_opam__c__0.14.1_opam_override}/package.json +5 -3
- binaryen-archive/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.3_opam_override/files/findlib.patch +14 -0
- binaryen-archive/esy.lock/overrides/opam__s__uchar_opam__c__0.0.2_opam_override/files/winpatch.patch +11 -0
- binaryen-archive/esy.lock/overrides/opam__s__uchar_opam__c__0.0.2_opam_override/package.json +11 -0
- binaryen-archive/js/binaryen.es5.js +363 -5
- binaryen-archive/js/dune +1 -1
- binaryen-archive/js/export.ml +0 -3
- binaryen-archive/js/expression.ml +161 -0
- binaryen-archive/js/literal.ml +0 -1
- binaryen-archive/js/module.ml +6 -9
- binaryen-archive/js/op.ml +0 -223
- binaryen-archive/js/prelude.js +2 -11
- binaryen-archive/js/type.ml +0 -9
- binaryen-archive/package.json +4 -4
- binaryen-archive/src/binaryen_stubs_expressions.c +250 -0
- binaryen-archive/src/binaryen_stubs_features.c +24 -0
- binaryen-archive/src/element_segment.ml +0 -1
- binaryen-archive/src/export.ml +0 -2
- binaryen-archive/src/expression.ml +94 -63
- binaryen-archive/src/function.ml +0 -6
- binaryen-archive/src/global.ml +0 -2
- binaryen-archive/src/literal.ml +0 -3
- binaryen-archive/src/module.ml +17 -9
- binaryen-archive/src/settings.ml +0 -6
- binaryen-archive/src/type.ml +0 -1
- binaryen-archive/test/config/ocamlopt_flags.ml +8 -1
- binaryen-archive/test/test.expected +8 -0
- binaryen-archive/test/test.ml +44 -22
- binaryen-archive/virtual/element_segment.mli +0 -4
- binaryen-archive/virtual/export.mli +0 -15
- binaryen-archive/virtual/expression.mli +93 -115
- binaryen-archive/virtual/function.mli +0 -12
- binaryen-archive/virtual/global.mli +0 -8
- binaryen-archive/virtual/import.mli +0 -4
- binaryen-archive/virtual/literal.mli +0 -5
- binaryen-archive/virtual/module.mli +4 -29
- binaryen-archive/virtual/op.mli +0 -315
- binaryen-archive/virtual/settings.mli +0 -17
- binaryen-archive/virtual/table.mli +0 -3
- binaryen-archive/virtual/type.mli +0 -11
- binaryen-archive/esy.lock/opam/uutf.1.0.2/opam +0 -40
- binaryen-archive/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch +0 -463
- binaryen-archive/js/postlude.js +0 -2
binaryen-archive/src/literal.ml
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
type t
|
|
2
2
|
|
|
3
3
|
external int32 : int32 -> t = "caml_binaryen_literal_int32"
|
|
4
|
-
|
|
5
4
|
external int64 : int64 -> t = "caml_binaryen_literal_int64"
|
|
6
|
-
|
|
7
5
|
external float32_bits : int32 -> t = "caml_binaryen_literal_float32_bits"
|
|
8
|
-
|
|
9
6
|
external float64_bits : int64 -> t = "caml_binaryen_literal_float64_bits"
|
|
10
7
|
|
|
11
8
|
let float32 n = float32_bits @@ Int32.bits_of_float n
|
binaryen-archive/src/module.ml
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
let _ = Callback.register "array_of_list" Array.of_list
|
|
2
|
-
|
|
3
2
|
let _ = Callback.register "array_length" Array.length
|
|
4
3
|
|
|
5
4
|
type t
|
|
@@ -53,28 +52,39 @@ module Feature = struct
|
|
|
53
52
|
|
|
54
53
|
let multivalue = multivalue ()
|
|
55
54
|
|
|
55
|
+
external gc : unit -> t = "caml_binaryen_feature_gc"
|
|
56
|
+
|
|
57
|
+
let gc = gc ()
|
|
58
|
+
|
|
59
|
+
external memory64 : unit -> t = "caml_binaryen_feature_memory64"
|
|
60
|
+
|
|
61
|
+
let memory64 = memory64 ()
|
|
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
|
+
external relaxed_simd : unit -> t = "caml_binaryen_feature_relaxed_simd"
|
|
69
|
+
|
|
70
|
+
let relaxed_simd = relaxed_simd ()
|
|
71
|
+
|
|
56
72
|
external all : unit -> t = "caml_binaryen_feature_all"
|
|
57
73
|
|
|
58
74
|
let all = all ()
|
|
59
75
|
end
|
|
60
76
|
|
|
61
77
|
external create : unit -> t = "caml_binaryen_module_create"
|
|
62
|
-
|
|
63
78
|
external dispose : t -> unit = "caml_binaryen_module_dispose"
|
|
64
79
|
|
|
65
80
|
external add_custom_section : t -> string -> string -> unit
|
|
66
81
|
= "caml_binaryen_add_custom_section"
|
|
67
82
|
|
|
68
83
|
external parse : string -> t = "caml_binaryen_module_parse"
|
|
69
|
-
|
|
70
84
|
external print : t -> unit = "caml_binaryen_module_print"
|
|
71
|
-
|
|
72
85
|
external print_asmjs : t -> unit = "caml_binaryen_module_print_asmjs"
|
|
73
|
-
|
|
74
86
|
external validate : t -> int = "caml_binaryen_module_validate"
|
|
75
|
-
|
|
76
87
|
external optimize : t -> unit = "caml_binaryen_module_optimize"
|
|
77
|
-
|
|
78
88
|
external get_features : t -> int = "caml_binaryen_module_get_features"
|
|
79
89
|
|
|
80
90
|
let get_features wasm_mod =
|
|
@@ -103,9 +113,7 @@ external write : t -> string option -> bytes * string option
|
|
|
103
113
|
= "caml_binaryen_module_write"
|
|
104
114
|
|
|
105
115
|
external write_text : t -> string = "caml_binaryen_module_write_text"
|
|
106
|
-
|
|
107
116
|
external read : bytes -> t = "caml_binaryen_module_read"
|
|
108
|
-
|
|
109
117
|
external interpret : t -> unit = "caml_binaryen_module_interpret"
|
|
110
118
|
|
|
111
119
|
external add_debug_info_filename : t -> string -> int
|
binaryen-archive/src/settings.ml
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
external get_optimize_level : unit -> int = "caml_binaryen_get_optimize_level"
|
|
2
|
-
|
|
3
2
|
external set_optimize_level : int -> unit = "caml_binaryen_set_optimize_level"
|
|
4
|
-
|
|
5
3
|
external get_shrink_level : unit -> int = "caml_binaryen_get_shrink_level"
|
|
6
|
-
|
|
7
4
|
external set_shrink_level : int -> unit = "caml_binaryen_set_shrink_level"
|
|
8
|
-
|
|
9
5
|
external get_debug_info : unit -> bool = "caml_binaryen_get_debug_info"
|
|
10
|
-
|
|
11
6
|
external set_debug_info : bool -> unit = "caml_binaryen_set_debug_info"
|
|
12
7
|
|
|
13
8
|
external get_low_memory_unused : unit -> bool
|
|
@@ -41,5 +36,4 @@ external set_one_caller_inline_max_size : int -> unit
|
|
|
41
36
|
= "caml_binaryen_set_one_caller_inline_max_size"
|
|
42
37
|
|
|
43
38
|
external set_colors_enabled : bool -> unit = "caml_binaryen_set_colors_enabled"
|
|
44
|
-
|
|
45
39
|
external are_colors_enabled : unit -> bool = "caml_binaryen_are_colors_enabled"
|
binaryen-archive/src/type.ml
CHANGED
|
@@ -8,7 +8,14 @@ let () =
|
|
|
8
8
|
match C.ocaml_config_var c "system" with
|
|
9
9
|
| Some "macosx" ->
|
|
10
10
|
(* These flags preserve the original C++ error behavior. Ref https://github.com/ocaml/ocaml/issues/10423 *)
|
|
11
|
-
[
|
|
11
|
+
[
|
|
12
|
+
"-cc";
|
|
13
|
+
"clang++";
|
|
14
|
+
"-cclib";
|
|
15
|
+
"-Wl,-keep_dwarf_unwind";
|
|
16
|
+
"-cclib";
|
|
17
|
+
"-Wl,-no_compact_unwind";
|
|
18
|
+
]
|
|
12
19
|
| Some _ -> default
|
|
13
20
|
| None -> default
|
|
14
21
|
in
|
binaryen-archive/test/test.ml
CHANGED
|
@@ -2,44 +2,29 @@ open Binaryen
|
|
|
2
2
|
|
|
3
3
|
(* Testing colors enable *)
|
|
4
4
|
let _ = assert (Settings.are_colors_enabled () == true)
|
|
5
|
-
|
|
6
5
|
let _ = Settings.set_colors_enabled false
|
|
7
|
-
|
|
8
6
|
let _ = assert (Settings.are_colors_enabled () == false)
|
|
9
|
-
|
|
10
7
|
let _ = Settings.set_colors_enabled true
|
|
11
8
|
|
|
12
9
|
(* Testing debug_info enable *)
|
|
13
10
|
let _ = assert (Settings.get_debug_info () == false)
|
|
14
|
-
|
|
15
11
|
let _ = Settings.set_debug_info true
|
|
16
|
-
|
|
17
12
|
let _ = assert (Settings.get_debug_info () == true)
|
|
18
|
-
|
|
19
13
|
let _ = Settings.set_debug_info false
|
|
20
14
|
|
|
21
15
|
(* Testing low_memory_unused enable *)
|
|
22
16
|
let _ = assert (Settings.get_low_memory_unused () == false)
|
|
23
|
-
|
|
24
17
|
let _ = Settings.set_low_memory_unused true
|
|
25
|
-
|
|
26
18
|
let _ = assert (Settings.get_low_memory_unused () == true)
|
|
27
|
-
|
|
28
19
|
let _ = Settings.set_low_memory_unused false
|
|
29
|
-
|
|
30
20
|
let wasm_mod = Module.create ()
|
|
31
|
-
|
|
32
21
|
let _ = Module.set_features wasm_mod [ Module.Feature.all ]
|
|
33
22
|
|
|
34
23
|
(* Create function type for i32 (i32, i32) *)
|
|
35
24
|
let params () = Type.create [| Type.int32; Type.int32 |]
|
|
36
|
-
|
|
37
25
|
let results = Type.int32
|
|
38
|
-
|
|
39
26
|
let x () = Expression.Local_get.make wasm_mod 0 Type.int32
|
|
40
|
-
|
|
41
27
|
let y () = Expression.Local_get.make wasm_mod 1 Type.int32
|
|
42
|
-
|
|
43
28
|
let load = Expression.Load.make wasm_mod 1 ~signed:true 0 0 Type.int32 (y ())
|
|
44
29
|
|
|
45
30
|
let select =
|
|
@@ -76,8 +61,31 @@ let start =
|
|
|
76
61
|
(Expression.Drop.make wasm_mod call_adder)
|
|
77
62
|
|
|
78
63
|
let _ = Export.add_function_export wasm_mod "adder" "adder"
|
|
79
|
-
|
|
80
64
|
let _ = Table.add_table wasm_mod "table" 1 1 Type.funcref
|
|
65
|
+
let funcref_expr1 = Expression.Ref.func wasm_mod "adder" Type.funcref
|
|
66
|
+
|
|
67
|
+
let _ =
|
|
68
|
+
Expression.Table.set wasm_mod "table"
|
|
69
|
+
(Expression.Const.make wasm_mod (Literal.int32 0l))
|
|
70
|
+
funcref_expr1
|
|
71
|
+
|
|
72
|
+
let funcref_expr2 =
|
|
73
|
+
Expression.Table.get wasm_mod "table"
|
|
74
|
+
(Expression.Const.make wasm_mod (Literal.int32 0l))
|
|
75
|
+
Type.funcref
|
|
76
|
+
|
|
77
|
+
let _ = Expression.print funcref_expr2
|
|
78
|
+
let table_size = Expression.Table.size wasm_mod "table"
|
|
79
|
+
let _ = Expression.print table_size
|
|
80
|
+
let table_name = Expression.Table_size.get_table table_size
|
|
81
|
+
let _ = Expression.Table_size.set_table table_size table_name
|
|
82
|
+
let null_ref = Expression.Ref.null wasm_mod Type.funcref
|
|
83
|
+
|
|
84
|
+
let table_grow =
|
|
85
|
+
Expression.Table.grow wasm_mod "table" null_ref
|
|
86
|
+
(Expression.Const.make wasm_mod (Literal.int32 0l))
|
|
87
|
+
|
|
88
|
+
let _ = Expression.print table_grow
|
|
81
89
|
|
|
82
90
|
let _ =
|
|
83
91
|
Global.add_global wasm_mod "max_int64" Type.int64 false
|
|
@@ -92,7 +100,6 @@ let _ =
|
|
|
92
100
|
(Expression.Const.make wasm_mod (Literal.int32 0l))
|
|
93
101
|
|
|
94
102
|
let _ = Function.set_start wasm_mod start
|
|
95
|
-
|
|
96
103
|
let _ = Memory.set_memory wasm_mod 1 Memory.unlimited "memory" [] false
|
|
97
104
|
|
|
98
105
|
(* Create an imported "write" function i32 (externref, i32, i32) *)
|
|
@@ -128,23 +135,38 @@ let _ = Module.print wasm_mod
|
|
|
128
135
|
(* 2. Optimize, then print the module *)
|
|
129
136
|
|
|
130
137
|
let _ = Module.optimize wasm_mod
|
|
131
|
-
|
|
132
138
|
let _ = Module.print wasm_mod
|
|
133
139
|
|
|
134
140
|
(* 3. Copy previous module bytes into new module, validate, and print *)
|
|
135
141
|
|
|
136
142
|
let byts, _ = Module.write wasm_mod None
|
|
137
|
-
|
|
138
143
|
let new_mod = Module.read byts
|
|
139
144
|
|
|
140
|
-
let _ =
|
|
145
|
+
let _ =
|
|
146
|
+
Module.set_features new_mod
|
|
147
|
+
[
|
|
148
|
+
Module.Feature.mvp;
|
|
149
|
+
Module.Feature.atomics;
|
|
150
|
+
Module.Feature.bulk_memory;
|
|
151
|
+
Module.Feature.mutable_globals;
|
|
152
|
+
Module.Feature.nontrapping_fp_to_int;
|
|
153
|
+
Module.Feature.sign_ext;
|
|
154
|
+
Module.Feature.simd128;
|
|
155
|
+
Module.Feature.exception_handling;
|
|
156
|
+
Module.Feature.tail_call;
|
|
157
|
+
Module.Feature.reference_types;
|
|
158
|
+
Module.Feature.multivalue;
|
|
159
|
+
Module.Feature.gc;
|
|
160
|
+
Module.Feature.memory64;
|
|
161
|
+
Module.Feature.typed_function_references;
|
|
162
|
+
Module.Feature.relaxed_simd;
|
|
163
|
+
Module.Feature.all;
|
|
164
|
+
]
|
|
141
165
|
|
|
142
166
|
let _ = Module.validate new_mod
|
|
143
|
-
|
|
144
167
|
let _ = Module.print new_mod
|
|
145
168
|
|
|
146
169
|
(* Dispose the modules 👋 *)
|
|
147
170
|
|
|
148
171
|
let _ = Module.dispose wasm_mod
|
|
149
|
-
|
|
150
172
|
let _ = Module.dispose new_mod
|
|
@@ -1,33 +1,18 @@
|
|
|
1
1
|
type t
|
|
2
2
|
|
|
3
3
|
val add_function_export : Module.t -> string -> string -> t
|
|
4
|
-
|
|
5
4
|
val add_table_export : Module.t -> string -> string -> t
|
|
6
|
-
|
|
7
5
|
val add_memory_export : Module.t -> string -> string -> t
|
|
8
|
-
|
|
9
6
|
val add_global_export : Module.t -> string -> string -> t
|
|
10
|
-
|
|
11
7
|
val get_export : Module.t -> string -> t
|
|
12
|
-
|
|
13
8
|
val remove_export : Module.t -> string -> unit
|
|
14
|
-
|
|
15
9
|
val get_num_exports : Module.t -> int
|
|
16
|
-
|
|
17
10
|
val get_export_by_index : Module.t -> int -> t
|
|
18
|
-
|
|
19
11
|
val get_name : t -> string
|
|
20
|
-
|
|
21
12
|
val get_value : t -> string
|
|
22
|
-
|
|
23
13
|
val external_function : int
|
|
24
|
-
|
|
25
14
|
val external_table : int
|
|
26
|
-
|
|
27
15
|
val external_memory : int
|
|
28
|
-
|
|
29
16
|
val external_global : int
|
|
30
|
-
|
|
31
17
|
val external_tag : int
|
|
32
|
-
|
|
33
18
|
val export_get_kind : t -> int
|