aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile27
-rw-r--r--man/coq_vo2xml.169
-rw-r--r--tools/coq_vo2xml.ml174
3 files changed, 3 insertions, 267 deletions
diff --git a/Makefile b/Makefile
index b7e72d468..1550f362b 100644
--- a/Makefile
+++ b/Makefile
@@ -943,8 +943,7 @@ $(CONTRIBVO): states/initial.coq
contrib: $(CONTRIBVO) $(CONTRIBCMO)
omega: $(OMEGAVO) $(OMEGACMO) $(ROMEGAVO) $(ROMEGACMO)
ring: $(RINGVO) $(RINGCMO)
-# xml_ instead of xml to avoid conflict with "make xml"
-xml_: $(XMLVO) $(XMLCMO)
+xml: $(XMLVO) $(XMLCMO)
extraction: $(EXTRACTIONCMO)
field: $(FIELDVO) $(FIELDCMO)
fourier: $(FOURIERVO) $(FOURIERCMO)
@@ -1050,10 +1049,8 @@ GALLINA=bin/gallina$(EXE)
COQTEX=bin/coq-tex$(EXE)
COQWC=bin/coqwc$(EXE)
COQDOC=bin/coqdoc$(EXE)
-COQVO2XML=bin/coq_vo2xml$(EXE)
-RUNCOQVO2XML=coq_vo2xml$(EXE) # Uses the one in PATH and not the one in bin
-TOOLS=$(COQDEP) $(COQMAKEFILE) $(GALLINA) $(COQTEX) $(COQVO2XML) \
+TOOLS=$(COQDEP) $(COQMAKEFILE) $(GALLINA) $(COQTEX) \
$(COQWC) $(COQDOC)
tools:: $(TOOLS) dev/top_printers.cmo
@@ -1098,12 +1095,6 @@ $(COQDOC): $(COQDOCCMO)
$(SHOW)'OCAMLC -o $@'
$(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ str.cma unix.cma $(COQDOCCMO)
-COQVO2XMLCMO=$(CONFIG) toplevel/usage.cmo tools/coq_vo2xml.cmo
-
-$(COQVO2XML): $(COQVO2XMLCMO)
- $(SHOW)'OCAMLC -o $@'
- $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ unix.cma $(COQVO2XMLCMO)
-
clean::
rm -f tools/coqdep_lexer.ml tools/gallina_lexer.ml
rm -f tools/coqwc.ml
@@ -1130,18 +1121,6 @@ archclean::
rm -f $(MINICOQ)
###########################################################################
-# XML
-###########################################################################
-
-# Warning: coq_vo2xml in PATH and not the one in bin is used
-
-.PHONY: xml
-xml: .xml_time_stamp
-.xml_time_stamp: $(INITVO) $(THEORIESVO) $(CONTRIBVO)
- $(RUNCOQVO2XML) -boot -byte $(COQINCLUDES) $(?:%.o=%)
- touch .xml_time_stamp
-
-###########################################################################
# Installation
###########################################################################
@@ -1224,7 +1203,7 @@ install-coq-info: install-coq-manpages install-emacs install-latex
MANPAGES=man/coq-tex.1 man/coqdep.1 man/gallina.1 \
man/coqc.1 man/coqtop.1 man/coqtop.byte.1 man/coqtop.opt.1 \
man/coqwc.1 man/coqdoc.1 \
- man/coq_makefile.1 man/coqmktop.1 man/coq_vo2xml.1
+ man/coq_makefile.1 man/coqmktop.1
install-coq-manpages:
$(MKDIR) $(FULLMANDIR)/man1
diff --git a/man/coq_vo2xml.1 b/man/coq_vo2xml.1
deleted file mode 100644
index 21be67b77..000000000
--- a/man/coq_vo2xml.1
+++ /dev/null
@@ -1,69 +0,0 @@
-.TH COQ 1 "April 25, 2001"
-
-.SH NAME
-coq_vo2xml \- Exports the content of a Coq module to XML
-
-
-.SH SYNOPSIS
-.B coq_vo2xml
-[
-.B general \ Coq \ options
-]
-[
-.B -image
-.I f
-]
-[
-.B -t
-]
-[
-.B -xml-library-root
-.I d
-]
-.IR module " .\|.\|."
-
-
-.SH DESCRIPTION
-
-.B coq_vo2xml
-is a tool to export the content of a Coq module to XML.
-Because it executes coqtop(1), it recognizes a superset of its options.
-ones:
-.PP
-.B -image
-.IR f
-overrides the coqtop(1) executable with
-.IR f "."
-.PP
-.B -t
-does not remove the temporary file fed to coqtop(1).
-.PP
-.B -xml-library-root
-.IR d
-sets the path to the root of the XML library to
-.IR d ","
-overriding the value of $XML_ROOT_LIBRARY. The root of the XML library
-must be specified, either using the flag or setting the variable.
-.PP
-.IR module \&
-is the name of the module to export. The file module.vo will be searched in the
-Coq path by coqtop(1).
-The compiler produces a whole tree of XML files and directories rooted in the
-specified XML root library.
-
-.SH OPTIONS
-
-.TP
-.BI \-h
-Will give you a description of the whole list of options of coq_vo2xml,
-including the ones of coqtop(1).
-
-.SH SEE ALSO
-
-.BR coqtop (1),
-.BR coq_makefile (1),
-.br
-.I
-The Coq Reference Manual.
-.I
-The Coq web site: http://coq.inria.fr
diff --git a/tools/coq_vo2xml.ml b/tools/coq_vo2xml.ml
deleted file mode 100644
index 5f71fca39..000000000
--- a/tools/coq_vo2xml.ml
+++ /dev/null
@@ -1,174 +0,0 @@
-(* environment *)
-
-let environment = Unix.environment ()
-
-let bindir = ref Coq_config.bindir
-let binary = ref ("coqtop." ^ Coq_config.best)
-let image = ref ""
-let xml_library_root = ref (
- try
- Sys.getenv "XML_LIBRARY_ROOT"
- with Not_found -> ""
-)
-
-(* the $COQBIN environment variable has priority over the Coq_config value *)
-let _ =
- try
- let c = Sys.getenv "COQBIN" in
- if c <> "" then bindir := c
- with Not_found -> ()
-
-(* coq_vo2xml options *)
-
-let keep = ref false
-
-(* Verifies that a string do not contains others caracters than letters,
- digits, or `_` *)
-
-let check_module_name s =
- let err () =
- output_string stderr
- "Modules names must only contain letters, digits, or underscores\n";
- output_string stderr
- "and must begin with a letter\n";
- exit 1
- in
- match String.get s 0 with
- | 'a' .. 'z' | 'A' .. 'Z' ->
- for i = 1 to (String.length s)-1 do
- match String.get s i with
- | 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' -> ()
- | _ -> err ()
- done
- | _ -> err ()
-
- (* compilation of a file [file] with command [command] and args [args] *)
-
-let compile command args file =
- let dirname = Filename.dirname file in
- let basename = Filename.basename file in
- let modulename =
- if Filename.check_suffix basename ".vo" then
- Filename.chop_suffix basename ".vo"
- else
- basename
- in
- check_module_name modulename;
- let tmpfile = Filename.temp_file "coq_vo2xml" ".v" in
- let args' =
- command :: "-batch" :: "-silent" :: args
- @ ["-load-vernac-source"; tmpfile] in
- let devnull =
- if Sys.os_type = "Unix" then
- Unix.openfile "/dev/null" [] 0o777
- else
- Unix.stdin
- in
- let oc = open_out tmpfile in
- Printf.fprintf oc "Require %s.\n" modulename;
- Printf.fprintf oc "Print XML Module Disk \"%s\" %s.\n" !xml_library_root
- modulename;
- flush oc;
- close_out oc;
- try
- let pid =
- Unix.create_process_env command
- (Array.of_list args') environment devnull Unix.stdout Unix.stderr in
- let status = Unix.waitpid [] pid in
- if not !keep then Sys.remove tmpfile ;
- match status with
- | _, Unix.WEXITED 0 -> ()
- | _, Unix.WEXITED 127 ->
- Printf.printf "Cannot execute %s\n" command;
- exit 1
- | _, Unix.WEXITED c -> exit c
- | _ -> exit 1
- with _ ->
- if not !keep then Sys.remove tmpfile; exit 1
-
-(* parsing of the command line
- *
- * special treatment for -bindir and -i.
- * other options are passed to coqtop *)
-
-let usage () =
- Usage.print_usage
- "Usage: coq_vo2xml <options> <Coq options> module...\n
-options are:
- -xml-library-root d specify the path to the root of the XML library
- (overrides $XML_LIBRARY_ROOT)
- -image f specify an alternative executable for Coq
- -t keep temporary files\n\n" ;
- flush stderr ;
- exit 1
-
-let parse_args () =
- let rec parse (cfiles,args) = function
- | [] ->
- List.rev cfiles, List.rev args
- | "-xml-library-root" :: v :: rem ->
- xml_library_root := v ; parse (cfiles,args) rem
- | "-t" :: rem ->
- keep := true ; parse (cfiles,args) rem
- | "-boot" :: rem ->
- bindir:= Filename.concat Coq_config.coqtop "bin";
- parse (cfiles, "-boot"::args) rem
- | "-bindir" :: d :: rem ->
- bindir := d ; parse (cfiles,args) rem
- | "-bindir" :: [] ->
- usage ()
- | "-byte" :: rem ->
- binary := "coqtop.byte"; parse (cfiles,args) rem
- | "-opt" :: rem ->
- binary := "coqtop.opt"; parse (cfiles,args) rem
- | "-image" :: f :: rem ->
- image := f; parse (cfiles,args) rem
- | "-image" :: [] ->
- usage ()
- | ("-?"|"-h"|"-H"|"-help"|"--help") :: _ -> usage ()
- | ("-libdir"|"-outputstate"|"-I"|"-include"
- |"-inputstate"|"-is"|"-load-vernac-source"|"-load-vernac-object"
- |"-load-ml-source"|"-require"|"-load-ml-object"|"-user"
- |"-init-file" as o) :: rem ->
- begin
- match rem with
- | s :: rem' -> parse (cfiles,s::o::args) rem'
- | [] -> usage ()
- end
- | "-R" as o :: s :: t :: rem -> parse (cfiles,t::s::o::args) rem
- | ("-notactics"|"-debug"|"-db"|"-debugger"|"-nolib"|"-batch"|"-nois"
- |"-q"|"-full"|"-profile"|"-just-parsing"|"-echo" |"-unsafe"|"-quiet"
- |"-silent"|"-m" as o) :: rem ->
- parse (cfiles,o::args) rem
- | ("-v"|"--version") :: _ ->
- Usage.version ()
- | "-where" :: _ ->
- print_endline Coq_config.coqlib; exit 0
- | f :: rem -> parse (f::cfiles,args) rem
- in
- parse ([],[]) (List.tl (Array.to_list Sys.argv))
-
-(* main: we parse the command line, define the command to compile files
- * and then call the compilation on each file *)
-
-let main () =
- let cfiles, args = parse_args () in
- if cfiles = [] then begin
- prerr_endline "coq_vo2xml: too few arguments" ;
- usage ()
- end;
- let coqtopname =
- if !image <> "" then !image else Filename.concat !bindir (!binary ^ Coq_config.exec_extension)
- in
- if !xml_library_root = "" then
- begin
- prerr_endline "coq_vo2xml: you must either set $XML_LIBRARY_ROOT or use -xml-library-root";
- usage ()
- end
- else
- List.iter (compile coqtopname args) cfiles ;
- prerr_endline
- ("\nWARNING: all the URIs in the generated XML files are broken." ^
- "\n See the README in the XML contrib to learn how to fix them.\n")
-
-let _ = Printexc.print main (); exit 0