diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/isail.ml | 7 | ||||
| -rw-r--r-- | src/specialize.ml | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/isail.ml b/src/isail.ml index 7db28ddf..1c635af0 100644 --- a/src/isail.ml +++ b/src/isail.ml @@ -110,7 +110,7 @@ let sail_logo = let vs_ids = ref (val_spec_ids !Interactive.ast) -let interactive_state = ref (initial_state !Interactive.ast !Interactive.env Value.primops) +let interactive_state = ref (initial_state ~registers:false !Interactive.ast !Interactive.env Value.primops) let sep = "-----------------------------------------------------" |> Util.blue |> Util.clear @@ -440,11 +440,6 @@ let handle_input' input = with | Arg.Bad message | Arg.Help message -> print_endline message end; - | ":spec" -> - let ast, env = Specialize.(specialize_passes 1 int_specialization !Interactive.env !Interactive.ast) in - Interactive.ast := ast; - Interactive.env := env; - interactive_state := initial_state !Interactive.ast !Interactive.env Value.primops | ":pretty" -> print_endline (Pretty_print_sail.to_string (Latex.defs !Interactive.ast)) | ":ast" -> diff --git a/src/specialize.ml b/src/specialize.ml index d749bc53..483697ce 100644 --- a/src/specialize.ml +++ b/src/specialize.ml @@ -600,3 +600,13 @@ let rec specialize_passes n spec env ast = specialize_passes (n - 1) spec env ast let specialize = specialize_passes (-1) + +let () = + let open Printf in + let open Interactive in + + (fun _ -> + let ast', env' = specialize typ_ord_specialization !env !ast in + ast := ast'; + env := env') + |> register_command ~name:"specialize" ~help:":specialize - Specialize Type and Order type variables in the AST" |
