aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev/base_include5
-rw-r--r--dev/top_printers.ml4
-rw-r--r--interp/constrextern.ml1
-rw-r--r--interp/constrextern.mli1
4 files changed, 10 insertions, 1 deletions
diff --git a/dev/base_include b/dev/base_include
index d112596502..1c794a3ae9 100644
--- a/dev/base_include
+++ b/dev/base_include
@@ -199,6 +199,11 @@ let current_goal () = get_nth_goal 1;;
let pf_e gl s =
Constrintern.interp_constr (project gl) (pf_env gl) (parse_constr s);;
+(* Set usual printing since the global env is available from the tracer *)
+let _ = Constrextern.in_debugger := false
+let _ = Constrextern.set_debug_global_reference_printer
+ (fun loc r -> Libnames.Qualid (loc,Nametab.shortest_qualid_of_global Idset.empty r));;
+
open Toplevel
let go = loop
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 3fc90761d1..3116cbf225 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -487,5 +487,9 @@ let short_string_of_ref loc = function
[id_of_label (pi3 (repr_mind kn));id_of_string ("_"^string_of_int i)]
(id_of_string ("_"^string_of_int j))
+(* Anticipate that printers can be used from ocamldebug and that
+ pretty-printer should not make calls to the global env since ocamldebug
+ runs in a different process and does not have the proper env at hand *)
+let _ = Constrextern.in_debugger := true
let _ = Constrextern.set_debug_global_reference_printer
(if !rawdebug then raw_string_of_ref else short_string_of_ref)
diff --git a/interp/constrextern.ml b/interp/constrextern.ml
index bd8e78c0f5..b3810bb6d4 100644
--- a/interp/constrextern.ml
+++ b/interp/constrextern.ml
@@ -143,7 +143,6 @@ let debug_global_reference_printer =
let in_debugger = ref false
let set_debug_global_reference_printer f =
- in_debugger := true;
debug_global_reference_printer := f
let extern_reference loc vars r =
diff --git a/interp/constrextern.mli b/interp/constrextern.mli
index e1fdd068b7..2a53eb85fe 100644
--- a/interp/constrextern.mli
+++ b/interp/constrextern.mli
@@ -53,6 +53,7 @@ val print_projections : bool ref
(** Debug printing options *)
val set_debug_global_reference_printer :
(loc -> global_reference -> reference) -> unit
+val in_debugger : bool ref
(** This governs printing of implicit arguments. If [with_implicits] is
on and not [with_arguments] then implicit args are printed prefixed