[m-rev.] diff: dumping inst tables
Zoltan Somogyi
zs at unimelb.edu.au
Thu Apr 5 15:56:47 AEST 2012
compiler/hlds_out_module.m:
Implement the dumping of inst tables.
Do not dump the pred table unless asked.
compiler/hlds_out_mode.m:
Fix an abort: convert all cons_ids in insts to terms, not just some.
Make the argument order consistent between different functions.
Export a predicate.
compiler/prog_data.m:
Fix indentation.
compiler/options.m:
doc/usr_guide.texi:
Add an option, --dump-hlds-inst-limit, that controls how many insts
we can dump. (The inst tables can get pretty big, because each entry
may contain a big inst.)
Zoltan.
cvs diff: Diffing .
cvs diff: Diffing analysis
cvs diff: Diffing bindist
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/doc
cvs diff: Diffing boehm_gc/extra
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/extra
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing boehm_gc/libatomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops/doc
cvs diff: Diffing boehm_gc/libatomic_ops/src
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/armcc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/gcc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/hpc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/ibmc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/icc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/msftc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/sunc
cvs diff: Diffing boehm_gc/libatomic_ops/tests
cvs diff: Diffing boehm_gc/libatomic_ops-1.2
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/doc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/tests
cvs diff: Diffing boehm_gc/m4
cvs diff: Diffing boehm_gc/tests
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
Index: compiler/hlds_data.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/hlds_data.m,v
retrieving revision 1.141
diff -u -b -r1.141 hlds_data.m
--- compiler/hlds_data.m 2 Sep 2011 02:41:57 -0000 1.141
+++ compiler/hlds_data.m 5 Apr 2012 03:43:09 -0000
@@ -1007,8 +1007,12 @@
:- type user_inst_table.
:- type user_inst_defns == map(inst_id, hlds_inst_defn).
-
:- type unify_inst_table == map(inst_name, maybe_inst_det).
+:- type merge_inst_table == map(pair(mer_inst), maybe_inst).
+:- type ground_inst_table == map(inst_name, maybe_inst_det).
+:- type any_inst_table == map(inst_name, maybe_inst_det).
+:- type shared_inst_table == map(inst_name, maybe_inst).
+:- type mostly_uniq_inst_table == map(inst_name, maybe_inst).
:- type unify_inst_pair
---> unify_inst_pair(
@@ -1018,16 +1022,6 @@
unify_is_real
).
-:- type merge_inst_table == map(pair(mer_inst), maybe_inst).
-
-:- type ground_inst_table == map(inst_name, maybe_inst_det).
-
-:- type any_inst_table == map(inst_name, maybe_inst_det).
-
-:- type shared_inst_table == map(inst_name, maybe_inst).
-
-:- type mostly_uniq_inst_table == map(inst_name, maybe_inst).
-
:- type maybe_inst
---> inst_unknown
; inst_known(mer_inst).
@@ -1166,8 +1160,8 @@
user_inst_table_insert(InstId, InstDefn, !UserInstDefns) :-
map.insert(InstId, InstDefn, !UserInstDefns).
-user_inst_table_optimize(UserInstDefns0, UserInstDefns) :-
- map.optimize(UserInstDefns0, UserInstDefns).
+user_inst_table_optimize(!UserInstDefns) :-
+ map.optimize(!UserInstDefns).
%-----------------------------------------------------------------------------%
%-----------------------------------------------------------------------------%
Index: compiler/hlds_out_mode.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/hlds_out_mode.m,v
retrieving revision 1.6
diff -u -b -r1.6 hlds_out_mode.m
--- compiler/hlds_out_mode.m 27 Mar 2012 23:21:27 -0000 1.6
+++ compiler/hlds_out_mode.m 5 Apr 2012 05:22:33 -0000
@@ -40,6 +40,7 @@
:- func mode_to_term(mer_mode) = prog_term.
:- func mode_to_term_with_context(term.context, mer_mode) = prog_term.
:- func inst_to_term(mer_inst) = prog_term.
+:- func inst_name_to_term(inst_name) = prog_term.
%-----------------------------------------------------------------------------%
@@ -117,6 +118,7 @@
:- import_module set.
:- import_module string.
:- import_module term.
+:- import_module term_io.
:- import_module varset.
%-----------------------------------------------------------------------------%
@@ -228,10 +230,10 @@
Vars, inst_to_term_with_context(SubInst, Context))
;
Inst = abstract_inst(Name, Args),
- Term = inst_name_to_term(user_inst(Name, Args), Context)
+ Term = inst_name_to_term_with_context(Context, user_inst(Name, Args))
;
Inst = defined_inst(InstName),
- Term = inst_name_to_term(InstName, Context)
+ Term = inst_name_to_term_with_context(Context, InstName)
;
Inst = not_reached,
Term = make_atom("not_reached", Context)
@@ -285,9 +287,12 @@
construct_qualified_term(unqualified("is"),
[ModesTerm, det_to_term(Det, Context)], Context, Term).
-:- func inst_name_to_term(inst_name, prog_context) = prog_term.
+inst_name_to_term(InstName) =
+ inst_name_to_term_with_context(term.context_init, InstName).
-inst_name_to_term(InstName, Context) = Term :-
+:- func inst_name_to_term_with_context(prog_context, inst_name) = prog_term.
+
+inst_name_to_term_with_context(Context, InstName) = Term :-
(
InstName = user_inst(Name, Args),
construct_qualified_term(Name,
@@ -301,12 +306,12 @@
;
InstName = shared_inst(SubInstName),
construct_qualified_term(unqualified("$shared_inst"),
- [inst_name_to_term(SubInstName, Context)],
+ [inst_name_to_term_with_context(Context, SubInstName)],
Context, Term)
;
InstName = mostly_uniq_inst(SubInstName),
construct_qualified_term(unqualified("$mostly_uniq_inst"),
- [inst_name_to_term(SubInstName, Context)],
+ [inst_name_to_term_with_context(Context, SubInstName)],
Context, Term)
;
InstName = unify_inst(Liveness, InstA, InstB, Real),
@@ -318,7 +323,7 @@
;
InstName = ground_inst(SubInstName, IsLive, Uniq, Real),
construct_qualified_term(unqualified("$ground"),
- [inst_name_to_term(SubInstName, Context),
+ [inst_name_to_term_with_context(Context, SubInstName),
make_atom(is_live_to_str(IsLive), Context),
make_atom(inst_uniqueness(Uniq, "shared"), Context),
make_atom(unify_is_real_to_str(Real), Context)],
@@ -326,7 +331,7 @@
;
InstName = any_inst(SubInstName, IsLive, Uniq, Real),
construct_qualified_term(unqualified("$any"),
- [inst_name_to_term(SubInstName, Context),
+ [inst_name_to_term_with_context(Context, SubInstName),
make_atom(is_live_to_str(IsLive), Context),
make_atom(inst_uniqueness(Uniq, "shared"), Context),
make_atom(unify_is_real_to_str(Real), Context)],
@@ -343,7 +348,7 @@
unparse_type(Type, Term0),
construct_qualified_term(unqualified("$typed_inst"),
[term.coerce(Term0),
- inst_name_to_term(SubInstName, Context)],
+ inst_name_to_term_with_context(Context, SubInstName)],
Context, Term)
).
@@ -380,7 +385,7 @@
bound_insts_to_term([BoundInst | BoundInsts], Context) = Term :-
BoundInst = bound_functor(ConsId, Args),
ArgTerms = list.map(map_inst_to_term(Context), Args),
- ( cons_id_and_args_to_term(ConsId, ArgTerms, FirstTerm) ->
+ cons_id_and_args_to_term_full(ConsId, ArgTerms, FirstTerm),
(
BoundInsts = [],
Term = FirstTerm
@@ -389,9 +394,84 @@
construct_qualified_term(unqualified(";"),
[FirstTerm, bound_insts_to_term(BoundInsts, Context)],
Context, Term)
- )
+ ).
+
+:- pred cons_id_and_args_to_term_full(cons_id::in, list(prog_term)::in,
+ prog_term::out) is det.
+
+cons_id_and_args_to_term_full(ConsId, ArgTerms, Term) :-
+ (
+ ConsId = cons(SymName, _Arity, _TypeCtor),
+ construct_qualified_term(SymName, ArgTerms, Term)
;
- unexpected($module, $pred, "cons_id_and_args_to_term failed")
+ ConsId = tuple_cons(_Arity),
+ SymName = unqualified("{}"),
+ construct_qualified_term(SymName, ArgTerms, Term)
+ ;
+ ConsId = closure_cons(_, _),
+ term.context_init(Context),
+ FunctorName = "closure_cons",
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = int_const(Int),
+ term.context_init(Context),
+ Term = term.functor(term.integer(Int), [], Context)
+ ;
+ ConsId = float_const(Float),
+ term.context_init(Context),
+ Term = term.functor(term.float(Float), [], Context)
+ ;
+ ConsId = string_const(String),
+ term.context_init(Context),
+ Term = term.functor(term.string(String), [], Context)
+ ;
+ ConsId = char_const(Char),
+ SymName = unqualified(term_io.escaped_char(Char)),
+ construct_qualified_term(SymName, [], Term)
+ ;
+ ConsId = impl_defined_const(String),
+ term.context_init(Context),
+ FunctorName = "ImplDefinedConst: " ++ String,
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = type_ctor_info_const(ModuleName, TypeCtorName, Arity),
+ term.context_init(Context),
+ string.format("TypeCtorInfo for %s.%s/%d",
+ [s(sym_name_to_string(ModuleName)), s(TypeCtorName), i(Arity)],
+ FunctorName),
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = base_typeclass_info_const(_, _, _, _),
+ term.context_init(Context),
+ FunctorName = "base_typeclass_info_const",
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = type_info_cell_constructor(TypeCtor),
+ TypeCtor = type_ctor(TypeCtorName, Arity),
+ term.context_init(Context),
+ string.format("type_info_cell_constructor for %s/%d",
+ [s(sym_name_to_string(TypeCtorName)), i(Arity)], FunctorName),
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = typeclass_info_cell_constructor,
+ term.context_init(Context),
+ FunctorName = "typeclass_info_cell_constructor",
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = tabling_info_const(_),
+ term.context_init(Context),
+ FunctorName = "tabling_info_const",
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = table_io_decl(_),
+ term.context_init(Context),
+ FunctorName = "table_io_decl",
+ Term = term.functor(term.string(FunctorName), [], Context)
+ ;
+ ConsId = deep_profiling_proc_layout(_),
+ term.context_init(Context),
+ FunctorName = "deep_profiling_proc_layout",
+ Term = term.functor(term.string(FunctorName), [], Context)
).
:- func det_to_term(determinism, prog_context) = prog_term.
Index: compiler/hlds_out_module.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/hlds_out_module.m,v
retrieving revision 1.9
diff -u -b -r1.9 hlds_out_module.m
--- compiler/hlds_out_module.m 27 Mar 2012 23:21:27 -0000 1.9
+++ compiler/hlds_out_module.m 5 Apr 2012 05:44:08 -0000
@@ -43,6 +43,7 @@
:- import_module hlds.hlds_data.
:- import_module hlds.hlds_out.hlds_out_goal.
+:- import_module hlds.hlds_out.hlds_out_mode.
:- import_module hlds.hlds_out.hlds_out_pred.
:- import_module hlds.pred_table.
:- import_module libs.globals.
@@ -83,6 +84,7 @@
DumpPredNames),
write_header(Indent, ModuleInfo, !IO),
Info = init_hlds_out_info(Globals),
+ DumpOptions = Info ^ hoi_dump_hlds_options,
(
% If the user specifically requested one or more predicates and/or
% functions to be dumped, they won't be interested in the types,
@@ -93,7 +95,6 @@
->
true
;
- DumpOptions = Info ^ hoi_dump_hlds_options,
( string.contains_char(DumpOptions, 'I') ->
write_imports(Indent, Imports, !IO)
;
@@ -110,7 +111,9 @@
true
),
( string.contains_char(DumpOptions, 'M') ->
- write_inst_table(Indent, InstTable, !IO),
+ globals.lookup_int_option(Globals, dump_hlds_inst_limit,
+ InstLimit),
+ write_inst_table(Indent, InstLimit, InstTable, !IO),
io.write_string("\n", !IO),
write_mode_table(Indent, ModeTable, !IO),
io.write_string("\n", !IO)
@@ -124,7 +127,11 @@
true
)
),
- write_preds(Info, Indent, ModuleInfo, PredTable, !IO),
+ ( string.contains_char(DumpOptions, 'x') ->
+ write_preds(Info, Indent, ModuleInfo, PredTable, !IO)
+ ;
+ true
+ ),
write_footer(Indent, ModuleInfo, !IO).
%-----------------------------------------------------------------------------%
@@ -597,27 +604,60 @@
% Write out the inst table.
%
-:- pred write_inst_table(int::in, inst_table::in, io::di, io::uo) is det.
+:- pred write_inst_table(int::in, int::in, inst_table::in, io::di, io::uo)
+ is det.
-write_inst_table(Indent, InstTable, !IO) :-
+write_inst_table(Indent, Limit, InstTable, !IO) :-
write_indent(Indent, !IO),
io.write_string("%-------- Insts --------\n", !IO),
write_indent(Indent, !IO),
io.write_string("%-------- User defined insts --------\n", !IO),
inst_table_get_user_insts(InstTable, UserInstTable),
- user_inst_table_get_inst_defns(UserInstTable, UserInstDefns),
- map.to_assoc_list(UserInstDefns, UserInstPairs),
- list.foldl(write_user_inst(Indent), UserInstPairs, !IO),
+ user_inst_table_get_inst_defns(UserInstTable, UserInstMap),
+ map.foldl(write_user_inst(Indent), UserInstMap, !IO),
- io.write_string("%-------- Other insts --------\n", !IO),
- % XXX fix this up.
- io.write_string("%%% Not yet implemented, sorry.\n", !IO).
+ io.write_string("%-------- Unify insts --------\n", !IO),
+ inst_table_get_unify_insts(InstTable, UnifyInstMap),
+ map.foldl2(write_inst_name_maybe_inst_det(Limit), UnifyInstMap,
+ 0, NumUnifyInsts, !IO),
+ io.format("Total number of unify insts: %d\n", [i(NumUnifyInsts)], !IO),
+
+ io.write_string("%-------- Merge insts --------\n", !IO),
+ inst_table_get_merge_insts(InstTable, MergeInstMap),
+ map.foldl2(write_inst_pair_maybe_inst(Limit), MergeInstMap,
+ 0, NumMergeInsts, !IO),
+ io.format("Total number of merge insts: %d\n", [i(NumMergeInsts)], !IO),
+
+ io.write_string("%-------- Ground insts --------\n", !IO),
+ inst_table_get_unify_insts(InstTable, GroundInstMap),
+ map.foldl2(write_inst_name_maybe_inst_det(Limit), GroundInstMap,
+ 0, NumGroundInsts, !IO),
+ io.format("Total number of ground insts: %d\n", [i(NumGroundInsts)], !IO),
+
+ io.write_string("%-------- Any insts --------\n", !IO),
+ inst_table_get_any_insts(InstTable, AnyInstMap),
+ map.foldl2(write_inst_name_maybe_inst_det(Limit), AnyInstMap,
+ 0, NumAnyInsts, !IO),
+ io.format("Total number of any insts: %d\n", [i(NumAnyInsts)], !IO),
+
+ io.write_string("%-------- Shared insts --------\n", !IO),
+ inst_table_get_shared_insts(InstTable, SharedInstMap),
+ map.foldl2(write_inst_name_maybe_inst(Limit), SharedInstMap,
+ 0, NumSharedInsts, !IO),
+ io.format("Total number of shared insts: %d\n", [i(NumSharedInsts)], !IO),
+
+ io.write_string("%-------- MostlyUniq insts --------\n", !IO),
+ inst_table_get_mostly_uniq_insts(InstTable, MostlyUniqInstMap),
+ map.foldl2(write_inst_name_maybe_inst(Limit), MostlyUniqInstMap,
+ 0, NumMostlyUniqInsts, !IO),
+ io.format("Total number of mostly uniq insts: %d\n",
+ [i(NumMostlyUniqInsts)], !IO).
-:- pred write_user_inst(int::in, pair(inst_id, hlds_inst_defn)::in,
+:- pred write_user_inst(int::in, inst_id::in, hlds_inst_defn::in,
io::di, io::uo) is det.
-write_user_inst(Indent, InstId - InstDefn, !IO) :-
+write_user_inst(Indent, InstId, InstDefn, !IO) :-
InstId = inst_id(InstName, _InstArity),
write_indent(Indent, !IO),
io.format("\n:- inst %s", [s(sym_name_to_string(InstName))], !IO),
@@ -656,6 +696,95 @@
write_inst_params(HeadInstVar, TailInstVars, InstVarSet, !IO)
).
+:- pred write_inst_name_maybe_inst(int::in,
+ inst_name::in, maybe_inst::in, int::in, int::out, io::di, io::uo) is det.
+
+write_inst_name_maybe_inst(Limit, InstName, MaybeInst, !N, !IO) :-
+ !:N = !.N + 1,
+ ( !.N =< Limit ->
+ io.nl(!IO),
+ io.format("Entry %d key\n", [i(!.N)], !IO),
+ write_inst_name(InstName, !IO),
+ io.nl(!IO),
+ (
+ MaybeInst = inst_unknown,
+ io.format("Entry %d value UNKNOWN\n", [i(!.N)], !IO)
+ ;
+ MaybeInst = inst_known(Inst),
+ io.format("Entry %d value:\n", [i(!.N)], !IO),
+ write_inst(Inst, !IO),
+ io.nl(!IO)
+ )
+ ;
+ true
+ ).
+
+:- pred write_inst_name_maybe_inst_det(int::in,
+ inst_name::in, maybe_inst_det::in, int::in, int::out,
+ io::di, io::uo) is det.
+
+write_inst_name_maybe_inst_det(Limit, InstName, MaybeInstDet, !N, !IO) :-
+ !:N = !.N + 1,
+ ( !.N =< Limit ->
+ io.nl(!IO),
+ io.format("Entry %d key\n", [i(!.N)], !IO),
+ write_inst_name(InstName, !IO),
+ io.nl(!IO),
+ (
+ MaybeInstDet = inst_det_unknown,
+ io.format("Entry %d value UNKNOWN\n", [i(!.N)], !IO)
+ ;
+ MaybeInstDet = inst_det_known(Inst, Detism),
+ DetismStr = determinism_to_string(Detism),
+ io.format("Entry %d value (%s):\n", [i(!.N), s(DetismStr)], !IO),
+ write_inst(Inst, !IO),
+ io.nl(!IO)
+ )
+ ;
+ true
+ ).
+
+:- pred write_inst_pair_maybe_inst(int::in,
+ pair(mer_inst)::in, maybe_inst::in, int::in, int::out,
+ io::di, io::uo) is det.
+
+write_inst_pair_maybe_inst(Limit, InstA - InstB, MaybeInst, !N, !IO) :-
+ !:N = !.N + 1,
+ ( !.N =< Limit ->
+ io.nl(!IO),
+ io.format("Entry %d left key\n", [i(!.N)], !IO),
+ write_inst(InstA, !IO),
+ io.nl(!IO),
+ io.format("Entry %d right key\n", [i(!.N)], !IO),
+ write_inst(InstB, !IO),
+ io.nl(!IO),
+ (
+ MaybeInst = inst_unknown,
+ io.format("Entry %d value UNKNOWN\n", [i(!.N)], !IO)
+ ;
+ MaybeInst = inst_known(Inst),
+ io.format("Entry %d value:\n", [i(!.N)], !IO),
+ write_inst(Inst, !IO),
+ io.nl(!IO)
+ )
+ ;
+ true
+ ).
+
+:- pred write_inst_name(inst_name::in, io::di, io::uo) is det.
+
+write_inst_name(InstName, !IO) :-
+ InstNameTerm = inst_name_to_term(InstName),
+ varset.init(VarSet),
+ mercury_output_term(VarSet, no, InstNameTerm, !IO).
+
+:- pred write_inst(mer_inst::in, io::di, io::uo) is det.
+
+write_inst(Inst, !IO) :-
+ InstTerm = inst_to_term(Inst),
+ varset.init(VarSet),
+ mercury_output_term(VarSet, no, InstTerm, !IO).
+
%-----------------------------------------------------------------------------%
%
% Write out the mode table.
Index: compiler/options.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/options.m,v
retrieving revision 1.714
diff -u -b -r1.714 options.m
--- compiler/options.m 13 Feb 2012 00:11:43 -0000 1.714
+++ compiler/options.m 5 Apr 2012 04:19:03 -0000
@@ -269,6 +269,7 @@
; dump_hlds_pred_name
; dump_hlds_alias
; dump_hlds_options
+ ; dump_hlds_inst_limit
; dump_hlds_file_suffix
; dump_same_hlds
; dump_mlds
@@ -1237,6 +1238,7 @@
dump_hlds_pred_name - accumulating([]),
dump_hlds_alias - string(""),
dump_hlds_options - string(""),
+ dump_hlds_inst_limit - int(100),
dump_hlds_file_suffix - string(""),
dump_same_hlds - bool(no),
dump_mlds - accumulating([]),
@@ -2131,6 +2133,7 @@
long_option("dump-hlds-pred-name", dump_hlds_pred_name).
long_option("dump-hlds-alias", dump_hlds_alias).
long_option("dump-hlds-options", dump_hlds_options).
+long_option("dump-hlds-inst-limit", dump_hlds_inst_limit).
long_option("dump-hlds-file-suffix", dump_hlds_file_suffix).
long_option("dump-same-hlds", dump_same_hlds).
long_option("dump-mlds", dump_mlds).
@@ -3983,6 +3986,8 @@
"\tEach type of detail is included in the dump if its",
"\tcorresponding letter occurs in the option argument",
"\t(see the Mercury User's Guide for details).",
+ "--dump-hlds-inst-limit <N>",
+ "\tDump at most N insts in each inst table.",
"--dump-hlds-file-suffix <suffix>",
"\tAppend the given suffix to the names of the files created by",
"\tthe `--dump-hlds' option.",
cvs diff: Diffing compiler/notes
cvs diff: Diffing deep_profiler
cvs diff: Diffing deep_profiler/notes
cvs diff: Diffing doc
Index: doc/user_guide.texi
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/doc/user_guide.texi,v
retrieving revision 1.649
diff -u -b -r1.649 user_guide.texi
--- doc/user_guide.texi 27 Mar 2012 23:21:33 -0000 1.649
+++ doc/user_guide.texi 5 Apr 2012 04:18:59 -0000
@@ -7231,6 +7231,11 @@
May be given more than once.
@sp 1
+ at item --dump-hlds-inst-limit @var{N}
+ at findex --dump-hlds-inst-limit
+Dump at most @var{N} insts in each inst table.
+
+ at sp 1
@item --dump-hlds-file-suffix
@findex --dump-hlds-file-suffix
Append the given suffix to the names of the files created by the
cvs diff: Diffing extras
cvs diff: Diffing extras/base64
cvs diff: Diffing extras/cgi
cvs diff: Diffing extras/complex_numbers
cvs diff: Diffing extras/complex_numbers/samples
cvs diff: Diffing extras/complex_numbers/tests
cvs diff: Diffing extras/curs
cvs diff: Diffing extras/curs/samples
cvs diff: Diffing extras/curses
cvs diff: Diffing extras/curses/sample
cvs diff: Diffing extras/dynamic_linking
cvs diff: Diffing extras/error
cvs diff: Diffing extras/fixed
cvs diff: Diffing extras/gator
cvs diff: Diffing extras/gator/generations
cvs diff: Diffing extras/gator/generations/1
cvs diff: Diffing extras/graphics
cvs diff: Diffing extras/graphics/easyx
cvs diff: Diffing extras/graphics/easyx/samples
cvs diff: Diffing extras/graphics/mercury_allegro
cvs diff: Diffing extras/graphics/mercury_allegro/examples
cvs diff: Diffing extras/graphics/mercury_allegro/samples
cvs diff: Diffing extras/graphics/mercury_allegro/samples/demo
cvs diff: Diffing extras/graphics/mercury_allegro/samples/mandel
cvs diff: Diffing extras/graphics/mercury_allegro/samples/pendulum2
cvs diff: Diffing extras/graphics/mercury_allegro/samples/speed
cvs diff: Diffing extras/graphics/mercury_cairo
cvs diff: Diffing extras/graphics/mercury_cairo/samples
cvs diff: Diffing extras/graphics/mercury_cairo/samples/data
cvs diff: Diffing extras/graphics/mercury_cairo/tutorial
cvs diff: Diffing extras/graphics/mercury_glfw
cvs diff: Diffing extras/graphics/mercury_glfw/samples
cvs diff: Diffing extras/graphics/mercury_glut
cvs diff: Diffing extras/graphics/mercury_opengl
cvs diff: Diffing extras/graphics/mercury_tcltk
cvs diff: Diffing extras/graphics/samples
cvs diff: Diffing extras/graphics/samples/calc
cvs diff: Diffing extras/graphics/samples/gears
cvs diff: Diffing extras/graphics/samples/maze
cvs diff: Diffing extras/graphics/samples/pent
cvs diff: Diffing extras/lazy_evaluation
cvs diff: Diffing extras/lex
cvs diff: Diffing extras/lex/samples
cvs diff: Diffing extras/lex/tests
cvs diff: Diffing extras/log4m
cvs diff: Diffing extras/logged_output
cvs diff: Diffing extras/monte
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/moose/tests
cvs diff: Diffing extras/mopenssl
cvs diff: Diffing extras/morphine
cvs diff: Diffing extras/morphine/non-regression-tests
cvs diff: Diffing extras/morphine/scripts
cvs diff: Diffing extras/morphine/source
cvs diff: Diffing extras/net
cvs diff: Diffing extras/odbc
cvs diff: Diffing extras/posix
cvs diff: Diffing extras/posix/samples
cvs diff: Diffing extras/quickcheck
cvs diff: Diffing extras/quickcheck/tutes
cvs diff: Diffing extras/references
cvs diff: Diffing extras/references/samples
cvs diff: Diffing extras/references/tests
cvs diff: Diffing extras/solver_types
cvs diff: Diffing extras/solver_types/library
cvs diff: Diffing extras/trailed_update
cvs diff: Diffing extras/trailed_update/samples
cvs diff: Diffing extras/trailed_update/tests
cvs diff: Diffing extras/windows_installer_generator
cvs diff: Diffing extras/windows_installer_generator/sample
cvs diff: Diffing extras/windows_installer_generator/sample/images
cvs diff: Diffing extras/xml
cvs diff: Diffing extras/xml/samples
cvs diff: Diffing extras/xml_stylesheets
cvs diff: Diffing java
cvs diff: Diffing java/runtime
cvs diff: Diffing library
cvs diff: Diffing m4
cvs diff: Diffing mdbcomp
cvs diff: Diffing profiler
cvs diff: Diffing robdd
cvs diff: Diffing runtime
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/appengine
cvs diff: Diffing samples/appengine/war
cvs diff: Diffing samples/appengine/war/WEB-INF
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/standalone_c
cvs diff: Diffing samples/concurrency
cvs diff: Diffing samples/concurrency/dining_philosophers
cvs diff: Diffing samples/concurrency/midimon
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/java_interface
cvs diff: Diffing samples/java_interface/java_calls_mercury
cvs diff: Diffing samples/java_interface/mercury_calls_java
cvs diff: Diffing samples/lazy_list
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/solver_types
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
cvs diff: Diffing slice
cvs diff: Diffing ssdb
cvs diff: Diffing tests
cvs diff: Diffing tests/analysis
cvs diff: Diffing tests/analysis/ctgc
cvs diff: Diffing tests/analysis/excp
cvs diff: Diffing tests/analysis/ext
cvs diff: Diffing tests/analysis/sharing
cvs diff: Diffing tests/analysis/table
cvs diff: Diffing tests/analysis/trail
cvs diff: Diffing tests/analysis/unused_args
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
cvs diff: Diffing tests/debugger/declarative
cvs diff: Diffing tests/dppd
cvs diff: Diffing tests/feedback
cvs diff: Diffing tests/feedback/mandelbrot
cvs diff: Diffing tests/feedback/mmc
cvs diff: Diffing tests/general
cvs diff: Diffing tests/general/accumulator
cvs diff: Diffing tests/general/string_format
cvs diff: Diffing tests/general/structure_reuse
cvs diff: Diffing tests/grade_subdirs
cvs diff: Diffing tests/hard_coded
cvs diff: Diffing tests/hard_coded/exceptions
cvs diff: Diffing tests/hard_coded/purity
cvs diff: Diffing tests/hard_coded/sub-modules
cvs diff: Diffing tests/hard_coded/typeclasses
cvs diff: Diffing tests/invalid
cvs diff: Diffing tests/invalid/purity
cvs diff: Diffing tests/misc_tests
cvs diff: Diffing tests/mmc_make
cvs diff: Diffing tests/mmc_make/lib
cvs diff: Diffing tests/par_conj
cvs diff: Diffing tests/recompilation
cvs diff: Diffing tests/stm
cvs diff: Diffing tests/stm/orig
cvs diff: Diffing tests/stm/orig/stm-compiler
cvs diff: Diffing tests/stm/orig/stm-compiler/test1
cvs diff: Diffing tests/stm/orig/stm-compiler/test10
cvs diff: Diffing tests/stm/orig/stm-compiler/test2
cvs diff: Diffing tests/stm/orig/stm-compiler/test3
cvs diff: Diffing tests/stm/orig/stm-compiler/test4
cvs diff: Diffing tests/stm/orig/stm-compiler/test5
cvs diff: Diffing tests/stm/orig/stm-compiler/test6
cvs diff: Diffing tests/stm/orig/stm-compiler/test7
cvs diff: Diffing tests/stm/orig/stm-compiler/test8
cvs diff: Diffing tests/stm/orig/stm-compiler/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/stmqueue
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test10
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test11
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test9
cvs diff: Diffing tests/tabling
cvs diff: Diffing tests/term
cvs diff: Diffing tests/trailing
cvs diff: Diffing tests/valid
cvs diff: Diffing tests/warnings
cvs diff: Diffing tools
cvs diff: Diffing trace
cvs diff: Diffing util
cvs diff: Diffing vim
cvs diff: Diffing vim/after
cvs diff: Diffing vim/ftplugin
cvs diff: Diffing vim/syntax
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to: mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions: mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the reviews
mailing list