aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2017-09-04 19:14:30 +0200
committerPierre-Marie Pédrot2017-09-04 19:20:23 +0200
commit567435828772e53327bacf7464291a5759c23831 (patch)
tree383e7ba91b9b119cb1fc281fc36bcc38ca82e582 /src
parentd80e854d6827252676c2c504bb3108152a94d629 (diff)
Better backtraces for a few datatypes.
Diffstat (limited to 'src')
-rw-r--r--src/tac2core.ml8
-rw-r--r--src/tac2entries.ml9
2 files changed, 11 insertions, 6 deletions
diff --git a/src/tac2core.ml b/src/tac2core.ml
index 17fa7c28f4..e4bd80adc8 100644
--- a/src/tac2core.ml
+++ b/src/tac2core.ml
@@ -930,9 +930,13 @@ let () =
let _, tac = Genintern.intern Ltac_plugin.Tacarg.wit_tactic ist tac in
GlbVal tac, gtypref t_unit
in
- let interp _ tac =
+ let interp ist tac =
+ let ist = { ist with env_ist = Id.Map.empty } in
+ let lfun = Tac2interp.set_env ist Id.Map.empty in
+ let ist = Ltac_plugin.Tacinterp.default_ist () in
(** FUCK YOU API *)
- (Obj.magic Ltac_plugin.Tacinterp.eval_tactic tac : unit Proofview.tactic) >>= fun () ->
+ let ist = { ist with API.Geninterp.lfun = (Obj.magic lfun) } in
+ (Obj.magic Ltac_plugin.Tacinterp.eval_tactic_ist ist tac : unit Proofview.tactic) >>= fun () ->
return v_unit
in
let subst s tac = Genintern.substitute Ltac_plugin.Tacarg.wit_tactic s tac in
diff --git a/src/tac2entries.ml b/src/tac2entries.ml
index 8d515577ec..197ec19b3a 100644
--- a/src/tac2entries.ml
+++ b/src/tac2entries.ml
@@ -756,14 +756,15 @@ let _ = Goptions.declare_bool_option {
}
let pr_frame = function
-| FrLtac None -> str "<anonymous>"
+| FrLtac None -> str "Call <anonymous>"
| FrLtac (Some kn) ->
- Libnames.pr_qualid (Tac2env.shortest_qualid_of_ltac (TacConstant kn))
+ str "Call " ++ Libnames.pr_qualid (Tac2env.shortest_qualid_of_ltac (TacConstant kn))
| FrPrim ml ->
- str "<" ++ str ml.mltac_plugin ++ str ":" ++ str ml.mltac_tactic ++ str ">"
+ str "Prim <" ++ str ml.mltac_plugin ++ str ":" ++ str ml.mltac_tactic ++ str ">"
| FrExtn (tag, arg) ->
let obj = Tac2env.interp_ml_object tag in
- obj.Tac2env.ml_print (Global.env ()) arg
+ str "Extn " ++ str (Tac2dyn.Arg.repr tag) ++ str ":" ++ spc () ++
+ obj.Tac2env.ml_print (Global.env ()) arg
let () = register_handler begin function
| Tac2interp.LtacError (kn, _, bt) ->