aboutsummaryrefslogtreecommitdiff
path: root/dev/vm_printers.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2020-07-06 16:18:33 +0200
committerPierre-Marie Pédrot2020-07-06 16:18:33 +0200
commit8907a5b7d2b91bff0b573956a05e4679b5238161 (patch)
tree2fff532e687a8e82543044352aeaf3168434aac1 /dev/vm_printers.ml
parent3244b9c6e4159042bae0cd2ad48aba77928d7b2d (diff)
parent0ea2d0ff4ed84e1cc544c958b8f6e98f6ba2e9b6 (diff)
Merge PR #11604: Primitive persistent arrays
Ack-by: JasonGross Ack-by: SkySkimmer Ack-by: ejgallego Ack-by: gares Reviewed-by: ppedrot Ack-by: proux01 Ack-by: silene
Diffstat (limited to 'dev/vm_printers.ml')
-rw-r--r--dev/vm_printers.ml17
1 files changed, 17 insertions, 0 deletions
diff --git a/dev/vm_printers.ml b/dev/vm_printers.ml
index 73cf1b0195..aa650fbdc8 100644
--- a/dev/vm_printers.ml
+++ b/dev/vm_printers.ml
@@ -17,6 +17,8 @@ let ppripos (ri,pos) =
print_string ("getglob "^(Constant.to_string kn)^"\n")
| Reloc_proj_name p ->
print_string ("proj "^(Projection.Repr.to_string p)^"\n")
+ | Reloc_caml_prim op ->
+ print_string ("caml primitive "^CPrimitives.to_string op)
);
print_flush ()
@@ -85,6 +87,7 @@ and ppwhd whd =
| Vconstr_block b -> ppvblock b
| Vint64 i -> printf "int64(%LiL)" i
| Vfloat64 f -> printf "float64(%.17g)" f
+ | Varray t -> ppvarray t
| Vatom_stk(a,s) ->
open_hbox();ppatom a;close_box();
print_string"@";ppstack s
@@ -100,6 +103,20 @@ and ppvblock b =
print_string")";
close_box()
+and ppvarray t =
+ let length = Parray.length_int t in
+ open_hbox();
+ print_string "[|";
+ for i = 0 to length - 2 do
+ ppvalues (Parray.get t (Uint63.of_int i));
+ print_string "; "
+ done;
+ ppvalues (Parray.get t (Uint63.of_int (length - 1)));
+ print_string " | ";
+ ppvalues (Parray.default t);
+ print_string " |]";
+ close_box()
+
and ppvalues v =
open_hovbox 0;ppwhd (whd_val v);close_box();
print_flush()