aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfilliatr2001-02-05 17:32:09 +0000
committerfilliatr2001-02-05 17:32:09 +0000
commitc6dff86156115dba6e3d90ac9d23cb7ea7e702e9 (patch)
tree9e4e11785c2f4affec3f3a6747267dc552eac907
parent8846e497d6f869191645e18a9e2a8dc68956d679 (diff)
calcul des dependances camlp4 et production directe ml4 -> cmo (avec Judicael)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1325 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--.depend140
-rw-r--r--.depend.camlp441
-rw-r--r--.depend.camlp4.214
-rw-r--r--.depend.coq174
-rw-r--r--Makefile29
-rw-r--r--Makefile.dep8
-rw-r--r--lib/util.ml69
-rw-r--r--lib/util.mli4
8 files changed, 361 insertions, 118 deletions
diff --git a/.depend b/.depend
index 281ecbe5e4..bb1ab8595f 100644
--- a/.depend
+++ b/.depend
@@ -28,6 +28,8 @@ kernel/typeops.cmi: kernel/environ.cmi kernel/evd.cmi kernel/inductive.cmi \
kernel/names.cmi kernel/sign.cmi kernel/term.cmi kernel/univ.cmi
kernel/univ.cmi: kernel/names.cmi lib/pp.cmi
lib/pp.cmi: lib/pp_control.cmi
+lib/system.cmi: lib/pp.cmi
+lib/util.cmi: lib/pp.cmi
library/declare.cmi: kernel/cooking.cmi kernel/declarations.cmi \
kernel/environ.cmi kernel/evd.cmi kernel/inductive.cmi \
library/libobject.cmi kernel/names.cmi kernel/sign.cmi kernel/term.cmi
@@ -46,8 +48,6 @@ library/library.cmi: library/lib.cmi library/libobject.cmi kernel/names.cmi \
library/nametab.cmi: library/libobject.cmi kernel/names.cmi kernel/term.cmi \
lib/util.cmi
library/summary.cmi: kernel/names.cmi
-lib/system.cmi: lib/pp.cmi
-lib/util.cmi: lib/pp.cmi
parsing/ast.cmi: parsing/coqast.cmi lib/dyn.cmi kernel/names.cmi \
parsing/pcoq.cmi lib/pp.cmi
parsing/astterm.cmi: parsing/coqast.cmi kernel/environ.cmi kernel/evd.cmi \
@@ -132,7 +132,7 @@ proofs/stock.cmi: kernel/names.cmi
proofs/tacinterp.cmi: parsing/coqast.cmi lib/dyn.cmi kernel/environ.cmi \
kernel/names.cmi lib/pp.cmi proofs/proof_type.cmi proofs/tacmach.cmi \
proofs/tactic_debug.cmi kernel/term.cmi
-proofs/tacmach.cmi: parsing/coqast.cmi kernel/environ.cmi \
+proofs/tacmach.cmi: kernel/closure.cmi parsing/coqast.cmi kernel/environ.cmi \
proofs/evar_refiner.cmi kernel/evd.cmi kernel/names.cmi lib/pp.cmi \
proofs/proof_trees.cmi proofs/proof_type.cmi kernel/reduction.cmi \
proofs/refiner.cmi kernel/sign.cmi pretyping/tacred.cmi kernel/term.cmi
@@ -166,10 +166,10 @@ tactics/tacentries.cmi: proofs/proof_type.cmi proofs/tacmach.cmi
tactics/tacticals.cmi: proofs/clenv.cmi parsing/coqast.cmi kernel/names.cmi \
pretyping/pattern.cmi proofs/proof_type.cmi kernel/reduction.cmi \
kernel/sign.cmi proofs/tacmach.cmi kernel/term.cmi tactics/wcclausenv.cmi
-tactics/tactics.cmi: proofs/clenv.cmi kernel/environ.cmi kernel/evd.cmi \
- kernel/names.cmi proofs/proof_type.cmi kernel/reduction.cmi \
- proofs/tacmach.cmi pretyping/tacred.cmi tactics/tacticals.cmi \
- kernel/term.cmi
+tactics/tactics.cmi: proofs/clenv.cmi kernel/closure.cmi kernel/environ.cmi \
+ kernel/evd.cmi kernel/names.cmi proofs/proof_type.cmi \
+ kernel/reduction.cmi proofs/tacmach.cmi pretyping/tacred.cmi \
+ tactics/tacticals.cmi kernel/term.cmi
tactics/termdn.cmi: pretyping/pattern.cmi kernel/term.cmi
tactics/wcclausenv.cmi: proofs/clenv.cmi kernel/environ.cmi kernel/evd.cmi \
kernel/names.cmi proofs/proof_type.cmi kernel/sign.cmi proofs/tacmach.cmi \
@@ -195,11 +195,11 @@ toplevel/recordobj.cmi: kernel/term.cmi
toplevel/searchisos.cmi: library/libobject.cmi kernel/names.cmi \
kernel/term.cmi
toplevel/toplevel.cmi: parsing/pcoq.cmi lib/pp.cmi
+toplevel/vernac.cmi: parsing/coqast.cmi parsing/pcoq.cmi
toplevel/vernacentries.cmi: kernel/names.cmi kernel/term.cmi \
toplevel/vernacinterp.cmi
toplevel/vernacinterp.cmi: parsing/coqast.cmi lib/dyn.cmi kernel/names.cmi \
proofs/proof_type.cmi
-toplevel/vernac.cmi: parsing/coqast.cmi parsing/pcoq.cmi
contrib/xml/xmlcommand.cmi: kernel/names.cmi
config/coq_config.cmo: config/coq_config.cmi
config/coq_config.cmx: config/coq_config.cmi
@@ -317,22 +317,30 @@ lib/dyn.cmo: lib/util.cmi lib/dyn.cmi
lib/dyn.cmx: lib/util.cmx lib/dyn.cmi
lib/edit.cmo: lib/bstack.cmi lib/pp.cmi lib/util.cmi lib/edit.cmi
lib/edit.cmx: lib/bstack.cmx lib/pp.cmx lib/util.cmx lib/edit.cmi
-lib/gmapl.cmo: lib/gmap.cmi lib/util.cmi lib/gmapl.cmi
-lib/gmapl.cmx: lib/gmap.cmx lib/util.cmx lib/gmapl.cmi
lib/gmap.cmo: lib/gmap.cmi
lib/gmap.cmx: lib/gmap.cmi
+lib/gmapl.cmo: lib/gmap.cmi lib/util.cmi lib/gmapl.cmi
+lib/gmapl.cmx: lib/gmap.cmx lib/util.cmx lib/gmapl.cmi
lib/gset.cmo: lib/gset.cmi
lib/gset.cmx: lib/gset.cmi
lib/hashcons.cmo: lib/hashcons.cmi
lib/hashcons.cmx: lib/hashcons.cmi
lib/options.cmo: lib/util.cmi lib/options.cmi
lib/options.cmx: lib/util.cmx lib/options.cmi
-lib/pp_control.cmo: lib/pp_control.cmi
-lib/pp_control.cmx: lib/pp_control.cmi
lib/pp.cmo: lib/pp_control.cmi lib/pp.cmi
lib/pp.cmx: lib/pp_control.cmx lib/pp.cmi
+lib/pp_control.cmo: lib/pp_control.cmi
+lib/pp_control.cmx: lib/pp_control.cmi
lib/profile.cmo: lib/profile.cmi
lib/profile.cmx: lib/profile.cmi
+lib/stamps.cmo: lib/stamps.cmi
+lib/stamps.cmx: lib/stamps.cmi
+lib/system.cmo: config/coq_config.cmi lib/pp.cmi lib/util.cmi lib/system.cmi
+lib/system.cmx: config/coq_config.cmx lib/pp.cmx lib/util.cmx lib/system.cmi
+lib/tlm.cmo: lib/gmap.cmi lib/gset.cmi lib/tlm.cmi
+lib/tlm.cmx: lib/gmap.cmx lib/gset.cmx lib/tlm.cmi
+lib/util.cmo: lib/pp.cmi lib/util.cmi
+lib/util.cmx: lib/pp.cmx lib/util.cmi
library/declare.cmo: kernel/cooking.cmi kernel/declarations.cmi \
kernel/environ.cmi kernel/evd.cmi library/global.cmi library/impargs.cmi \
library/indrec.cmi kernel/inductive.cmi library/lib.cmi \
@@ -407,14 +415,6 @@ library/summary.cmo: lib/dyn.cmi kernel/names.cmi lib/pp.cmi lib/util.cmi \
library/summary.cmi
library/summary.cmx: lib/dyn.cmx kernel/names.cmx lib/pp.cmx lib/util.cmx \
library/summary.cmi
-lib/stamps.cmo: lib/stamps.cmi
-lib/stamps.cmx: lib/stamps.cmi
-lib/system.cmo: config/coq_config.cmi lib/pp.cmi lib/util.cmi lib/system.cmi
-lib/system.cmx: config/coq_config.cmx lib/pp.cmx lib/util.cmx lib/system.cmi
-lib/tlm.cmo: lib/gmap.cmi lib/gset.cmi lib/tlm.cmi
-lib/tlm.cmx: lib/gmap.cmx lib/gset.cmx lib/tlm.cmi
-lib/util.cmo: lib/pp.cmi lib/util.cmi
-lib/util.cmx: lib/pp.cmx lib/util.cmi
parsing/ast.cmo: parsing/coqast.cmi lib/dyn.cmi lib/hashcons.cmi \
kernel/names.cmi parsing/pcoq.cmi lib/pp.cmi lib/util.cmi parsing/ast.cmi
parsing/ast.cmx: parsing/coqast.cmx lib/dyn.cmx lib/hashcons.cmx \
@@ -447,18 +447,6 @@ parsing/esyntax.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/extend.cmi \
lib/gmap.cmi lib/gmapl.cmi lib/pp.cmi lib/util.cmi parsing/esyntax.cmi
parsing/esyntax.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/extend.cmx \
lib/gmap.cmx lib/gmapl.cmx lib/pp.cmx lib/util.cmx parsing/esyntax.cmi
-parsing/extend.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/lexer.cmi \
- parsing/pcoq.cmi lib/pp.cmi lib/util.cmi parsing/extend.cmi
-parsing/extend.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/lexer.cmx \
- parsing/pcoq.cmx lib/pp.cmx lib/util.cmx parsing/extend.cmi
-parsing/g_basevernac.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi \
- toplevel/vernac.cmi
-parsing/g_basevernac.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx \
- toplevel/vernac.cmx
-parsing/g_cases.cmo: parsing/coqast.cmi parsing/pcoq.cmi
-parsing/g_cases.cmx: parsing/coqast.cmx parsing/pcoq.cmx
-parsing/g_constr.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi
-parsing/g_constr.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx
parsing/g_natsyntax.cmo: parsing/ast.cmi parsing/coqast.cmi \
parsing/esyntax.cmi kernel/names.cmi parsing/pcoq.cmi lib/pp.cmi \
parsing/stdlib.cmi parsing/termast.cmi lib/util.cmi \
@@ -469,24 +457,12 @@ parsing/g_natsyntax.cmx: parsing/ast.cmx parsing/coqast.cmx \
parsing/g_natsyntax.cmi
parsing/g_prim.cmo: parsing/coqast.cmi parsing/pcoq.cmi toplevel/vernac.cmi
parsing/g_prim.cmx: parsing/coqast.cmx parsing/pcoq.cmx toplevel/vernac.cmx
-parsing/g_proofs.cmo: parsing/coqast.cmi parsing/pcoq.cmi lib/pp.cmi \
- lib/util.cmi toplevel/vernac.cmi
-parsing/g_proofs.cmx: parsing/coqast.cmx parsing/pcoq.cmx lib/pp.cmx \
- lib/util.cmx toplevel/vernac.cmx
parsing/g_rsyntax.cmo: parsing/ast.cmi parsing/astterm.cmi parsing/coqast.cmi \
parsing/esyntax.cmi kernel/names.cmi parsing/pcoq.cmi lib/pp.cmi \
lib/util.cmi
parsing/g_rsyntax.cmx: parsing/ast.cmx parsing/astterm.cmx parsing/coqast.cmx \
parsing/esyntax.cmx kernel/names.cmx parsing/pcoq.cmx lib/pp.cmx \
lib/util.cmx
-parsing/g_tactic.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi \
- lib/pp.cmi lib/util.cmi toplevel/vernac.cmi
-parsing/g_tactic.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx \
- lib/pp.cmx lib/util.cmx toplevel/vernac.cmx
-parsing/g_vernac.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi \
- lib/pp.cmi lib/util.cmi toplevel/vernac.cmi
-parsing/g_vernac.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx \
- lib/pp.cmx lib/util.cmx toplevel/vernac.cmx
parsing/g_zsyntax.cmo: parsing/ast.cmi parsing/astterm.cmi parsing/coqast.cmi \
parsing/esyntax.cmi kernel/names.cmi parsing/pcoq.cmi lib/pp.cmi \
lib/util.cmi parsing/g_zsyntax.cmi
@@ -523,8 +499,6 @@ parsing/printer.cmx: parsing/ast.cmx parsing/coqast.cmx library/declare.cmx \
library/global.cmx kernel/names.cmx lib/options.cmx pretyping/pattern.cmx \
lib/pp.cmx kernel/sign.cmx kernel/term.cmx parsing/termast.cmx \
lib/util.cmx parsing/printer.cmi
-parsing/q_coqast.cmo: parsing/coqast.cmi parsing/pcoq.cmi
-parsing/q_coqast.cmx: parsing/coqast.cmx parsing/pcoq.cmx
parsing/search.cmo: parsing/astterm.cmi parsing/coqast.cmi \
kernel/declarations.cmi library/declare.cmi kernel/environ.cmi \
kernel/evd.cmi library/global.cmi library/libobject.cmi \
@@ -861,7 +835,7 @@ tactics/dhyp.cmx: parsing/ast.cmx parsing/astterm.cmx proofs/clenv.cmx \
parsing/coqast.cmx kernel/environ.cmx kernel/evd.cmx library/global.cmx \
library/lib.cmx library/libobject.cmx library/library.cmx \
kernel/names.cmx tactics/nbtermdn.cmx pretyping/pattern.cmx \
- parsing/pcoq.cmx lib/pp.cmx proofs/proof_type.cmx pretyping/rawterm.cmx \
+ parsing/pcoq.cmi lib/pp.cmx proofs/proof_type.cmx pretyping/rawterm.cmx \
kernel/reduction.cmx library/summary.cmx proofs/tacinterp.cmx \
proofs/tacmach.cmx tactics/tacticals.cmx tactics/tactics.cmx \
kernel/term.cmx lib/util.cmx toplevel/vernacinterp.cmx tactics/dhyp.cmi
@@ -920,7 +894,7 @@ tactics/hipattern.cmo: parsing/astterm.cmi proofs/clenv.cmi \
tactics/hipattern.cmx: parsing/astterm.cmx proofs/clenv.cmx \
library/declare.cmx kernel/environ.cmx kernel/evd.cmx library/global.cmx \
kernel/inductive.cmx library/library.cmx kernel/names.cmx \
- pretyping/pattern.cmx parsing/pcoq.cmx lib/pp.cmx parsing/printer.cmx \
+ pretyping/pattern.cmx parsing/pcoq.cmi lib/pp.cmx parsing/printer.cmx \
proofs/proof_trees.cmx kernel/reduction.cmx proofs/stock.cmx \
kernel/term.cmx lib/util.cmx tactics/hipattern.cmi
tactics/inv.cmo: tactics/auto.cmi proofs/clenv.cmi tactics/elim.cmi \
@@ -989,7 +963,7 @@ tactics/tacticals.cmx: proofs/clenv.cmx parsing/coqast.cmx \
proofs/tacinterp.cmx proofs/tacmach.cmx kernel/term.cmx \
parsing/termast.cmx lib/util.cmx tactics/wcclausenv.cmx \
tactics/tacticals.cmi
-tactics/tactics.cmo: parsing/astterm.cmi proofs/clenv.cmi \
+tactics/tactics.cmo: parsing/astterm.cmi proofs/clenv.cmi kernel/closure.cmi \
kernel/declarations.cmi library/declare.cmi kernel/environ.cmi \
kernel/evd.cmi library/global.cmi tactics/hipattern.cmi \
library/indrec.cmi kernel/inductive.cmi proofs/logic.cmi kernel/names.cmi \
@@ -997,7 +971,7 @@ tactics/tactics.cmo: parsing/astterm.cmi proofs/clenv.cmi \
kernel/reduction.cmi kernel/sign.cmi lib/stamps.cmi proofs/tacinterp.cmi \
proofs/tacmach.cmi pretyping/tacred.cmi tactics/tacticals.cmi \
kernel/term.cmi lib/util.cmi tactics/tactics.cmi
-tactics/tactics.cmx: parsing/astterm.cmx proofs/clenv.cmx \
+tactics/tactics.cmx: parsing/astterm.cmx proofs/clenv.cmx kernel/closure.cmx \
kernel/declarations.cmx library/declare.cmx kernel/environ.cmx \
kernel/evd.cmx library/global.cmx tactics/hipattern.cmx \
library/indrec.cmx kernel/inductive.cmx proofs/logic.cmx kernel/names.cmx \
@@ -1005,12 +979,6 @@ tactics/tactics.cmx: parsing/astterm.cmx proofs/clenv.cmx \
kernel/reduction.cmx kernel/sign.cmx lib/stamps.cmx proofs/tacinterp.cmx \
proofs/tacmach.cmx pretyping/tacred.cmx tactics/tacticals.cmx \
kernel/term.cmx lib/util.cmx tactics/tactics.cmi
-tactics/tauto.cmo: parsing/ast.cmi parsing/coqast.cmi tactics/hipattern.cmi \
- kernel/names.cmi lib/pp.cmi proofs/proof_type.cmi proofs/tacinterp.cmi \
- proofs/tacmach.cmi tactics/tacticals.cmi tactics/tactics.cmi
-tactics/tauto.cmx: parsing/ast.cmx parsing/coqast.cmx tactics/hipattern.cmx \
- kernel/names.cmx lib/pp.cmx proofs/proof_type.cmx proofs/tacinterp.cmx \
- proofs/tacmach.cmx tactics/tacticals.cmx tactics/tactics.cmx
tactics/termdn.cmo: tactics/dn.cmi kernel/names.cmi pretyping/pattern.cmi \
pretyping/rawterm.cmi kernel/term.cmi lib/util.cmi tactics/termdn.cmi
tactics/termdn.cmx: tactics/dn.cmx kernel/names.cmx pretyping/pattern.cmx \
@@ -1023,10 +991,10 @@ tactics/wcclausenv.cmx: proofs/clenv.cmx kernel/environ.cmx kernel/evd.cmx \
library/global.cmx proofs/logic.cmx kernel/names.cmx lib/pp.cmx \
proofs/proof_trees.cmx kernel/reduction.cmx kernel/sign.cmx \
proofs/tacmach.cmx kernel/term.cmx lib/util.cmx tactics/wcclausenv.cmi
-tools/coqdep_lexer.cmo: config/coq_config.cmi
-tools/coqdep_lexer.cmx: config/coq_config.cmx
tools/coqdep.cmo: config/coq_config.cmi tools/coqdep_lexer.cmo
tools/coqdep.cmx: config/coq_config.cmx tools/coqdep_lexer.cmx
+tools/coqdep_lexer.cmo: config/coq_config.cmi
+tools/coqdep_lexer.cmx: config/coq_config.cmx
tools/gallina.cmo: tools/gallina_lexer.cmo
tools/gallina.cmx: tools/gallina_lexer.cmx
toplevel/class.cmo: pretyping/classops.cmi kernel/declarations.cmi \
@@ -1102,7 +1070,7 @@ toplevel/errors.cmo: parsing/ast.cmi toplevel/himsg.cmi kernel/indtypes.cmi \
proofs/tacmach.cmi kernel/type_errors.cmi kernel/univ.cmi lib/util.cmi \
toplevel/errors.cmi
toplevel/errors.cmx: parsing/ast.cmx toplevel/himsg.cmx kernel/indtypes.cmx \
- parsing/lexer.cmx proofs/logic.cmx lib/options.cmx lib/pp.cmx \
+ parsing/lexer.cmi proofs/logic.cmx lib/options.cmx lib/pp.cmx \
proofs/tacmach.cmx kernel/type_errors.cmx kernel/univ.cmx lib/util.cmx \
toplevel/errors.cmi
toplevel/fhimsg.cmo: kernel/environ.cmi parsing/g_minicoq.cmi \
@@ -1133,8 +1101,8 @@ toplevel/metasyntax.cmo: parsing/ast.cmi parsing/astterm.cmi \
toplevel/metasyntax.cmi
toplevel/metasyntax.cmx: parsing/ast.cmx parsing/astterm.cmx \
parsing/coqast.cmx parsing/egrammar.cmx parsing/esyntax.cmx \
- parsing/extend.cmx library/lib.cmx library/libobject.cmx \
- library/library.cmx kernel/names.cmx parsing/pcoq.cmx lib/pp.cmx \
+ parsing/extend.cmi library/lib.cmx library/libobject.cmx \
+ library/library.cmx kernel/names.cmx parsing/pcoq.cmi lib/pp.cmx \
library/summary.cmx parsing/termast.cmx lib/util.cmx toplevel/vernac.cmx \
toplevel/metasyntax.cmi
toplevel/minicoq.cmo: kernel/declarations.cmi toplevel/fhimsg.cmi \
@@ -1150,7 +1118,7 @@ toplevel/protectedtoplevel.cmo: toplevel/errors.cmi \
toplevel/vernac.cmi toplevel/vernacinterp.cmi \
toplevel/protectedtoplevel.cmi
toplevel/protectedtoplevel.cmx: toplevel/errors.cmx \
- toplevel/line_oriented_parser.cmx parsing/pcoq.cmx lib/pp.cmx \
+ toplevel/line_oriented_parser.cmx parsing/pcoq.cmi lib/pp.cmx \
toplevel/vernac.cmx toplevel/vernacinterp.cmx \
toplevel/protectedtoplevel.cmi
toplevel/record.cmo: parsing/ast.cmi parsing/astterm.cmi toplevel/class.cmi \
@@ -1178,11 +1146,19 @@ toplevel/toplevel.cmo: parsing/ast.cmi toplevel/errors.cmi toplevel/mltop.cmi \
lib/pp.cmi toplevel/protectedtoplevel.cmi lib/util.cmi \
toplevel/vernac.cmi toplevel/vernacinterp.cmi toplevel/toplevel.cmi
toplevel/toplevel.cmx: parsing/ast.cmx toplevel/errors.cmx toplevel/mltop.cmi \
- kernel/names.cmx lib/options.cmx parsing/pcoq.cmx proofs/pfedit.cmx \
+ kernel/names.cmx lib/options.cmx parsing/pcoq.cmi proofs/pfedit.cmx \
lib/pp.cmx toplevel/protectedtoplevel.cmx lib/util.cmx \
toplevel/vernac.cmx toplevel/vernacinterp.cmx toplevel/toplevel.cmi
toplevel/usage.cmo: config/coq_config.cmi toplevel/usage.cmi
toplevel/usage.cmx: config/coq_config.cmx toplevel/usage.cmi
+toplevel/vernac.cmo: parsing/ast.cmi parsing/coqast.cmi \
+ toplevel/discharge.cmi library/library.cmi lib/options.cmi \
+ parsing/pcoq.cmi proofs/pfedit.cmi lib/pp.cmi library/states.cmi \
+ lib/system.cmi lib/util.cmi toplevel/vernacinterp.cmi toplevel/vernac.cmi
+toplevel/vernac.cmx: parsing/ast.cmx parsing/coqast.cmx \
+ toplevel/discharge.cmx library/library.cmx lib/options.cmx \
+ parsing/pcoq.cmi proofs/pfedit.cmx lib/pp.cmx library/states.cmx \
+ lib/system.cmx lib/util.cmx toplevel/vernacinterp.cmx toplevel/vernac.cmi
toplevel/vernacentries.cmo: parsing/ast.cmi parsing/astterm.cmi \
toplevel/class.cmi pretyping/classops.cmi toplevel/command.cmi \
parsing/coqast.cmi kernel/declarations.cmi library/declare.cmi \
@@ -1197,13 +1173,14 @@ toplevel/vernacentries.cmo: parsing/ast.cmi parsing/astterm.cmi \
proofs/refiner.cmi parsing/search.cmi lib/stamps.cmi library/states.cmi \
pretyping/syntax_def.cmi lib/system.cmi proofs/tacinterp.cmi \
proofs/tacmach.cmi pretyping/tacred.cmi proofs/tactic_debug.cmi \
- tactics/tactics.cmi kernel/term.cmi kernel/typeops.cmi lib/util.cmi \
- toplevel/vernacinterp.cmi toplevel/vernacentries.cmi
+ tactics/tactics.cmi kernel/term.cmi parsing/termast.cmi \
+ kernel/typeops.cmi lib/util.cmi toplevel/vernacinterp.cmi \
+ toplevel/vernacentries.cmi
toplevel/vernacentries.cmx: parsing/ast.cmx parsing/astterm.cmx \
toplevel/class.cmx pretyping/classops.cmx toplevel/command.cmx \
parsing/coqast.cmx kernel/declarations.cmx library/declare.cmx \
toplevel/discharge.cmx kernel/environ.cmx pretyping/evarutil.cmx \
- kernel/evd.cmx parsing/extend.cmx library/global.cmx library/goptions.cmx \
+ kernel/evd.cmx parsing/extend.cmi library/global.cmx library/goptions.cmx \
library/impargs.cmx library/lib.cmx library/libobject.cmx \
library/library.cmx toplevel/metasyntax.cmx kernel/names.cmx \
library/nametab.cmx lib/options.cmx proofs/pfedit.cmx lib/pp.cmx \
@@ -1213,8 +1190,9 @@ toplevel/vernacentries.cmx: parsing/ast.cmx parsing/astterm.cmx \
proofs/refiner.cmx parsing/search.cmx lib/stamps.cmx library/states.cmx \
pretyping/syntax_def.cmx lib/system.cmx proofs/tacinterp.cmx \
proofs/tacmach.cmx pretyping/tacred.cmx proofs/tactic_debug.cmx \
- tactics/tactics.cmx kernel/term.cmx kernel/typeops.cmx lib/util.cmx \
- toplevel/vernacinterp.cmx toplevel/vernacentries.cmi
+ tactics/tactics.cmx kernel/term.cmx parsing/termast.cmx \
+ kernel/typeops.cmx lib/util.cmx toplevel/vernacinterp.cmx \
+ toplevel/vernacentries.cmi
toplevel/vernacinterp.cmo: parsing/ast.cmi parsing/astterm.cmi \
toplevel/command.cmi parsing/coqast.cmi lib/dyn.cmi toplevel/himsg.cmi \
kernel/names.cmi library/nametab.cmi lib/options.cmi lib/pp.cmi \
@@ -1225,25 +1203,19 @@ toplevel/vernacinterp.cmx: parsing/ast.cmx parsing/astterm.cmx \
kernel/names.cmx library/nametab.cmx lib/options.cmx lib/pp.cmx \
pretyping/pretype_errors.cmx proofs/proof_type.cmx proofs/tacinterp.cmx \
lib/util.cmx toplevel/vernacinterp.cmi
-toplevel/vernac.cmo: parsing/ast.cmi parsing/coqast.cmi \
- toplevel/discharge.cmi library/library.cmi lib/options.cmi \
- parsing/pcoq.cmi proofs/pfedit.cmi lib/pp.cmi library/states.cmi \
- lib/system.cmi lib/util.cmi toplevel/vernacinterp.cmi toplevel/vernac.cmi
-toplevel/vernac.cmx: parsing/ast.cmx parsing/coqast.cmx \
- toplevel/discharge.cmx library/library.cmx lib/options.cmx \
- parsing/pcoq.cmx proofs/pfedit.cmx lib/pp.cmx library/states.cmx \
- lib/system.cmx lib/util.cmx toplevel/vernacinterp.cmx toplevel/vernac.cmi
contrib/omega/coq_omega.cmo: parsing/ast.cmi proofs/clenv.cmi \
- library/declare.cmi kernel/environ.cmi tactics/equality.cmi \
- kernel/evd.cmi library/global.cmi kernel/inductive.cmi proofs/logic.cmi \
- kernel/names.cmi contrib/omega/omega.cmo lib/pp.cmi parsing/printer.cmi \
+ kernel/closure.cmi library/declare.cmi kernel/environ.cmi \
+ tactics/equality.cmi kernel/evd.cmi library/global.cmi \
+ kernel/inductive.cmi proofs/logic.cmi kernel/names.cmi \
+ contrib/omega/omega.cmo lib/pp.cmi parsing/printer.cmi \
proofs/proof_type.cmi kernel/reduction.cmi pretyping/retyping.cmi \
kernel/sign.cmi proofs/tacmach.cmi tactics/tactics.cmi kernel/term.cmi \
lib/util.cmi
contrib/omega/coq_omega.cmx: parsing/ast.cmx proofs/clenv.cmx \
- library/declare.cmx kernel/environ.cmx tactics/equality.cmx \
- kernel/evd.cmx library/global.cmx kernel/inductive.cmx proofs/logic.cmx \
- kernel/names.cmx contrib/omega/omega.cmx lib/pp.cmx parsing/printer.cmx \
+ kernel/closure.cmx library/declare.cmx kernel/environ.cmx \
+ tactics/equality.cmx kernel/evd.cmx library/global.cmx \
+ kernel/inductive.cmx proofs/logic.cmx kernel/names.cmx \
+ contrib/omega/omega.cmx lib/pp.cmx parsing/printer.cmx \
proofs/proof_type.cmx kernel/reduction.cmx pretyping/retyping.cmx \
kernel/sign.cmx proofs/tacmach.cmx tactics/tactics.cmx kernel/term.cmx \
lib/util.cmx
@@ -1275,6 +1247,8 @@ contrib/ring/ring.cmx: parsing/astterm.cmx kernel/closure.cmx \
kernel/reduction.cmx library/summary.cmx proofs/tacmach.cmx \
pretyping/tacred.cmx tactics/tactics.cmx kernel/term.cmx \
pretyping/typing.cmx lib/util.cmx toplevel/vernacinterp.cmx
+contrib/xml/xml.cmo: contrib/xml/xml.cmi
+contrib/xml/xml.cmx: contrib/xml/xml.cmi
contrib/xml/xmlcommand.cmo: kernel/declarations.cmi library/declare.cmi \
kernel/environ.cmi kernel/evd.cmi library/global.cmi library/lib.cmi \
library/libobject.cmi library/library.cmi kernel/names.cmi \
@@ -1293,5 +1267,3 @@ contrib/xml/xmlentries.cmo: lib/util.cmi toplevel/vernacinterp.cmi \
contrib/xml/xmlcommand.cmi
contrib/xml/xmlentries.cmx: lib/util.cmx toplevel/vernacinterp.cmx \
contrib/xml/xmlcommand.cmx
-contrib/xml/xml.cmo: contrib/xml/xml.cmi
-contrib/xml/xml.cmx: contrib/xml/xml.cmi
diff --git a/.depend.camlp4 b/.depend.camlp4
index 33c7bacf4d..ce5ebba664 100644
--- a/.depend.camlp4
+++ b/.depend.camlp4
@@ -4,6 +4,8 @@ tactics/tauto.cmo: parsing/ast.cmi parsing/coqast.cmi tactics/hipattern.cmi \
tactics/tauto.cmx: parsing/ast.cmx parsing/coqast.cmx tactics/hipattern.cmx \
kernel/names.cmx lib/pp.cmx proofs/proof_type.cmx proofs/tacinterp.cmx \
proofs/tacmach.cmx tactics/tacticals.cmx tactics/tactics.cmx
+parsing/lexer.cmo: parsing/lexer.cmi
+parsing/lexer.cmx: parsing/lexer.cmi
parsing/q_coqast.cmo: parsing/coqast.cmi parsing/pcoq.cmi
parsing/q_coqast.cmx: parsing/coqast.cmx parsing/pcoq.cmx
parsing/g_prim.cmo: parsing/coqast.cmi parsing/pcoq.cmi toplevel/vernac.cmi
@@ -22,10 +24,10 @@ parsing/g_minicoq.cmo: kernel/environ.cmi parsing/lexer.cmi kernel/names.cmi \
parsing/g_minicoq.cmx: kernel/environ.cmx parsing/lexer.cmx kernel/names.cmx \
lib/pp.cmx kernel/term.cmx kernel/univ.cmx lib/util.cmx \
parsing/g_minicoq.cmi
-parsing/g_vernac.cmo: parsing/coqast.cmi parsing/pcoq.cmi lib/pp.cmi \
- lib/util.cmi toplevel/vernac.cmi
-parsing/g_vernac.cmx: parsing/coqast.cmx parsing/pcoq.cmx lib/pp.cmx \
- lib/util.cmx toplevel/vernac.cmx
+parsing/g_vernac.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi \
+ lib/pp.cmi lib/util.cmi toplevel/vernac.cmi
+parsing/g_vernac.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx \
+ lib/pp.cmx lib/util.cmx toplevel/vernac.cmx
parsing/g_proofs.cmo: parsing/coqast.cmi parsing/pcoq.cmi lib/pp.cmi \
lib/util.cmi toplevel/vernac.cmi
parsing/g_proofs.cmx: parsing/coqast.cmx parsing/pcoq.cmx lib/pp.cmx \
@@ -35,9 +37,9 @@ parsing/g_cases.cmx: parsing/coqast.cmx parsing/pcoq.cmx
parsing/g_constr.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi
parsing/g_constr.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx
parsing/g_tactic.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/pcoq.cmi \
- lib/pp.cmi lib/util.cmi
+ lib/pp.cmi lib/util.cmi toplevel/vernac.cmi
parsing/g_tactic.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/pcoq.cmx \
- lib/pp.cmx lib/util.cmx
+ lib/pp.cmx lib/util.cmx toplevel/vernac.cmx
parsing/extend.cmo: parsing/ast.cmi parsing/coqast.cmi parsing/lexer.cmi \
parsing/pcoq.cmi lib/pp.cmi lib/util.cmi parsing/extend.cmi
parsing/extend.cmx: parsing/ast.cmx parsing/coqast.cmx parsing/lexer.cmx \
@@ -48,16 +50,17 @@ toplevel/mltop.cmo: library/lib.cmi library/libobject.cmi library/library.cmi \
toplevel/mltop.cmx: library/lib.cmx library/libobject.cmx library/library.cmx \
lib/pp.cmx library/summary.cmx lib/system.cmx lib/util.cmx \
toplevel/vernacinterp.cmx toplevel/mltop.cmi
-tactics/tauto.ml: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo
-parsing/q_coqast.ml:
-parsing/g_prim.ml:
-parsing/pcoq.ml:
-parsing/g_basevernac.ml: parsing/grammar.cma
-parsing/g_minicoq.ml: parsing/grammar.cma
-parsing/g_vernac.ml: parsing/grammar.cma
-parsing/g_proofs.ml: parsing/grammar.cma
-parsing/g_cases.ml: parsing/grammar.cma
-parsing/g_constr.ml: parsing/grammar.cma
-parsing/g_tactic.ml: parsing/grammar.cma
-parsing/extend.ml: parsing/grammar.cma
-toplevel/mltop.ml:
+tactics/tauto.cmo: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo
+parsing/lexer.cmo:
+parsing/q_coqast.cmo:
+parsing/g_prim.cmo:
+parsing/pcoq.cmo:
+parsing/g_basevernac.cmo: parsing/grammar.cma
+parsing/g_minicoq.cmo: parsing/grammar.cma
+parsing/g_vernac.cmo: parsing/grammar.cma
+parsing/g_proofs.cmo: parsing/grammar.cma
+parsing/g_cases.cmo: parsing/grammar.cma
+parsing/g_constr.cmo: parsing/grammar.cma
+parsing/g_tactic.cmo: parsing/grammar.cma
+parsing/extend.cmo: parsing/grammar.cma
+toplevel/mltop.cmo:
diff --git a/.depend.camlp4.2 b/.depend.camlp4.2
new file mode 100644
index 0000000000..94ccf56710
--- /dev/null
+++ b/.depend.camlp4.2
@@ -0,0 +1,14 @@
+tactics/tauto.ml: parsing/grammar.cma kernel/names.cmo parsing/ast.cmo parsing/g_tactic.cmo parsing/g_constr.cmo
+parsing/lexer.ml:
+parsing/q_coqast.ml:
+parsing/g_prim.ml:
+parsing/pcoq.ml:
+parsing/g_basevernac.ml: parsing/grammar.cma
+parsing/g_minicoq.ml: parsing/grammar.cma
+parsing/g_vernac.ml: parsing/grammar.cma
+parsing/g_proofs.ml: parsing/grammar.cma
+parsing/g_cases.ml: parsing/grammar.cma
+parsing/g_constr.ml: parsing/grammar.cma
+parsing/g_tactic.ml: parsing/grammar.cma
+parsing/extend.ml: parsing/grammar.cma
+toplevel/mltop.ml:
diff --git a/.depend.coq b/.depend.coq
index e356249c43..9770de1d3d 100644
--- a/.depend.coq
+++ b/.depend.coq
@@ -51,9 +51,25 @@ theories/Reals/Reals.vo: theories/Reals/Reals.v theories/Reals/Rdefinitions.vo t
theories/Reals/Rderiv.vo: theories/Reals/Rderiv.v theories/Reals/Rfunctions.vo theories/Logic/Classical_Pred_Type.vo contrib/omega/Omega.vo
theories/Reals/Rdefinitions.vo: theories/Reals/Rdefinitions.v theories/Zarith/ZArith.vo theories/Reals/TypeSyntax.vo
theories/Reals/Rbasic_fun.vo: theories/Reals/Rbasic_fun.v theories/Reals/R_Ifp.vo
-theories/Reals/Rbase.vo: theories/Reals/Rbase.v theories/Reals/Raxioms.vo contrib/ring/ZArithRing.vo theories/Logic/Classical_Prop.vo contrib/omega/Omega.vo
+theories/Reals/Rbase.vo: theories/Reals/Rbase.v theories/Reals/Raxioms.vo contrib/ring/ZArithRing.vo contrib/omega/Omega.vo
theories/Reals/Raxioms.vo: theories/Reals/Raxioms.v theories/Zarith/ZArith.vo theories/Reals/Rsyntax.vo theories/Reals/TypeSyntax.vo
theories/Reals/R_Ifp.vo: theories/Reals/R_Ifp.v theories/Reals/Rbase.vo contrib/omega/Omega.vo
+theories/Num/SubProps.vo: theories/Num/SubProps.v
+theories/Num/OppProps.vo: theories/Num/OppProps.v
+theories/Num/OppAxioms.vo: theories/Num/OppAxioms.v
+theories/Num/NSyntax.vo: theories/Num/NSyntax.v
+theories/Num/LtProps.vo: theories/Num/LtProps.v theories/Num/Axioms.vo theories/Num/AddProps.vo
+theories/Num/LeProps.vo: theories/Num/LeProps.v theories/Num/LtProps.vo theories/Num/LeAxioms.vo
+theories/Num/LeAxioms.vo: theories/Num/LeAxioms.v theories/Num/Axioms.vo theories/Num/LtProps.vo
+theories/Num/GtProps.vo: theories/Num/GtProps.v
+theories/Num/GtAxioms.vo: theories/Num/GtAxioms.v theories/Num/Axioms.vo theories/Num/LeProps.vo
+theories/Num/GeProps.vo: theories/Num/GeProps.v
+theories/Num/GeAxioms.vo: theories/Num/GeAxioms.v theories/Num/Axioms.vo theories/Num/LtProps.vo
+theories/Num/DiscrProps.vo: theories/Num/DiscrProps.v theories/Num/DiscrAxioms.vo theories/Num/LtProps.vo
+theories/Num/DiscrAxioms.vo: theories/Num/DiscrAxioms.v theories/Num/NSyntax.vo
+theories/Num/Definitions.vo: theories/Num/Definitions.v
+theories/Num/Axioms.vo: theories/Num/Axioms.v theories/Num/NSyntax.vo
+theories/Num/AddProps.vo: theories/Num/AddProps.v theories/Num/Axioms.vo
theories/Logic/Eqdep_dec.vo: theories/Logic/Eqdep_dec.v
theories/Logic/Eqdep.vo: theories/Logic/Eqdep.v
theories/Logic/Classical_Type.vo: theories/Logic/Classical_Type.v theories/Logic/Classical_Prop.vo theories/Logic/Classical_Pred_Type.vo
@@ -103,28 +119,174 @@ theories/Arith/Compare.vo: theories/Arith/Compare.v theories/Arith/Arith.vo theo
theories/Arith/Between.vo: theories/Arith/Between.v theories/Arith/Le.vo theories/Arith/Lt.vo
theories/Arith/Arith.vo: theories/Arith/Arith.v theories/Arith/Le.vo theories/Arith/Lt.vo theories/Arith/Plus.vo theories/Arith/Gt.vo theories/Arith/Minus.vo theories/Arith/Mult.vo theories/Arith/Between.vo
test-suite/tactics/TestRefine.vo: test-suite/tactics/TestRefine.v tactics/Refine.vo theories/Init/Wf.vo theories/Arith/Wf_nat.vo theories/Arith/Compare_dec.vo theories/Arith/Lt.vo
+test-suite/success/unfold.vo: test-suite/success/unfold.v
+test-suite/success/mutual_ind.vo: test-suite/success/mutual_ind.v theories/Lists/PolyList.vo
+test-suite/success/induct.vo: test-suite/success/induct.v theories/Lists/PolyList.vo
+test-suite/success/inds_type_sec.vo: test-suite/success/inds_type_sec.v
+test-suite/success/fix.vo: test-suite/success/fix.v theories/Bool/Bool.vo theories/Zarith/ZArith.vo
+test-suite/success/Check.vo: test-suite/success/Check.v
+test-suite/success/Cases.vo: test-suite/success/Cases.v theories/Bool/Bool.vo theories/Arith/Peano_dec.vo theories/Init/Prelude.vo theories/Init/Logic_TypeSyntax.vo theories/Init/Logic_Type.vo
+test-suite/success/Apply.vo: test-suite/success/Apply.v
+test-suite/failure/redef.vo: test-suite/failure/redef.v
+test-suite/failure/positivity.vo: test-suite/failure/positivity.v
+test-suite/failure/illtype1.vo: test-suite/failure/illtype1.v
+test-suite/failure/clash_cons.vo: test-suite/failure/clash_cons.v
test-suite/bench/lists_100.vo: test-suite/bench/lists_100.v
test-suite/bench/lists-100.vo: test-suite/bench/lists-100.v
-contrib/xml/Xml.vo: contrib/xml/Xml.v
+contrib/xml/Xml.vo: contrib/xml/Xml.v contrib/xml/xml.cmo contrib/xml/xmlcommand.cmo contrib/xml/xmlentries.cmo
contrib/ring/ZArithRing.vo: contrib/ring/ZArithRing.v contrib/ring/ArithRing.vo theories/Zarith/ZArith.vo theories/Logic/Eqdep_dec.vo
contrib/ring/Ring_theory.vo: contrib/ring/Ring_theory.v theories/Bool/Bool.vo
contrib/ring/Ring_normalize.vo: contrib/ring/Ring_normalize.v contrib/ring/Ring_theory.vo contrib/ring/Quote.vo
contrib/ring/Ring_abstract.vo: contrib/ring/Ring_abstract.v contrib/ring/Ring_theory.vo contrib/ring/Quote.vo contrib/ring/Ring_normalize.vo
-contrib/ring/Ring.vo: contrib/ring/Ring.v theories/Bool/Bool.vo contrib/ring/Ring_theory.vo contrib/ring/Quote.vo contrib/ring/Ring_normalize.vo contrib/ring/Ring_abstract.vo
-contrib/ring/Quote.vo: contrib/ring/Quote.v
+contrib/ring/Ring.vo: contrib/ring/Ring.v theories/Bool/Bool.vo contrib/ring/Ring_theory.vo contrib/ring/Quote.vo contrib/ring/Ring_normalize.vo contrib/ring/Ring_abstract.vo contrib/ring/ring.cmo
+contrib/ring/Quote.vo: contrib/ring/Quote.v contrib/ring/quote.cmo
contrib/ring/ArithRing.vo: contrib/ring/ArithRing.v contrib/ring/Ring.vo theories/Arith/Arith.vo theories/Logic/Eqdep_dec.vo
contrib/omega/Zpower.vo: contrib/omega/Zpower.v theories/Zarith/ZArith.vo contrib/omega/Omega.vo contrib/omega/Zcomplements.vo
contrib/omega/Zlogarithm.vo: contrib/omega/Zlogarithm.v theories/Zarith/ZArith.vo contrib/omega/Omega.vo contrib/omega/Zcomplements.vo contrib/omega/Zpower.vo
contrib/omega/Zcomplements.vo: contrib/omega/Zcomplements.v theories/Zarith/ZArith.vo contrib/omega/Omega.vo theories/Arith/Wf_nat.vo
contrib/omega/OmegaSyntax.vo: contrib/omega/OmegaSyntax.v
-contrib/omega/Omega.vo: contrib/omega/Omega.v theories/Zarith/ZArith.vo theories/Arith/Minus.vo contrib/omega/OmegaSyntax.vo
+contrib/omega/Omega.vo: contrib/omega/Omega.v theories/Zarith/ZArith.vo theories/Arith/Minus.vo contrib/omega/omega.cmo contrib/omega/coq_omega.cmo contrib/omega/OmegaSyntax.vo
tactics/Tauto.vo: tactics/Tauto.v
tactics/Refine.vo: tactics/Refine.v
tactics/Inv.vo: tactics/Inv.v tactics/Equality.vo
tactics/Equality.vo: tactics/Equality.v
tactics/EAuto.vo: tactics/EAuto.v
+tactics/AutoRewrite.vo: tactics/AutoRewrite.v
syntax/PPTactic.vo: syntax/PPTactic.v
syntax/PPConstr.vo: syntax/PPConstr.v
syntax/PPCases.vo: syntax/PPCases.v
syntax/MakeBare.vo: syntax/MakeBare.v
-states/MakeInitial.vo: states/MakeInitial.v theories/Init/Prelude.vo theories/Init/Logic_Type.vo theories/Init/Logic_TypeSyntax.vo tactics/Equality.vo tactics/Tauto.vo tactics/Inv.vo tactics/EAuto.vo tactics/Refine.vo
+states/MakeInitial.vo: states/MakeInitial.v theories/Init/Prelude.vo theories/Init/Logic_Type.vo theories/Init/Logic_TypeSyntax.vo tactics/Equality.vo tactics/Tauto.vo tactics/Inv.vo tactics/EAuto.vo tactics/AutoRewrite.vo tactics/Refine.vo
+contrib/xml/Xml.vo: contrib/xml/Xml.v contrib/xml/xml.cmo contrib/xml/xmlcommand.cmo contrib/xml/xmlentries.cmo
+contrib/ring/ZArithRing.vo: contrib/ring/ZArithRing.v contrib/ring/ArithRing.vo theories/Zarith/ZArith.vo theories/Logic/Eqdep_dec.vo
+contrib/ring/Ring_theory.vo: contrib/ring/Ring_theory.v theories/Bool/Bool.vo
+contrib/ring/Ring_normalize.vo: contrib/ring/Ring_normalize.v contrib/ring/Ring_theory.vo contrib/ring/Quote.vo
+contrib/ring/Ring_abstract.vo: contrib/ring/Ring_abstract.v contrib/ring/Ring_theory.vo contrib/ring/Quote.vo contrib/ring/Ring_normalize.vo
+contrib/ring/Ring.vo: contrib/ring/Ring.v theories/Bool/Bool.vo contrib/ring/Ring_theory.vo contrib/ring/Quote.vo contrib/ring/Ring_normalize.vo contrib/ring/Ring_abstract.vo contrib/ring/ring.cmo
+contrib/ring/Quote.vo: contrib/ring/Quote.v contrib/ring/quote.cmo
+contrib/ring/ArithRing.vo: contrib/ring/ArithRing.v contrib/ring/Ring.vo theories/Arith/Arith.vo theories/Logic/Eqdep_dec.vo
+contrib/omega/Zpower.vo: contrib/omega/Zpower.v theories/Zarith/ZArith.vo contrib/omega/Omega.vo contrib/omega/Zcomplements.vo
+contrib/omega/Zcomplements.vo: contrib/omega/Zcomplements.v theories/Zarith/ZArith.vo contrib/omega/Omega.vo theories/Arith/Wf_nat.vo
+contrib/omega/OmegaSyntax.vo: contrib/omega/OmegaSyntax.v
+contrib/omega/Omega.vo: contrib/omega/Omega.v theories/Zarith/ZArith.vo theories/Arith/Minus.vo contrib/omega/omega.cmo contrib/omega/coq_omega.cmo contrib/omega/OmegaSyntax.vo
+contrib/omega/Zlogarithm.vo: contrib/omega/Zlogarithm.v theories/Zarith/ZArith.vo contrib/omega/Omega.vo contrib/omega/Zcomplements.vo contrib/omega/Zpower.vo
+theories/Num/SubProps.vo: theories/Num/SubProps.v
+theories/Num/OppProps.vo: theories/Num/OppProps.v
+theories/Num/OppAxioms.vo: theories/Num/OppAxioms.v
+theories/Num/NSyntax.vo: theories/Num/NSyntax.v
+theories/Num/LtProps.vo: theories/Num/LtProps.v theories/Num/Axioms.vo theories/Num/AddProps.vo
+theories/Num/LeProps.vo: theories/Num/LeProps.v theories/Num/LtProps.vo theories/Num/LeAxioms.vo
+theories/Num/LeAxioms.vo: theories/Num/LeAxioms.v theories/Num/Axioms.vo theories/Num/LtProps.vo
+theories/Num/GtProps.vo: theories/Num/GtProps.v
+theories/Num/GtAxioms.vo: theories/Num/GtAxioms.v theories/Num/Axioms.vo theories/Num/LeProps.vo
+theories/Num/GeProps.vo: theories/Num/GeProps.v
+theories/Num/GeAxioms.vo: theories/Num/GeAxioms.v theories/Num/Axioms.vo theories/Num/LtProps.vo
+theories/Num/DiscrProps.vo: theories/Num/DiscrProps.v theories/Num/DiscrAxioms.vo theories/Num/LtProps.vo
+theories/Num/DiscrAxioms.vo: theories/Num/DiscrAxioms.v theories/Num/NSyntax.vo
+theories/Num/Definitions.vo: theories/Num/Definitions.v
+theories/Num/Axioms.vo: theories/Num/Axioms.v theories/Num/NSyntax.vo
+theories/Num/AddProps.vo: theories/Num/AddProps.v theories/Num/Axioms.vo
+theories/Zarith/zarith_aux.vo: theories/Zarith/zarith_aux.v theories/Arith/Arith.vo theories/Zarith/fast_integer.vo
+theories/Zarith/fast_integer.vo: theories/Zarith/fast_integer.v theories/Arith/Le.vo theories/Arith/Lt.vo theories/Arith/Plus.vo theories/Arith/Mult.vo theories/Arith/Minus.vo
+theories/Zarith/auxiliary.vo: theories/Zarith/auxiliary.v theories/Arith/Arith.vo theories/Zarith/fast_integer.vo theories/Zarith/zarith_aux.vo theories/Arith/Peano_dec.vo theories/Arith/Compare_dec.vo
+theories/Zarith/Zsyntax.vo: theories/Zarith/Zsyntax.v theories/Zarith/fast_integer.vo theories/Zarith/zarith_aux.vo
+theories/Zarith/Zmisc.vo: theories/Zarith/Zmisc.v theories/Zarith/fast_integer.vo theories/Zarith/zarith_aux.vo theories/Zarith/auxiliary.vo theories/Zarith/Zsyntax.vo theories/Bool/Bool.vo
+theories/Zarith/ZArith_dec.vo: theories/Zarith/ZArith_dec.v theories/Bool/Sumbool.vo theories/Zarith/fast_integer.vo theories/Zarith/zarith_aux.vo theories/Zarith/auxiliary.vo theories/Zarith/Zsyntax.vo
+theories/Zarith/Wf_Z.vo: theories/Zarith/Wf_Z.v theories/Zarith/fast_integer.vo theories/Zarith/zarith_aux.vo theories/Zarith/auxiliary.vo theories/Zarith/Zsyntax.vo
+theories/Zarith/ZArith.vo: theories/Zarith/ZArith.v theories/Zarith/fast_integer.vo theories/Zarith/zarith_aux.vo theories/Zarith/auxiliary.vo theories/Zarith/Zsyntax.vo theories/Zarith/ZArith_dec.vo theories/Zarith/Zmisc.vo theories/Zarith/Wf_Z.vo
+theories/Wellfounded/Wellfounded.vo: theories/Wellfounded/Wellfounded.v theories/Wellfounded/Disjoint_Union.vo theories/Wellfounded/Inclusion.vo theories/Wellfounded/Inverse_Image.vo theories/Wellfounded/Lexicographic_Exponentiation.vo theories/Wellfounded/Lexicographic_Product.vo theories/Wellfounded/Transitive_Closure.vo theories/Wellfounded/Union.vo theories/Wellfounded/Well_Ordering.vo
+theories/Wellfounded/Well_Ordering.vo: theories/Wellfounded/Well_Ordering.v theories/Logic/Eqdep.vo
+theories/Wellfounded/Union.vo: theories/Wellfounded/Union.v theories/Relations/Relation_Operators.vo theories/Relations/Relation_Definitions.vo theories/Wellfounded/Transitive_Closure.vo
+theories/Wellfounded/Transitive_Closure.vo: theories/Wellfounded/Transitive_Closure.v theories/Relations/Relation_Definitions.vo theories/Relations/Relation_Operators.vo
+theories/Wellfounded/Lexicographic_Product.vo: theories/Wellfounded/Lexicographic_Product.v theories/Logic/Eqdep.vo theories/Relations/Relation_Operators.vo theories/Wellfounded/Transitive_Closure.vo
+theories/Wellfounded/Lexicographic_Exponentiation.vo: theories/Wellfounded/Lexicographic_Exponentiation.v theories/Logic/Eqdep.vo theories/Lists/PolyList.vo theories/Lists/PolyListSyntax.vo theories/Relations/Relation_Operators.vo theories/Wellfounded/Transitive_Closure.vo
+theories/Wellfounded/Inverse_Image.vo: theories/Wellfounded/Inverse_Image.v
+theories/Wellfounded/Inclusion.vo: theories/Wellfounded/Inclusion.v theories/Relations/Relation_Definitions.vo
+theories/Wellfounded/Disjoint_Union.vo: theories/Wellfounded/Disjoint_Union.v theories/Relations/Relation_Operators.vo
+theories/Sets/Uniset.vo: theories/Sets/Uniset.v theories/Bool/Bool.vo theories/Sets/Permut.vo
+theories/Sets/Relations_3_facts.vo: theories/Sets/Relations_3_facts.v theories/Sets/Relations_1.vo theories/Sets/Relations_1_facts.vo theories/Sets/Relations_2.vo theories/Sets/Relations_2_facts.vo theories/Sets/Relations_3.vo
+theories/Sets/Relations_3.vo: theories/Sets/Relations_3.v theories/Sets/Relations_1.vo theories/Sets/Relations_2.vo
+theories/Sets/Relations_2_facts.vo: theories/Sets/Relations_2_facts.v theories/Sets/Relations_1.vo theories/Sets/Relations_1_facts.vo theories/Sets/Relations_2.vo
+theories/Sets/Relations_2.vo: theories/Sets/Relations_2.v theories/Sets/Relations_1.vo
+theories/Sets/Relations_1_facts.vo: theories/Sets/Relations_1_facts.v theories/Sets/Relations_1.vo
+theories/Sets/Relations_1.vo: theories/Sets/Relations_1.v
+theories/Sets/Powerset_facts.vo: theories/Sets/Powerset_facts.v theories/Sets/Ensembles.vo theories/Sets/Constructive_sets.vo theories/Sets/Relations_1.vo theories/Sets/Relations_1_facts.vo theories/Sets/Partial_Order.vo theories/Sets/Cpo.vo theories/Sets/Powerset.vo
+theories/Sets/Powerset_Classical_facts.vo: theories/Sets/Powerset_Classical_facts.v theories/Sets/Ensembles.vo theories/Sets/Constructive_sets.vo theories/Sets/Relations_1.vo theories/Sets/Relations_1_facts.vo theories/Sets/Partial_Order.vo theories/Sets/Cpo.vo theories/Sets/Powerset.vo theories/Sets/Powerset_facts.vo theories/Logic/Classical_Type.vo theories/Sets/Classical_sets.vo
+theories/Sets/Powerset.vo: theories/Sets/Powerset.v theories/Sets/Ensembles.vo theories/Sets/Relations_1.vo theories/Sets/Relations_1_facts.vo theories/Sets/Partial_Order.vo theories/Sets/Cpo.vo
+theories/Sets/Permut.vo: theories/Sets/Permut.v
+theories/Sets/Partial_Order.vo: theories/Sets/Partial_Order.v theories/Sets/Ensembles.vo theories/Sets/Relations_1.vo
+theories/Sets/Multiset.vo: theories/Sets/Multiset.v theories/Sets/Permut.vo theories/Arith/Plus.vo
+theories/Sets/Integers.vo: theories/Sets/Integers.v theories/Sets/Finite_sets.vo theories/Sets/Constructive_sets.vo theories/Logic/Classical_Type.vo theories/Sets/Classical_sets.vo theories/Sets/Powerset.vo theories/Sets/Powerset_facts.vo theories/Sets/Powerset_Classical_facts.vo theories/Arith/Gt.vo theories/Arith/Lt.vo theories/Arith/Le.vo theories/Sets/Finite_sets_facts.vo theories/Sets/Image.vo theories/Sets/Infinite_sets.vo theories/Arith/Compare_dec.vo theories/Sets/Relations_1.vo theories/Sets/Partial_Order.vo theories/Sets/Cpo.vo
+theories/Sets/Infinite_sets.vo: theories/Sets/Infinite_sets.v theories/Sets/Finite_sets.vo theories/Sets/Constructive_sets.vo theories/Logic/Classical_Type.vo theories/Sets/Classical_sets.vo theories/Sets/Powerset.vo theories/Sets/Powerset_facts.vo theories/Sets/Powerset_Classical_facts.vo theories/Arith/Gt.vo theories/Arith/Lt.vo theories/Arith/Le.vo theories/Sets/Finite_sets_facts.vo theories/Sets/Image.vo
+theories/Sets/Image.vo: theories/Sets/Image.v theories/Sets/Finite_sets.vo theories/Sets/Constructive_sets.vo theories/Logic/Classical_Type.vo theories/Sets/Classical_sets.vo theories/Sets/Powerset.vo theories/Sets/Powerset_facts.vo theories/Sets/Powerset_Classical_facts.vo theories/Arith/Gt.vo theories/Arith/Lt.vo theories/Arith/Le.vo theories/Sets/Finite_sets_facts.vo
+theories/Sets/Finite_sets_facts.vo: theories/Sets/Finite_sets_facts.v theories/Sets/Finite_sets.vo theories/Sets/Constructive_sets.vo theories/Logic/Classical_Type.vo theories/Sets/Classical_sets.vo theories/Sets/Powerset.vo theories/Sets/Powerset_facts.vo theories/Sets/Powerset_Classical_facts.vo theories/Arith/Gt.vo theories/Arith/Lt.vo
+theories/Sets/Finite_sets.vo: theories/Sets/Finite_sets.v theories/Sets/Ensembles.vo theories/Sets/Constructive_sets.vo
+theories/Sets/Ensembles.vo: theories/Sets/Ensembles.v
+theories/Sets/Cpo.vo: theories/Sets/Cpo.v theories/Sets/Ensembles.vo theories/Sets/Relations_1.vo theories/Sets/Partial_Order.vo
+theories/Sets/Constructive_sets.vo: theories/Sets/Constructive_sets.v theories/Sets/Ensembles.vo
+theories/Sets/Classical_sets.vo: theories/Sets/Classical_sets.v theories/Sets/Ensembles.vo theories/Sets/Constructive_sets.vo theories/Logic/Classical_Type.vo
+theories/Relations/Rstar.vo: theories/Relations/Rstar.v
+theories/Relations/Relations.vo: theories/Relations/Relations.v theories/Relations/Relation_Definitions.vo theories/Relations/Relation_Operators.vo theories/Relations/Operators_Properties.vo
+theories/Relations/Relation_Operators.vo: theories/Relations/Relation_Operators.v theories/Relations/Relation_Definitions.vo theories/Lists/PolyList.vo theories/Lists/PolyListSyntax.vo
+theories/Relations/Relation_Definitions.vo: theories/Relations/Relation_Definitions.v
+theories/Relations/Operators_Properties.vo: theories/Relations/Operators_Properties.v theories/Relations/Relation_Definitions.vo theories/Relations/Relation_Operators.vo
+theories/Relations/Newman.vo: theories/Relations/Newman.v theories/Relations/Rstar.vo
+theories/Reals/TypeSyntax.vo: theories/Reals/TypeSyntax.v
+theories/Reals/Rsyntax.vo: theories/Reals/Rsyntax.v theories/Reals/Rdefinitions.vo
+theories/Reals/Rlimit.vo: theories/Reals/Rlimit.v theories/Reals/Rbasic_fun.vo theories/Logic/Classical_Prop.vo
+theories/Reals/Rfunctions.vo: theories/Reals/Rfunctions.v theories/Reals/Rlimit.vo
+theories/Reals/Reals.vo: theories/Reals/Reals.v theories/Reals/Rdefinitions.vo theories/Reals/TypeSyntax.vo theories/Reals/Raxioms.vo theories/Reals/Rbase.vo theories/Reals/R_Ifp.vo theories/Reals/Rbasic_fun.vo theories/Reals/Rlimit.vo theories/Reals/Rfunctions.vo theories/Reals/Rderiv.vo
+theories/Reals/Rderiv.vo: theories/Reals/Rderiv.v theories/Reals/Rfunctions.vo theories/Logic/Classical_Pred_Type.vo contrib/omega/Omega.vo
+theories/Reals/Rdefinitions.vo: theories/Reals/Rdefinitions.v theories/Zarith/ZArith.vo theories/Reals/TypeSyntax.vo
+theories/Reals/Rbase.vo: theories/Reals/Rbase.v theories/Reals/Raxioms.vo contrib/ring/ZArithRing.vo contrib/omega/Omega.vo
+theories/Reals/Rbasic_fun.vo: theories/Reals/Rbasic_fun.v theories/Reals/R_Ifp.vo
+theories/Reals/R_Ifp.vo: theories/Reals/R_Ifp.v theories/Reals/Rbase.vo contrib/omega/Omega.vo
+theories/Reals/Raxioms.vo: theories/Reals/Raxioms.v theories/Zarith/ZArith.vo theories/Reals/Rsyntax.vo theories/Reals/TypeSyntax.vo
+theories/Logic/Eqdep_dec.vo: theories/Logic/Eqdep_dec.v
+theories/Logic/Eqdep.vo: theories/Logic/Eqdep.v
+theories/Logic/Classical_Type.vo: theories/Logic/Classical_Type.v theories/Logic/Classical_Prop.vo theories/Logic/Classical_Pred_Type.vo
+theories/Logic/Classical_Prop.vo: theories/Logic/Classical_Prop.v
+theories/Logic/Classical_Pred_Type.vo: theories/Logic/Classical_Pred_Type.v theories/Logic/Classical_Prop.vo
+theories/Logic/Classical_Pred_Set.vo: theories/Logic/Classical_Pred_Set.v theories/Logic/Classical_Prop.vo
+theories/Logic/Classical.vo: theories/Logic/Classical.v theories/Logic/Classical_Prop.vo theories/Logic/Classical_Pred_Set.vo
+theories/Lists/TheoryList.vo: theories/Lists/TheoryList.v theories/Lists/PolyList.vo theories/Arith/Le.vo theories/Arith/Lt.vo theories/Arith/Minus.vo theories/Bool/DecBool.vo
+theories/Lists/Streams.vo: theories/Lists/Streams.v
+theories/Lists/PolyListSyntax.vo: theories/Lists/PolyListSyntax.v theories/Lists/PolyList.vo
+theories/Lists/PolyList.vo: theories/Lists/PolyList.v theories/Arith/Le.vo
+theories/Lists/List.vo: theories/Lists/List.v theories/Arith/Le.vo
+theories/Lists/ListSet.vo: theories/Lists/ListSet.v theories/Lists/PolyList.vo
+theories/Init/Wf.vo: theories/Init/Wf.v theories/Init/Logic.vo theories/Init/LogicSyntax.vo
+theories/Init/SpecifSyntax.vo: theories/Init/SpecifSyntax.v theories/Init/LogicSyntax.vo theories/Init/Specif.vo
+theories/Init/Specif.vo: theories/Init/Specif.v theories/Init/Logic.vo theories/Init/LogicSyntax.vo
+theories/Init/Prelude.vo: theories/Init/Prelude.v theories/Init/Datatypes.vo theories/Init/DatatypesSyntax.vo theories/Init/Logic.vo theories/Init/LogicSyntax.vo theories/Init/Specif.vo theories/Init/SpecifSyntax.vo theories/Init/Peano.vo theories/Init/Wf.vo
+theories/Init/Peano.vo: theories/Init/Peano.v theories/Init/Logic.vo theories/Init/LogicSyntax.vo theories/Init/Datatypes.vo
+theories/Init/Logic_TypeSyntax.vo: theories/Init/Logic_TypeSyntax.v theories/Init/Logic_Type.vo
+theories/Init/Logic_Type.vo: theories/Init/Logic_Type.v theories/Init/Logic.vo theories/Init/LogicSyntax.vo
+theories/Init/LogicSyntax.vo: theories/Init/LogicSyntax.v theories/Init/Logic.vo
+theories/Init/Logic.vo: theories/Init/Logic.v theories/Init/Datatypes.vo
+theories/Init/DatatypesSyntax.vo: theories/Init/DatatypesSyntax.v theories/Init/Datatypes.vo
+theories/Init/Datatypes.vo: theories/Init/Datatypes.v
+theories/Bool/Zerob.vo: theories/Bool/Zerob.v theories/Arith/Arith.vo theories/Bool/Bool.vo
+theories/Bool/Sumbool.vo: theories/Bool/Sumbool.v
+theories/Bool/IfProp.vo: theories/Bool/IfProp.v theories/Bool/Bool.vo
+theories/Bool/Bool.vo: theories/Bool/Bool.v
+theories/Bool/DecBool.vo: theories/Bool/DecBool.v
+theories/Arith/Wf_nat.vo: theories/Arith/Wf_nat.v theories/Arith/Lt.vo
+theories/Arith/Plus.vo: theories/Arith/Plus.v theories/Arith/Le.vo theories/Arith/Lt.vo
+theories/Arith/Peano_dec.vo: theories/Arith/Peano_dec.v
+theories/Arith/Mult.vo: theories/Arith/Mult.v theories/Arith/Plus.vo theories/Arith/Minus.vo
+theories/Arith/Minus.vo: theories/Arith/Minus.v theories/Arith/Lt.vo theories/Arith/Le.vo
+theories/Arith/Min.vo: theories/Arith/Min.v theories/Arith/Arith.vo
+theories/Arith/Lt.vo: theories/Arith/Lt.v theories/Arith/Le.vo
+theories/Arith/Le.vo: theories/Arith/Le.v
+theories/Arith/Gt.vo: theories/Arith/Gt.v theories/Arith/Le.vo theories/Arith/Lt.vo theories/Arith/Plus.vo
+theories/Arith/Even.vo: theories/Arith/Even.v
+theories/Arith/Euclid_proof.vo: theories/Arith/Euclid_proof.v theories/Arith/Minus.vo theories/Arith/Euclid_def.vo theories/Arith/Compare_dec.vo theories/Arith/Wf_nat.vo
+theories/Arith/Euclid_def.vo: theories/Arith/Euclid_def.v theories/Arith/Mult.vo
+theories/Arith/EqNat.vo: theories/Arith/EqNat.v
+theories/Arith/Div2.vo: theories/Arith/Div2.v theories/Arith/Lt.vo theories/Arith/Plus.vo theories/Arith/Compare_dec.vo theories/Arith/Even.vo
+theories/Arith/Div.vo: theories/Arith/Div.v theories/Arith/Le.vo theories/Arith/Euclid_def.vo theories/Arith/Compare_dec.vo
+theories/Arith/Compare_dec.vo: theories/Arith/Compare_dec.v theories/Arith/Le.vo theories/Arith/Lt.vo
+theories/Arith/Compare.vo: theories/Arith/Compare.v theories/Arith/Arith.vo theories/Arith/Peano_dec.vo theories/Arith/Compare_dec.vo theories/Arith/Wf_nat.vo theories/Arith/Min.vo
+theories/Arith/Arith.vo: theories/Arith/Arith.v theories/Arith/Le.vo theories/Arith/Lt.vo theories/Arith/Plus.vo theories/Arith/Gt.vo theories/Arith/Minus.vo theories/Arith/Mult.vo theories/Arith/Between.vo
+theories/Arith/Between.vo: theories/Arith/Between.v theories/Arith/Le.vo theories/Arith/Lt.vo
diff --git a/Makefile b/Makefile
index 03c3d172df..0f65fc7a2d 100644
--- a/Makefile
+++ b/Makefile
@@ -532,9 +532,9 @@ ML4FILES +=parsing/g_basevernac.ml4 parsing/g_minicoq.ml4 \
parsing/g_vernac.ml4 parsing/g_proofs.ml4 parsing/g_cases.ml4 \
parsing/g_constr.ml4 parsing/g_tactic.ml4 parsing/extend.ml4
-beforedepend:: $(GRAMMARCMO)
+# beforedepend:: $(GRAMMARCMO)
-beforedepend:: parsing/pcoq.ml parsing/extend.ml
+# beforedepend:: parsing/pcoq.ml parsing/extend.ml
# toplevel/mltop.ml4 (ifdef Byte)
@@ -576,14 +576,11 @@ clean::
.mll.ml:
ocamllex $<
-.ml4.cmo:
- $(OCAMLC) $(BYTEFLAGS) -pp "$(CAMLP4O) $(CAMLP4EXTENDFLAGS) `$(CAMLP4DEPS) $<` -impl" -c -impl $<
-
.ml4.cmx:
$(OCAMLOPT) $(OPTFLAGS) -pp "$(CAMLP4O) $(CAMLP4EXTENDFLAGS) `$(CAMLP4DEPS) $<` -impl" -c -impl $<
-.ml4.ml:
- $(CAMLP4O) $(CAMLP4EXTENDFLAGS) pr_o.cmo `$(CAMLP4DEPS) $<` -impl $< > $@ || rm -f $@
+.ml4.cmo:
+ $(OCAMLC) $(BYTEFLAGS) -pp "$(CAMLP4O) $(CAMLP4EXTENDFLAGS) `$(CAMLP4DEPS) $<` -impl" -c -impl $<
.v.vo:
$(COQC) -q -$(BEST) -bindir bin $(COQINCLUDES) $<
@@ -643,13 +640,27 @@ depend: beforedepend
dependcoq: beforedepend
$(COQDEP) $(COQINCLUDES) */*.v */*/*.v > .depend.coq
+# Dependency of camlp4 files: this is tricky.
+# We proceed in several steps:
ML4FILESML = $(ML4FILES:.ml4=.ml)
-dependcamlp4: beforedepend $(ML4FILESML)
+dependcamlp4:
+# 1. We express dependencies of the .ml files w.r.t their grammars
+ rm -f .depend.camlp4.2
+ for f in $(ML4FILES); do \
+ printf "%s" `dirname $$f`/`basename $$f .ml4`".ml: " >> .depend.camlp4.2; \
+ echo `$(CAMLP4DEPS) $$f` >> .depend.camlp4.2; \
+ done
+# 2. Then we are able to produce the .ml files using Makefile.dep
+ $(MAKE) -f Makefile.dep $(ML4FILESML)
+# 3. We compute the dependencies inside the .ml files using ocamldep
ocamldep $(DEPFLAGS) $(ML4FILESML) > .depend.camlp4
+# 4. We express dependencies of .cmo files w.r.t their grammars
for f in $(ML4FILES); do \
- printf "%s" `dirname $$f`/`basename $$f .ml4`".ml: " >> .depend.camlp4; \
+ printf "%s" `dirname $$f`/`basename $$f .ml4`".cmo: " >> .depend.camlp4; \
echo `$(CAMLP4DEPS) $$f` >> .depend.camlp4; \
done
+# 5. Finally, we erase the generated .ml files
+ rm -f $(ML4FILESML)
rm -f toplevel/mltop.ml
clean::
diff --git a/Makefile.dep b/Makefile.dep
new file mode 100644
index 0000000000..18f4ae29f9
--- /dev/null
+++ b/Makefile.dep
@@ -0,0 +1,8 @@
+
+# This Makefile is designed to make the .ml files corresponding to .ml4 files
+
+include Makefile
+include .depend.camlp4.2
+
+.ml4.ml:
+ $(CAMLP4O) $(CAMLP4EXTENDFLAGS) pr_o.cmo `$(CAMLP4DEPS) $<` -impl $< > $@ || rm -f $@
diff --git a/lib/util.ml b/lib/util.ml
index 26b77a82a3..e7cf325640 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -487,3 +487,72 @@ let prvect_with_sep sep elem v =
in
let n = Array.length v in
if n = 0 then [< >] else pr (n - 1)
+
+(*s Size of ocaml values. *)
+
+module Size = struct
+
+ open Obj
+
+ (*s Pointers already visited are stored in a hash-table, where
+ comparisons are done using physical equality. *)
+
+ module H = Hashtbl.Make(
+ struct
+ type t = Obj.t
+ let equal = (==)
+ let hash o = Hashtbl.hash (magic o : int)
+ end)
+
+ let node_table = (H.create 257 : unit H.t)
+
+ let in_table o = try H.find node_table o; true with Not_found -> false
+
+ let add_in_table o = H.add node_table o ()
+
+ let reset_table () = H.clear node_table
+
+ (*s Objects are traversed recursively, as soon as their tags are less than
+ [no_scan_tag]. [count] records the numbers of words already visited. *)
+
+ let size_of_double = size (repr 1.0)
+
+ let count = ref 0
+
+ let rec traverse t =
+ if not (in_table t) then begin
+ add_in_table t;
+ if is_block t then begin
+ let n = size t in
+ let tag = tag t in
+ if tag < no_scan_tag then begin
+ count := !count + 1 + n;
+ for i = 0 to n - 1 do
+ let f = field t i in
+ if is_block f then traverse f
+ done
+ end else if tag = string_tag then
+ count := !count + 1 + n
+ else if tag = double_tag then
+ count := !count + size_of_double
+ else if tag = double_array_tag then
+ count := !count + 1 + size_of_double * n
+ else
+ incr count
+ end
+ end
+
+ (*s Sizes of objects in words and in bytes. The size in bytes is computed
+ system-independently according to [Sys.word_size]. *)
+
+ let size_w o =
+ reset_table ();
+ count := 0;
+ traverse (repr o);
+ !count
+
+ let size_b o = (size_w o) * Sys.word_size lsr 3
+
+end
+
+let size_b = Size.size_b
diff --git a/lib/util.mli b/lib/util.mli
index 26d912d152..fc3c980c6f 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -158,3 +158,7 @@ val prlist_with_sep :
(unit -> 'a Stream.t) -> ('b -> 'a Stream.t) -> 'b list -> 'a Stream.t
val prvect_with_sep :
(unit -> 'a Stream.t) -> ('b -> 'a Stream.t) -> 'b array -> 'a Stream.t
+
+(*s Size of ocaml values. *)
+
+val size_b : 'a -> int