summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ocaml_backend.ml1
-rw-r--r--src/rewrites.ml8
-rw-r--r--src/sail.ml7
-rw-r--r--src/type_check.ml1
4 files changed, 8 insertions, 9 deletions
diff --git a/src/ocaml_backend.ml b/src/ocaml_backend.ml
index 31c3e093..3f34c422 100644
--- a/src/ocaml_backend.ml
+++ b/src/ocaml_backend.ml
@@ -128,6 +128,7 @@ let ocaml_typ_id ctx = function
| id when Id.compare id (mk_id "list") = 0 -> string "list"
| id when Id.compare id (mk_id "bit") = 0 -> string "bit"
| id when Id.compare id (mk_id "int") = 0 -> string "Big_int.num"
+ | id when Id.compare id (mk_id "implicit") = 0 -> string "Big_int.num"
| id when Id.compare id (mk_id "nat") = 0 -> string "Big_int.num"
| id when Id.compare id (mk_id "bool") = 0 -> string "bool"
| id when Id.compare id (mk_id "unit") = 0 -> string "unit"
diff --git a/src/rewrites.ml b/src/rewrites.ml
index 19294698..4b147aee 100644
--- a/src/rewrites.ml
+++ b/src/rewrites.ml
@@ -5147,9 +5147,6 @@ let rewrite_defs_ocaml = [
("remove_numeral_pats", rewrite_defs_remove_numeral_pats);
("exp_lift_assign", rewrite_defs_exp_lift_assign);
("top_sort_defs", top_sort_defs);
- ("constraint", rewrite_constraint);
- ("trivial_sizeof", rewrite_trivial_sizeof);
- ("sizeof", rewrite_sizeof);
("simple_types", rewrite_simple_types);
("overload_cast", rewrite_overload_cast);
(* ("separate_numbs", rewrite_defs_separate_numbs) *)
@@ -5184,10 +5181,7 @@ let rewrite_defs_interpreter = [
("rewrite_undefined", rewrite_undefined_if_gen false);
("vector_concat_assignments", rewrite_vector_concat_assignments);
("tuple_assignments", rewrite_tuple_assignments);
- ("simple_assignments", rewrite_simple_assignments);
- ("constraint", rewrite_constraint);
- ("trivial_sizeof", rewrite_trivial_sizeof);
- ("sizeof", rewrite_sizeof);
+ ("simple_assignments", rewrite_simple_assignments)
]
let rewrite_check_annot =
diff --git a/src/sail.ml b/src/sail.ml
index fdf4f5b9..c63c3d19 100644
--- a/src/sail.ml
+++ b/src/sail.ml
@@ -64,7 +64,7 @@ let opt_print_c = ref false
let opt_print_latex = ref false
let opt_print_coq = ref false
let opt_print_cgen = ref false
-let opt_memo_z3 = ref false
+let opt_memo_z3 = ref true
let opt_sanity = ref false
let opt_includes_c = ref ([]:string list)
let opt_libs_lem = ref ([]:string list)
@@ -202,7 +202,10 @@ let options = Arg.align ([
"<filename>:<line>:<variable> to case split for monomorphisation");
( "-memo_z3",
Arg.Set opt_memo_z3,
- " memoize calls to z3, improving performance when typechecking repeatedly");
+ " memoize calls to z3, improving performance when typechecking repeatedly (default)");
+ ( "-no_memo_z3",
+ Arg.Clear opt_memo_z3,
+ " do not memoize calls to z3");
( "-memo",
Arg.Tuple [Arg.Set opt_memo_z3; Arg.Set C_backend.opt_memo_cache],
" memoize calls to z3, and intermediate compilation results");
diff --git a/src/type_check.ml b/src/type_check.ml
index 11fed096..82286491 100644
--- a/src/type_check.ml
+++ b/src/type_check.ml
@@ -473,6 +473,7 @@ end = struct
List.fold_left (fun m (name, kinds) -> Bindings.add (mk_id name) (kinds_typq kinds) m) Bindings.empty
[ ("range", [K_int; K_int]);
("atom", [K_int]);
+ ("implicit", [K_int]);
("vector", [K_int; K_order; K_type]);
("register", [K_type]);
("bit", []);