@grain/binaryen.ml 0.21.0 → 0.23.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.
Files changed (44) hide show
  1. binaryen-archive/CHANGELOG.md +59 -0
  2. binaryen-archive/binaryen.opam +2 -2
  3. binaryen-archive/esy.lock/index.json +261 -258
  4. binaryen-archive/esy.lock/opam/{base.v0.16.1 → base.v0.16.3}/opam +3 -3
  5. binaryen-archive/esy.lock/opam/{chrome-trace.3.9.0 → chrome-trace.3.10.0}/opam +5 -4
  6. binaryen-archive/esy.lock/opam/{dune-build-info.3.9.0 → dune-build-info.3.10.0}/opam +5 -4
  7. binaryen-archive/esy.lock/opam/{dune-configurator.3.9.0 → dune-configurator.3.10.0}/opam +5 -4
  8. binaryen-archive/esy.lock/opam/{dune-rpc.3.9.0 → dune-rpc.3.10.0}/opam +5 -4
  9. binaryen-archive/esy.lock/opam/{dune.3.9.0 → dune.3.10.0}/opam +5 -4
  10. binaryen-archive/esy.lock/opam/{dyn.3.9.0 → dyn.3.10.0}/opam +5 -4
  11. binaryen-archive/esy.lock/opam/{js_of_ocaml-compiler.5.3.0 → js_of_ocaml-compiler.5.4.0}/opam +5 -5
  12. binaryen-archive/esy.lock/opam/{ocamlformat-rpc-lib.0.25.1 → ocamlformat-rpc-lib.0.26.1}/opam +16 -6
  13. binaryen-archive/esy.lock/opam/{ordering.3.9.0 → ordering.3.10.0}/opam +5 -4
  14. binaryen-archive/esy.lock/opam/{pp.1.1.2 → pp.1.2.0}/opam +7 -6
  15. binaryen-archive/esy.lock/opam/{re.1.10.4 → re.1.11.0}/opam +5 -5
  16. binaryen-archive/esy.lock/opam/{stdune.3.9.0 → stdune.3.10.0}/opam +5 -4
  17. binaryen-archive/esy.lock/opam/{uucp.15.0.0 → uucp.15.1.0}/opam +10 -14
  18. binaryen-archive/esy.lock/opam/{uuseg.15.0.0 → uuseg.15.1.0}/opam +9 -11
  19. binaryen-archive/esy.lock/opam/{xdg.3.9.0 → xdg.3.10.0}/opam +5 -4
  20. binaryen-archive/package.json +2 -2
  21. binaryen-archive/src/dune +1 -3
  22. binaryen-archive/src/expression.c +42 -24
  23. binaryen-archive/src/expression.js +35 -16
  24. binaryen-archive/src/expression.ml +39 -11
  25. binaryen-archive/src/expression.mli +10 -2
  26. binaryen-archive/src/heap_type.c +2 -2
  27. binaryen-archive/src/heap_type.js +3 -3
  28. binaryen-archive/src/heap_type.ml +1 -1
  29. binaryen-archive/src/heap_type.mli +1 -1
  30. binaryen-archive/src/op.c +116 -95
  31. binaryen-archive/src/op.js +102 -84
  32. binaryen-archive/src/op.ml +152 -35
  33. binaryen-archive/src/op.mli +48 -45
  34. binaryen-archive/src/passes.ml +17 -1
  35. binaryen-archive/src/passes.mli +15 -0
  36. binaryen-archive/src/type.c +2 -2
  37. binaryen-archive/src/type.js +3 -3
  38. binaryen-archive/src/type.ml +2 -2
  39. binaryen-archive/src/type.mli +1 -1
  40. binaryen-archive/test/test.expected +26 -26
  41. binaryen-archive/src/type_system.c +0 -40
  42. binaryen-archive/src/type_system.js +0 -29
  43. binaryen-archive/src/type_system.ml +0 -7
  44. binaryen-archive/src/type_system.mli +0 -7
