Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2001-06-24 03:25:49 -0700 (Sun, 24 Jun 2001)
Revision: 3292
Log message:

      *** IMPORTANT: before doing "cvs update" see warning below ***
      
      This commit implements a global resource that brings together resource management
      that used to be done by each resource in its own way.
      
      - A much simplier object (Mp_resource.resource_info) is now needed to create a new resource.
      Additionally, many resource helper modules, such as term_match_table now provide functions
      that create a resource_info for you.
      
      - Funtions get_tactic_arg, get_int_tactic_arg, etc were replaced by a single function
      get_resource_arg (note: functions for basci types, such as get_with_arg, get_sel_args, etc
      were _not_ affected)
      
      - Resource declaration statement now declares and resource creation statement now creates
      a function get_<name>_resource. This function ca be passed as a second argument
      to get_resource_arg to retrieve the current value of a particular resource.
      
      - Resource annotation functions are now separate from the resource declaration/creation
      mechanism. Resource annotation on a rule are now passed to a function named
      process_<name>_resource_annotation. This function must have the appropriate
      Mp_resource.annotation_processor type for the resource. This function can be declared
      and implemented in _any_ module, not just the module that declares and creates the
      <name> resource.
      
      - Currenlty MetaPRL leaves it to Ocaml to keep track of these functions.
      Consequently the module that defines the process_<name>_resource_annotation function
      must be open'ed (not included!) by modules that use <name> annotations.
      
      -----
      
      Unfinished business in this commit:
      - Remainder of TODO 1.12 and 1.13
      
      - Some proofs were broken by this commit. It appears that they were broken for
      a "good" reason, but still need to be fixed.
      
      - I need to make sure things now always have the right precedences (all things being equal,
      the later an item is added to resource, the earlier precedence it should have).
      
      - Consider adding refiner sentinels and display forms to global resource as well.
      Currently each of them still does its own way of resource management (although the way
      display forms are managed was changed by this commit - need to make sure the precedences
      are right).
      
      - Distributed refinement: I am afraid that the current resource code
      will either work correctly only if all processes in the distributed group have
      the same global resource, or it will attempt to pass around all the resource data.
      Obviously, neither of these choices is a good one.
      
      *** WARNING ***
      
      This commit changes the tactic_arg type and also makes minor changes in
      the FilterCache.info type. Because of that old .prlb and .cmoz files
      *will no longer work*. Old .prla files will work, but will produce lots
      of (harmless) Filter_summary.dest_term warning.
      
      Before doing "cvs update" do the following:
      1) export all your unsaved proofs into .prla files.
      2) rm -f theories/*/*.prlb
      3) run "make clean"
      

Changes  Path
+3 -3 metaprl/doc/htmlman/system/mp-conversionals.html
+28 -27 metaprl/doc/resources_spec.txt
+19 -96 metaprl/editor/ml/package_info.ml
+1 -10 metaprl/editor/ml/package_sig.mlz
+5 -6 metaprl/editor/ml/shell_rewrite.ml
+5 -6 metaprl/editor/ml/shell_rule.ml
+8 -8 metaprl/editor/ml/shell_state.ml
+8 -10 metaprl/filter/base/filter_ocaml.ml
+304 -387 metaprl/filter/base/filter_prog.ml
+26 -27 metaprl/filter/base/filter_summary.ml
+1 -5 metaprl/filter/base/filter_summary.mli
+3 -4 metaprl/filter/base/filter_type.ml
+0 -1 metaprl/filter/boot/conversionals_boot.ml
+10 -8 metaprl/filter/boot/proof_boot.ml
+6 -7 metaprl/filter/boot/proof_term_boot.ml
+2 -0 metaprl/filter/boot/proof_term_boot.mli
+1 -6 metaprl/filter/boot/sequent_boot.ml
+60 -150 metaprl/filter/boot/tactic_boot.ml
+23 -36 metaprl/filter/boot/tactic_boot_sig.mlz
+4 -5 metaprl/filter/filter/filter_parse.ml
+1 -1 metaprl/mk/preface
+1 -1 metaprl/mllib/red_black_table.ml
+1 -1 metaprl/mllib/set_sig.mlz
+1 -1 metaprl/mllib/splay_table.ml
+1 -1 metaprl/refiner/reflib/Files
+14 -31 metaprl/refiner/reflib/dform.ml
+2 -14 metaprl/refiner/reflib/dform.mli
+43 -32 metaprl/refiner/reflib/dform_print.ml
+0 -6 metaprl/refiner/reflib/dform_print.mli
+205 -159 metaprl/refiner/reflib/mp_resource.ml
+50 -77 metaprl/refiner/reflib/mp_resource.mli
+22 -45 metaprl/refiner/reflib/term_dtable.ml
+7 -8 metaprl/refiner/reflib/term_dtable.mli
+27 -141 metaprl/refiner/reflib/term_match_table.ml
+19 -24 metaprl/refiner/reflib/term_match_table.mli
+15 -47 metaprl/refiner/reflib/term_stable.ml
+7 -7 metaprl/refiner/reflib/term_stable.mli
+18 -78 metaprl/theories/base/base_auto_tactic.ml
+6 -15 metaprl/theories/base/base_auto_tactic.mli
+5 -19 metaprl/theories/base/base_cache.ml
+1 -2 metaprl/theories/base/base_cache.mli
+39 -50 metaprl/theories/base/base_dtactic.ml
+8 -2 metaprl/theories/base/base_dtactic.mli
+13 -55 metaprl/theories/base/typeinf.ml
+2 -8 metaprl/theories/base/typeinf.mli
+1 -0 metaprl/theories/czf/Makefile
+1 -1 metaprl/theories/czf/czf_itt_and.ml
+1 -1 metaprl/theories/czf/czf_itt_dall.ml
+1 -1 metaprl/theories/czf/czf_itt_dexists.ml
+1 -1 metaprl/theories/czf/czf_itt_empty.ml
+1 -1 metaprl/theories/czf/czf_itt_eq.ml
+1 -1 metaprl/theories/czf/czf_itt_false.ml
+1 -1 metaprl/theories/czf/czf_itt_implies.ml
+1 -1 metaprl/theories/czf/czf_itt_member.ml
+1 -0 metaprl/theories/czf/czf_itt_nat.ml
+1 -1 metaprl/theories/czf/czf_itt_or.ml
+1 -0 metaprl/theories/czf/czf_itt_power.ml
+1 -1 metaprl/theories/czf/czf_itt_rel.ml
+1 -1 metaprl/theories/czf/czf_itt_sall.ml
+1 -1 metaprl/theories/czf/czf_itt_sep.ml
+1 -1 metaprl/theories/czf/czf_itt_set.ml
+7 -5 metaprl/theories/czf/czf_itt_set_ind.ml
+1 -1 metaprl/theories/czf/czf_itt_sexists.ml
+1 -1 metaprl/theories/czf/czf_itt_singleton.ml
+1 -0 metaprl/theories/czf/czf_itt_subset.ml
+1 -1 metaprl/theories/czf/czf_itt_true.ml
+1 -0 metaprl/theories/fol/cfol_itt_and.ml
+1 -0 metaprl/theories/fol/cfol_itt_base.ml
+1 -0 metaprl/theories/fol/fol_and.ml
+1 -0 metaprl/theories/fol/fol_false.ml
+1 -0 metaprl/theories/fol/fol_implies.ml
+1 -0 metaprl/theories/fol/fol_not.ml
+1 -0 metaprl/theories/fol/fol_true.ml
+5 -2 metaprl/theories/itt/itt_bisect.ml
+6 -4 metaprl/theories/itt/itt_bool.ml
+13 -24 metaprl/theories/itt/itt_decidable.ml
+4 -1 metaprl/theories/itt/itt_decidable.mli
+2 -1 metaprl/theories/itt/itt_dprod.ml
+9 -26 metaprl/theories/itt/itt_equal.ml
+4 -5 metaprl/theories/itt/itt_equal.mli
+1 -0 metaprl/theories/itt/itt_esquash.ml
+4 -2 metaprl/theories/itt/itt_fun.ml
+1 -0 metaprl/theories/itt/itt_int_ext.ml
+1 -0 metaprl/theories/itt/itt_isect.ml
+1 -0 metaprl/theories/itt/itt_list2.ml
+3 -3 metaprl/theories/itt/itt_nat.ml
+6 -6 metaprl/theories/itt/itt_record.ml
+3 -1 metaprl/theories/itt/itt_record_label.ml
+38 -78 metaprl/theories/itt/itt_squash.ml
+4 -5 metaprl/theories/itt/itt_squash.mli
+1 -1 metaprl/theories/itt/itt_squash.prla
+1 -0 metaprl/theories/itt/itt_squiggle.ml
+5 -18 metaprl/theories/itt/itt_subtype.ml
+1 -8 metaprl/theories/itt/itt_subtype.mli
+1 -1 metaprl/theories/itt/itt_void.ml
+1 -0 metaprl/theories/itt/itt_well_founded.ml
+1 -0 metaprl/theories/reflect_itt/refl_free_vars.ml
+31 -80 metaprl/theories/tactic/mptop.ml
+3 -6 metaprl/theories/tactic/mptop.mli
+1 -7 metaprl/theories/tactic/tactic_cache.ml
+6 -8 metaprl/theories/tactic/tactic_cache.mli
+8 -40 metaprl/theories/tactic/top_conversionals.ml
+3 -1 metaprl/theories/tactic/top_conversionals.mli
+1 -1 metaprl/theories/tptp/tptp.ml