aboutsummaryrefslogtreecommitdiffhomepage
path: root/dev/base_include
diff options
context:
space:
mode:
authorGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-02-28 20:24:18 +0100
committerGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-02-28 21:51:30 +0100
commitae27de7dbce680e91353982bf23d568adca0d017 (patch)
treeccb88dd09e5d940719e62531721ed87e5f15766a /dev/base_include
parentf726e860917b56abc94f21d9d5add7594d23bb6d (diff)
[toplevel] Update state when `Drop` exception is thrown [#6872]
`Drop` is implemented using exceptions-as-control flow, so the toplevel state gets corrupted as `do_vernac` will never return when `Drop` occurs in the input. The right fix would be to remove `Drop` from the vernacular and make it a toplevel-only command, but meanwhile we can just patch the state in the exception handler. We also need to keep the global state in `Coqloop` as the main `coqtop` entry point won't be called by `go ()`. Fixes #6872.
Diffstat (limited to 'dev/base_include')
-rw-r--r--dev/base_include2
1 files changed, 1 insertions, 1 deletions
diff --git a/dev/base_include b/dev/base_include
index 350ccaa10..762662c20 100644
--- a/dev/base_include
+++ b/dev/base_include
@@ -229,7 +229,7 @@ let _ = Flags.in_toplevel := true
let _ = Constrextern.set_extern_reference
(fun ?loc _ r -> Libnames.Qualid (loc,Nametab.shortest_qualid_of_global Id.Set.empty r));;
-let go () = Coqloop.loop ~time:false ~state:Option.(get !Coqtop.drop_last_doc)
+let go () = Coqloop.loop ~time:false ~state:Option.(get !Coqloop.drop_last_doc)
let _ =
print_string