@@ -457,7 +457,7 @@ function caml_binaryen_memory_init(
457
457
  memoryName
458
458
  ) {
459
459
  return wasm_mod.memory.init(
460
- segment,
460
+ caml_jsstring_of_string(segment),
461
461
  dest,
462
462
  offset,
463
463
  size,
@@ -478,8 +478,9 @@ function caml_binaryen_memory_init__bytecode() {
478
478
  }
479
479
 
480
480
  //Provides: caml_binaryen_data_drop
481
+ //Requires: caml_jsstring_of_string
481
482
  function caml_binaryen_data_drop(wasm_mod, segment) {
482
- return wasm_mod.data.drop(segment);
483
+ return wasm_mod.data.drop(caml_jsstring_of_string(segment));
483
484
  }
484
485
 
485
486
  //Provides: caml_binaryen_memory_copy
@@ -541,6 +542,20 @@ function caml_binaryen_pop(wasm_mod, typ) {
541
542
  return Binaryen._BinaryenPop(wasm_mod, typ);
542
543
  }
543
544
 
545
+ //Provides: caml_binaryen_i31_new
546
+ function caml_binaryen_i31_new(wasm_mod, typ) {
547
+ return wasm_mod.i31.new(typ);
548
+ }
549
+
550
+ //Provides: caml_binaryen_i31_get
551
+ function caml_binaryen_i31_get(wasm_mod, typ, signed) {
552
+ if (signed) {
553
+ return wasm_mod.i31.get_s(typ);
554
+ } else {
555
+ return wasm_mod.i31.get_u(typ);
556
+ }
557
+ }
558
+
544
559
  //Provides: caml_binaryen_expression_id_invalid
545
560
  //Requires: Binaryen
546
561
  function caml_binaryen_expression_id_invalid() {
@@ -752,10 +767,10 @@ function caml_binaryen_expression_id_pop() {
752
767
  function caml_binaryen_expression_id_ref_null() {
753
768
  return Binaryen.RefNullId;
754
769
  }
755
- //Provides: caml_binaryen_expression_id_ref_is
770
+ //Provides: caml_binaryen_expression_id_ref_is_null
756
771
  //Requires: Binaryen
757
- function caml_binaryen_expression_id_ref_is() {
758
- return Binaryen.RefIsId;
772
+ function caml_binaryen_expression_id_ref_is_null() {
773
+ return Binaryen.RefIsNullId;
759
774
  }
760
775
  //Provides: caml_binaryen_expression_id_ref_as
761
776
  //Requires: Binaryen
@@ -1479,14 +1494,16 @@ function caml_binaryen_return_set_value(exp, value) {
1479
1494
 
1480
1495
  //Provides: caml_binaryen_memory_init_get_segment
1481
1496
  //Requires: Binaryen
1482
- function caml_binaryen_memory_init_get_segment(exp) {
1483
- return Binaryen.MemoryInit.getSegment(exp);
1497
+ //Requires: caml_string_of_jsstring
1498
+ function caml_binaryen_memory_init_get_segment(expr) {
1499
+ return caml_string_of_jsstring(Binaryen.MemoryInit.getSegment(expr));
1484
1500
  }
1485
1501
 
1486
1502
  //Provides: caml_binaryen_memory_init_set_segment
1487
1503
  //Requires: Binaryen
1488
- function caml_binaryen_memory_init_set_segment(exp, value) {
1489
- return Binaryen.MemoryInit.setSegment(exp, value);
1504
+ //Requires: caml_jsstring_of_string
1505
+ function caml_binaryen_memory_init_set_segment(expr, segment) {
1506
+ return Binaryen.MemoryInit.setSegment(expr, caml_jsstring_of_string(segment));
1490
1507
  }
1491
1508
 
1492
1509
  //Provides: caml_binaryen_memory_init_get_dest
@@ -1527,14 +1544,16 @@ function caml_binaryen_memory_init_set_size(exp, value) {
1527
1544
 
1528
1545
  //Provides: caml_binaryen_data_drop_get_segment
1529
1546
  //Requires: Binaryen
1530
- function caml_binaryen_data_drop_get_segment(exp) {
1531
- return Binaryen.DataDrop.getSegment(exp);
1547
+ //Requires: caml_string_of_jsstring
1548
+ function caml_binaryen_data_drop_get_segment(expr) {
1549
+ return caml_string_of_jsstring(Binaryen.DataDrop.getSegment(expr));
1532
1550
  }
1533
1551
 
1534
1552
  //Provides: caml_binaryen_data_drop_set_segment
1535
1553
  //Requires: Binaryen
1536
- function caml_binaryen_data_drop_set_segment(exp, value) {
1537
- return Binaryen.DataDrop.setSegment(exp, value);
1554
+ //Requires: caml_jsstring_of_string
1555
+ function caml_binaryen_data_drop_set_segment(expr, segment) {
1556
+ return Binaryen.DataDrop.setSegment(expr, caml_jsstring_of_string(segment));
1538
1557
  }
1539
1558
 
1540
1559
  //Provides: caml_binaryen_memory_copy_get_dest
@@ -1664,10 +1683,10 @@ function caml_binaryen_ref_null(wasm_mod, typ) {
1664
1683
  return wasm_mod.ref.null(typ);
1665
1684
  }
1666
1685
 
1667
- //Provides: caml_binaryen_ref_is
1686
+ //Provides: caml_binaryen_ref_is_null
1668
1687
  //Requires: Binaryen
1669
- function caml_binaryen_ref_is(wasm_mod, op, value) {
1670
- return Binaryen._BinaryenRefIs(wasm_mod, op, value);
1688
+ function caml_binaryen_ref_is_null(wasm_mod, value) {
1689
+ return Binaryen.ExpressionIds.RefIsNull(wasm_mod, value);
1671
1690
  }
1672
1691
 
1673
1692
  //Provides: caml_binaryen_ref_as
@@ -251,9 +251,10 @@ external id_ref_null : unit -> int = "caml_binaryen_expression_id_ref_null"
251
251
 
252
252
  let id_ref_null = id_ref_null ()
253
253
 
254
- external id_ref_is : unit -> int = "caml_binaryen_expression_id_ref_is"
254
+ external id_ref_is_null : unit -> int
255
+ = "caml_binaryen_expression_id_ref_is_null"
255
256
 
256
- let id_ref_is = id_ref_is ()
257
+ let id_ref_is_null = id_ref_is_null ()
257
258
 
258
259
  external id_ref_func : unit -> int = "caml_binaryen_expression_id_ref_func"
259
260
 
@@ -385,7 +386,7 @@ let get_kind expr =
385
386
  | n when n = id_unreachable -> Unreachable
386
387
  | n when n = id_pop -> Pop
387
388
  | n when n = id_ref_null -> RefNull
388
- | n when n = id_ref_is -> RefIs
389
+ | n when n = id_ref_is_null -> RefIs
389
390
  | n when n = id_ref_func -> RefFunc
390
391
  | n when n = id_ref_eq -> RefEq
391
392
  | n when n = id_try -> Try
@@ -702,15 +703,25 @@ module Memory_grow = struct
702
703
  end
703
704
 
704
705
  module Memory_init = struct
705
- external make : Module.t -> int -> t -> t -> t -> string -> t
706
+ external make : Module.t -> string -> t -> t -> t -> string -> t
706
707
  = "caml_binaryen_memory_init__bytecode" "caml_binaryen_memory_init"
707
708
  (** Module, segment, destination, offset, size, memory_name *)
708
709
 
709
- external get_segment : t -> int = "caml_binaryen_memory_init_get_segment"
710
+ (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
711
+ let make wasm_mod segment dest offset size memory_name =
712
+ make wasm_mod (string_of_int segment) dest offset size memory_name
710
713
 
711
- external set_segment : t -> int -> unit
714
+ external get_segment : t -> string = "caml_binaryen_memory_init_get_segment"
715
+
716
+ (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
717
+ let get_segment expr = int_of_string (get_segment expr)
718
+
719
+ external set_segment : t -> string -> unit
712
720
  = "caml_binaryen_memory_init_set_segment"
713
721
 
722
+ (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
723
+ let set_segment expr segment = set_segment expr (string_of_int segment)
724
+
714
725
  external get_dest : t -> t = "caml_binaryen_memory_init_get_dest"
715
726
  external set_dest : t -> t -> unit = "caml_binaryen_memory_init_set_dest"
716
727
  external get_offset : t -> t = "caml_binaryen_memory_init_get_offset"
@@ -720,13 +731,22 @@ module Memory_init = struct
720
731
  end
721
732
 
722
733
  module Data_drop = struct
723
- external make : Module.t -> int -> t = "caml_binaryen_data_drop"
734
+ external make : Module.t -> string -> t = "caml_binaryen_data_drop"
724
735
  (** Module, segment. *)
725
736
 
726
- external get_segment : t -> int = "caml_binaryen_data_drop_get_segment"
737
+ (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
738
+ let make wasm_mod segment = make wasm_mod (string_of_int segment)
739
+
740
+ external get_segment : t -> string = "caml_binaryen_data_drop_get_segment"
741
+
742
+ (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
743
+ let get_segment expr = int_of_string (get_segment expr)
727
744
 
728
- external set_segment : t -> int -> unit
745
+ external set_segment : t -> string -> unit
729
746
  = "caml_binaryen_data_drop_set_segment"
747
+
748
+ (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
749
+ let set_segment expr segment = set_segment expr (string_of_int segment)
730
750
  end
731
751
 
732
752
  module Memory_copy = struct
@@ -799,6 +819,14 @@ module Pop = struct
799
819
  (** Module, type *)
800
820
  end
801
821
 
822
+ module I31 = struct
823
+ external make : Module.t -> t -> t = "caml_binaryen_i31_new"
824
+ (** Module, value *)
825
+
826
+ external get : Module.t -> t -> bool -> t = "caml_binaryen_i31_get"
827
+ (** Module, i31, is_signed *)
828
+ end
829
+
802
830
  module Null = struct
803
831
  external make : unit -> t = "caml_binaryen_null_expression"
804
832
  (** A null reference. *)
@@ -808,8 +836,8 @@ module Ref = struct
808
836
  external null : Module.t -> Type.t -> t = "caml_binaryen_ref_null"
809
837
  (** Module, type *)
810
838
 
811
- external is : Module.t -> Op.t -> t -> t = "caml_binaryen_ref_is"
812
- (** Module, op, value *)
839
+ external is_null : Module.t -> t -> t = "caml_binaryen_ref_is_null"
840
+ (** Module, value *)
813
841
 
814
842
  external as_ : Module.t -> Op.t -> t -> t = "caml_binaryen_ref_as"
815
843
  (** Module, op, value *)
@@ -321,6 +321,14 @@ module Pop : sig
321
321
  val make : Module.t -> Type.t -> t
322
322
  end
323
323
 
324
+ module I31 : sig
325
+ val make : Module.t -> t -> t
326
+ (** Module, value *)
327
+
328
+ val get : Module.t -> t -> bool -> t
329
+ (** Module, i31, is_signed *)
330
+ end
331
+
324
332
  module Null : sig
325
333
  val make : unit -> t
326
334
  end
@@ -329,8 +337,8 @@ module Ref : sig
329
337
  val null : Module.t -> Type.t -> t
330
338
  (** Module, type *)
331
339
 
332
- val is : Module.t -> Op.t -> t -> t
333
- (** Module, op, value *)
340
+ val is_null : Module.t -> t -> t
341
+ (** Module, value *)
334
342
 
335
343
  val as_ : Module.t -> Op.t -> t -> t
336
344
  (** Module, op, value *)
@@ -43,9 +43,9 @@ caml_binaryen_heap_type_i31(value unit) {
43
43
  }
44
44
 
45
45
  CAMLprim value
46
- caml_binaryen_heap_type_data(value unit) {
46
+ caml_binaryen_heap_type_struct(value unit) {
47
47
  CAMLparam1(unit);
48
- BinaryenHeapType ty = BinaryenHeapTypeData();
48
+ BinaryenHeapType ty = BinaryenHeapTypeStruct();
49
49
  CAMLreturn(alloc_BinaryenHeapType(ty));
50
50
  }
51
51
 
@@ -28,10 +28,10 @@ function caml_binaryen_heap_type_i31() {
28
28
  return Binaryen._BinaryenHeapTypeI31();
29
29
  }
30
30
 
31
- //Provides: caml_binaryen_heap_type_data
31
+ //Provides: caml_binaryen_heap_type_struct
32
32
  //Requires: Binaryen
33
- function caml_binaryen_heap_type_data() {
34
- return Binaryen._BinaryenHeapTypeData();
33
+ function caml_binaryen_heap_type_struct() {
34
+ return Binaryen._BinaryenHeapTypeStruct();
35
35
  }
36
36
 
37
37
  //Provides: caml_binaryen_heap_type_array
@@ -5,7 +5,7 @@ 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 data : unit -> t = "caml_binaryen_heap_type_data"
8
+ external struct_ : unit -> t = "caml_binaryen_heap_type_struct"
9
9
  external array : unit -> t = "caml_binaryen_heap_type_array"
10
10
  external string : unit -> t = "caml_binaryen_heap_type_string"
11
11
  external stringview_wtf8 : unit -> t = "caml_binaryen_heap_type_stringview_wtf8"
@@ -5,7 +5,7 @@ val func : unit -> t
5
5
  val any : unit -> t
6
6
  val eq : unit -> t
7
7
  val i31 : unit -> t
8
- val data : unit -> t
8
+ val struct_ : unit -> t
9
9
  val array : unit -> t
10
10
  val string : unit -> t
11
11
  val stringview_wtf8 : unit -> t
binaryen-archive/src/op.c CHANGED
@@ -1476,6 +1476,83 @@ caml_binaryen_bitselect_vec128(value unit) {
1476
1476
  CAMLreturn(alloc_BinaryenOp(op));
1477
1477
  }
1478
1478
 
1479
+ CAMLprim value
1480
+ caml_binaryen_relaxed_fma_vec_f32x4(value unit) {
1481
+ CAMLparam1(unit);
1482
+ BinaryenOp op = BinaryenRelaxedFmaVecF32x4();
1483
+ CAMLreturn(alloc_BinaryenOp(op));
1484
+ }
1485
+
1486
+ CAMLprim value
1487
+ caml_binaryen_relaxed_fms_vec_f32x4(value unit) {
1488
+ CAMLparam1(unit);
1489
+ BinaryenOp op = BinaryenRelaxedFmsVecF32x4();
1490
+ CAMLreturn(alloc_BinaryenOp(op));
1491
+ }
1492
+
1493
+ CAMLprim value
1494
+ caml_binaryen_relaxed_fma_vec_f64x4(value unit) {
1495
+ CAMLparam1(unit);
1496
+ BinaryenOp op = BinaryenRelaxedFmaVecF64x2();
1497
+ CAMLreturn(alloc_BinaryenOp(op));
1498
+ }
1499
+
1500
+ CAMLprim value
1501
+ caml_binaryen_relaxed_fms_vec_f64x4(value unit) {
1502
+ CAMLparam1(unit);
1503
+ BinaryenOp op = BinaryenRelaxedFmsVecF64x2();
1504
+ CAMLreturn(alloc_BinaryenOp(op));
1505
+ }
1506
+
1507
+ CAMLprim value
1508
+ caml_binaryen_laneselect_i8x16(value unit) {
1509
+ CAMLparam1(unit);
1510
+ BinaryenOp op = BinaryenLaneselectI8x16();
1511
+ CAMLreturn(alloc_BinaryenOp(op));
1512
+ }
1513
+
1514
+ CAMLprim value
1515
+ caml_binaryen_laneselect_i16x8(value unit) {
1516
+ CAMLparam1(unit);
1517
+ BinaryenOp op = BinaryenLaneselectI16x8();
1518
+ CAMLreturn(alloc_BinaryenOp(op));
1519
+ }
1520
+
1521
+ CAMLprim value
1522
+ caml_binaryen_laneselect_i32x4(value unit) {
1523
+ CAMLparam1(unit);
1524
+ BinaryenOp op = BinaryenLaneselectI32x4();
1525
+ CAMLreturn(alloc_BinaryenOp(op));
1526
+ }
1527
+
1528
+ CAMLprim value
1529
+ caml_binaryen_laneselect_i64x2(value unit) {
1530
+ CAMLparam1(unit);
1531
+ BinaryenOp op = BinaryenLaneselectI64x2();
1532
+ CAMLreturn(alloc_BinaryenOp(op));
1533
+ }
1534
+
1535
+ CAMLprim value
1536
+ caml_binaryen_dot_i8x16_i7x16_add_s_to_vec_i32x4(value unit) {
1537
+ CAMLparam1(unit);
1538
+ BinaryenOp op = BinaryenDotI8x16I7x16AddSToVecI32x4();
1539
+ CAMLreturn(alloc_BinaryenOp(op));
1540
+ }
1541
+
1542
+ CAMLprim value
1543
+ caml_binaryen_any_true_vec128(value unit) {
1544
+ CAMLparam1(unit);
1545
+ BinaryenOp op = BinaryenAnyTrueVec128();
1546
+ CAMLreturn(alloc_BinaryenOp(op));
1547
+ }
1548
+
1549
+ CAMLprim value
1550
+ caml_binaryen_popcnt_vec_i8x16(value unit) {
1551
+ CAMLparam1(unit);
1552
+ BinaryenOp op = BinaryenPopcntVecI8x16();
1553
+ CAMLreturn(alloc_BinaryenOp(op));
1554
+ }
1555
+
1479
1556
  CAMLprim value
1480
1557
  caml_binaryen_abs_vec_i8x16(value unit) {
1481
1558
  CAMLparam1(unit);
@@ -2162,34 +2239,6 @@ caml_binaryen_swizzle_vec8x16(value unit) {
2162
2239
  CAMLreturn(alloc_BinaryenOp(op));
2163
2240
  }
2164
2241
 
2165
- CAMLprim value
2166
- caml_binaryen_ref_is_null(value unit) {
2167
- CAMLparam1(unit);
2168
- BinaryenOp op = BinaryenRefIsNull();
2169
- CAMLreturn(alloc_BinaryenOp(op));
2170
- }
2171
-
2172
- CAMLprim value
2173
- caml_binaryen_ref_is_func(value unit) {
2174
- CAMLparam1(unit);
2175
- BinaryenOp op = BinaryenRefIsFunc();
2176
- CAMLreturn(alloc_BinaryenOp(op));
2177
- }
2178
-
2179
- CAMLprim value
2180
- caml_binaryen_ref_is_data(value unit) {
2181
- CAMLparam1(unit);
2182
- BinaryenOp op = BinaryenRefIsData();
2183
- CAMLreturn(alloc_BinaryenOp(op));
2184
- }
2185
-
2186
- CAMLprim value
2187
- caml_binaryen_ref_is_i31(value unit) {
2188
- CAMLparam1(unit);
2189
- BinaryenOp op = BinaryenRefIsI31();
2190
- CAMLreturn(alloc_BinaryenOp(op));
2191
- }
2192
-
2193
2242
  CAMLprim value
2194
2243
  caml_binaryen_ref_as_non_null(value unit) {
2195
2244
  CAMLparam1(unit);
@@ -2197,27 +2246,6 @@ caml_binaryen_ref_as_non_null(value unit) {
2197
2246
  CAMLreturn(alloc_BinaryenOp(op));
2198
2247
  }
2199
2248
 
2200
- CAMLprim value
2201
- caml_binaryen_ref_as_func(value unit) {
2202
- CAMLparam1(unit);
2203
- BinaryenOp op = BinaryenRefAsFunc();
2204
- CAMLreturn(alloc_BinaryenOp(op));
2205
- }
2206
-
2207
- CAMLprim value
2208
- caml_binaryen_ref_as_data(value unit) {
2209
- CAMLparam1(unit);
2210
- BinaryenOp op = BinaryenRefAsData();
2211
- CAMLreturn(alloc_BinaryenOp(op));
2212
- }
2213
-
2214
- CAMLprim value
2215
- caml_binaryen_ref_as_i31(value unit) {
2216
- CAMLparam1(unit);
2217
- BinaryenOp op = BinaryenRefAsI31();
2218
- CAMLreturn(alloc_BinaryenOp(op));
2219
- }
2220
-
2221
2249
  CAMLprim value
2222
2250
  caml_binaryen_ref_as_extern_internalize(value unit) {
2223
2251
  CAMLparam1(unit);
@@ -2260,48 +2288,6 @@ caml_binaryen_br_on_cast_fail(value unit) {
2260
2288
  CAMLreturn(alloc_BinaryenOp(op));
2261
2289
  }
2262
2290
 
2263
- CAMLprim value
2264
- caml_binaryen_br_on_func(value unit) {
2265
- CAMLparam1(unit);
2266
- BinaryenOp op = BinaryenBrOnFunc();
2267
- CAMLreturn(alloc_BinaryenOp(op));
2268
- }
2269
-
2270
- CAMLprim value
2271
- caml_binaryen_br_on_non_func(value unit) {
2272
- CAMLparam1(unit);
2273
- BinaryenOp op = BinaryenBrOnNonFunc();
2274
- CAMLreturn(alloc_BinaryenOp(op));
2275
- }
2276
-
2277
- CAMLprim value
2278
- caml_binaryen_br_on_data(value unit) {
2279
- CAMLparam1(unit);
2280
- BinaryenOp op = BinaryenBrOnData();
2281
- CAMLreturn(alloc_BinaryenOp(op));
2282
- }
2283
-
2284
- CAMLprim value
2285
- caml_binaryen_br_on_non_data(value unit) {
2286
- CAMLparam1(unit);
2287
- BinaryenOp op = BinaryenBrOnNonData();
2288
- CAMLreturn(alloc_BinaryenOp(op));
2289
- }
2290
-
2291
- CAMLprim value
2292
- caml_binaryen_br_on_i31(value unit) {
2293
- CAMLparam1(unit);
2294
- BinaryenOp op = BinaryenBrOnI31();
2295
- CAMLreturn(alloc_BinaryenOp(op));
2296
- }
2297
-
2298
- CAMLprim value
2299
- caml_binaryen_br_on_non_i31(value unit) {
2300
- CAMLparam1(unit);
2301
- BinaryenOp op = BinaryenBrOnNonI31();
2302
- CAMLreturn(alloc_BinaryenOp(op));
2303
- }
2304
-
2305
2291
  CAMLprim value
2306
2292
  caml_binaryen_string_new_utf8(value unit) {
2307
2293
  CAMLparam1(unit);
@@ -2317,9 +2303,9 @@ caml_binaryen_string_new_wtf8(value unit) {
2317
2303
  }
2318
2304
 
2319
2305
  CAMLprim value
2320
- caml_binaryen_string_new_replace(value unit) {
2306
+ caml_binaryen_string_new_lossy_utf8(value unit) {
2321
2307
  CAMLparam1(unit);
2322
- BinaryenOp op = BinaryenStringNewReplace();
2308
+ BinaryenOp op = BinaryenStringNewLossyUTF8();
2323
2309
  CAMLreturn(alloc_BinaryenOp(op));
2324
2310
  }
2325
2311
 
@@ -2345,9 +2331,9 @@ caml_binaryen_string_new_wtf8_array(value unit) {
2345
2331
  }
2346
2332
 
2347
2333
  CAMLprim value
2348
- caml_binaryen_string_new_replace_array(value unit) {
2334
+ caml_binaryen_string_new_lossy_utf8_array(value unit) {
2349
2335
  CAMLparam1(unit);
2350
- BinaryenOp op = BinaryenStringNewReplaceArray();
2336
+ BinaryenOp op = BinaryenStringNewLossyUTF8Array();
2351
2337
  CAMLreturn(alloc_BinaryenOp(op));
2352
2338
  }
2353
2339
 
@@ -2358,6 +2344,13 @@ caml_binaryen_string_new_wtf16_array(value unit) {
2358
2344
  CAMLreturn(alloc_BinaryenOp(op));
2359
2345
  }
2360
2346
 
2347
+ CAMLprim value
2348
+ caml_binaryen_string_new_from_code_point(value unit) {
2349
+ CAMLparam1(unit);
2350
+ BinaryenOp op = BinaryenStringNewFromCodePoint();
2351
+ CAMLreturn(alloc_BinaryenOp(op));
2352
+ }
2353
+
2361
2354
  CAMLprim value
2362
2355
  caml_binaryen_string_measure_utf8(value unit) {
2363
2356
  CAMLparam1(unit);
@@ -2400,6 +2393,13 @@ caml_binaryen_string_encode_utf8(value unit) {
2400
2393
  CAMLreturn(alloc_BinaryenOp(op));
2401
2394
  }
2402
2395
 
2396
+ CAMLprim value
2397
+ caml_binaryen_string_encode_lossy_utf8(value unit) {
2398
+ CAMLparam1(unit);
2399
+ BinaryenOp op = BinaryenStringEncodeLossyUTF8();
2400
+ CAMLreturn(alloc_BinaryenOp(op));
2401
+ }
2402
+
2403
2403
  CAMLprim value
2404
2404
  caml_binaryen_string_encode_wtf8(value unit) {
2405
2405
  CAMLparam1(unit);
@@ -2421,6 +2421,13 @@ caml_binaryen_string_encode_utf8_array(value unit) {
2421
2421
  CAMLreturn(alloc_BinaryenOp(op));
2422
2422
  }
2423
2423
 
2424
+ CAMLprim value
2425
+ caml_binaryen_string_encode_lossy_utf8_array(value unit) {
2426
+ CAMLparam1(unit);
2427
+ BinaryenOp op = BinaryenStringEncodeLossyUTF8Array();
2428
+ CAMLreturn(alloc_BinaryenOp(op));
2429
+ }
2430
+
2424
2431
  CAMLprim value
2425
2432
  caml_binaryen_string_encode_wtf8_array(value unit) {
2426
2433
  CAMLparam1(unit);
@@ -2483,3 +2490,17 @@ caml_binaryen_string_slice_wtf16(value unit) {
2483
2490
  BinaryenOp op = BinaryenStringSliceWTF16();
2484
2491
  CAMLreturn(alloc_BinaryenOp(op));
2485
2492
  }
2493
+
2494
+ CAMLprim value
2495
+ caml_binaryen_string_eq_equal(value unit) {
2496
+ CAMLparam1(unit);
2497
+ BinaryenOp op = BinaryenStringEqEqual();
2498
+ CAMLreturn(alloc_BinaryenOp(op));
2499
+ }
2500
+
2501
+ CAMLprim value
2502
+ caml_binaryen_string_eq_compare(value unit) {
2503
+ CAMLparam1(unit);
2504
+ BinaryenOp op = BinaryenStringEqCompare();
2505
+ CAMLreturn(alloc_BinaryenOp(op));
2506
+ }