aboutsummaryrefslogtreecommitdiffhomepage
path: root/toplevel/coqtop_byte_bin.ml
diff options
context:
space:
mode:
authorGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-03-07 01:33:17 +0100
committerGravatar Emilio Jesus Gallego Arias <e+git@x80.org>2018-05-21 03:07:27 +0200
commit382ee49700c4b4ee78ba95b2e86866ebd3b35d74 (patch)
tree995cb88f7dfa62bb265e5cc2eb3adf4b18653ada /toplevel/coqtop_byte_bin.ml
parent053812dc5f32635f177fafbf566936aa079bfeed (diff)
[stm] Make toplevels standalone executables.
We turn coqtop "plugins" into standalone executables, which will be installed in `COQBIN` and located using the standard `PATH` mechanism. Using dynamic linking for `coqtop` customization didn't make a lot of sense, given that only one of such "plugins" could be loaded at a time. This cleans up some code and solves two problems: - `coqtop` needing to locate plugins, - dependency issues as plugins in `stm` depended on files in `toplevel`. In order to implement this, we do some minor cleanup of the toplevel API, making it functional, and implement uniform build rules. In particular: - `stm` and `toplevel` have become library-only directories, - a new directory, `topbin`, contains the new executables, - 4 new binaries have been introduced, for coqide and the stm. - we provide a common and cleaned up way to locate toplevels.
Diffstat (limited to 'toplevel/coqtop_byte_bin.ml')
-rw-r--r--toplevel/coqtop_byte_bin.ml34
1 files changed, 0 insertions, 34 deletions
diff --git a/toplevel/coqtop_byte_bin.ml b/toplevel/coqtop_byte_bin.ml
deleted file mode 100644
index 0b65cebbb..000000000
--- a/toplevel/coqtop_byte_bin.ml
+++ /dev/null
@@ -1,34 +0,0 @@
-(************************************************************************)
-(* * The Coq Proof Assistant / The Coq Development Team *)
-(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
-(* <O___,, * (see CREDITS file for the list of authors) *)
-(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
-(* * (see LICENSE file for the text of the license) *)
-(************************************************************************)
-
-let drop_setup () =
- begin try
- (* Enable rectypes in the toplevel if it has the directive #rectypes *)
- begin match Hashtbl.find Toploop.directive_table "rectypes" with
- | Toploop.Directive_none f -> f ()
- | _ -> ()
- end
- with
- | Not_found -> ()
- end;
- let ppf = Format.std_formatter in
- Mltop.(set_top
- { load_obj = (fun f -> if not (Topdirs.load_file ppf f)
- then CErrors.user_err Pp.(str ("Could not load plugin "^f))
- );
- use_file = Topdirs.dir_use ppf;
- add_dir = Topdirs.dir_directory;
- ml_loop = (fun () -> Toploop.loop ppf);
- })
-
-(* Main coqtop initialization *)
-let _ =
- drop_setup ();
- Coqtop.start()