[m-rev.] for review: fix a bug reportd by Peter Hawkins

Zoltan Somogyi zs at csse.unimelb.edu.au
Wed Jul 12 16:15:05 AEST 2006


On 11-Jul-2006, Julien Fischer <juliensf at csse.unimelb.edu.au> wrote:
> >Index: tests/invalid/hawkins_mm_fail_reset.err_exp
> >===================================================================
> >RCS file: tests/invalid/hawkins_mm_fail_reset.err_exp
> >diff -N tests/invalid/hawkins_mm_fail_reset.err_exp
> >--- /dev/null	1 Jan 1970 00:00:00 -0000
> >+++ tests/invalid/hawkins_mm_fail_reset.err_exp	8 Jul 2006 07:27:05 
> >-0000
> >@@ -0,0 +1,13 @@
> >+hawkins_mm_fail_reset.m:027: Error: `pragma memo' declaration not allowed 
> >for
> >+hawkins_mm_fail_reset.m:027:   procedure with determinism `failure'.
> >+hawkins_mm_fail_reset.m:036: Error: `pragma memo' declaration not allowed 
> >for
> 
> The pragmas in the test case are minimal_model not memo pragmas.  The
> error message ought to distinguish between the two of them.

I followed your other suggestions. This one was a separate bug, for which
the fix is the diff below.

Zoltan.

compiler/prog_io_pragma.m:
	Fix a bug: don't replace the tabling pragma type with "memo" in
	the presence of attributes.

compiler/prog_out.m:
	Don't include compiler-internal information in the printed version
	of the default minimal_model evaluation method.

compiler/prog_data.m:
	Replace booleans with specialized types in table attributes.

compiler/*.m:
	Conform to the change to prog_data.m.

tests/invalid/hawkins_mm_fail_reset.err_exp:
	New test case for the bug being fixed.

tests/invalid/loopcheck.err_exp:
	Update the expected output to account for the grammar improvement
	in my previous change.

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/include
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing boehm_gc/tests
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
Index: compiler/add_pragma.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/add_pragma.m,v
retrieving revision 1.38
diff -u -b -r1.38 add_pragma.m
--- compiler/add_pragma.m	12 Jul 2006 02:50:49 -0000	1.38
+++ compiler/add_pragma.m	12 Jul 2006 03:06:53 -0000
@@ -1650,7 +1650,7 @@
         AllowReset = Attributes ^ table_attr_allow_reset,
         ( PredIds = [_, _ | _] ->
             (
-                Statistics = yes,
+                Statistics = table_gather_statistics,
                 StatsPieces = [words("Error: cannot request statistics"),
                     words("for the ambiguous name"),
                     sym_name_and_arity(PredName / Arity), suffix(","),
@@ -1659,10 +1659,10 @@
                 write_error_pieces(Context, 0, StatsPieces, !IO),
                 io.set_exit_status(1, !IO)
             ;
-                Statistics = no
+                Statistics = table_dont_gather_statistics
             ),
             (
-                AllowReset = yes,
+                AllowReset = table_allow_reset,
                 ResetPieces = [words("Error: cannot request allow_reset"),
                     words("for the ambiguous name"),
                     sym_name_and_arity(PredName / Arity), suffix(","),
@@ -1671,7 +1671,7 @@
                 write_error_pieces(Context, 0, ResetPieces, !IO),
                 io.set_exit_status(1, !IO)
             ;
-                AllowReset = no
+                AllowReset = table_dont_allow_reset
             )
         ;
             true
@@ -1899,8 +1899,8 @@
             ;
                 MaybeAttributes = no,
                 Strictness = all_strict,
-                Statistics = no,
-                AllowReset = no
+                Statistics = table_gather_statistics,
+                AllowReset = table_allow_reset
             ),
             ( Strictness = specified(MaybeArgMethods) ->
                 check_pred_args_against_tabling_methods(DeclaredArgModes,
@@ -1931,20 +1931,20 @@
             % later compiler passes would report errors at the sites where
             % these predicates are called.
             (
-                Statistics = yes,
+                Statistics = table_gather_statistics,
                 create_tabling_statistics_pred(ProcId, Context,
                     SimpleCallId, SingleProc, !ProcTable,
                     !Status, !ModuleInfo, !QualInfo, !IO)
             ;
-                Statistics = no
+                Statistics = table_dont_gather_statistics
             ),
             (
-                AllowReset = yes,
+                AllowReset = table_allow_reset,
                 create_tabling_reset_pred(ProcId, Context,
                     SimpleCallId, SingleProc, !ProcTable,
                     !Status, !ModuleInfo, !QualInfo, !IO)
             ;
-                AllowReset = no
+                AllowReset = table_dont_allow_reset
             )
         )
     ).
Index: compiler/llds.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/llds.m,v
retrieving revision 1.332
diff -u -b -r1.332 llds.m
--- compiler/llds.m	8 Jun 2006 08:19:16 -0000	1.332
+++ compiler/llds.m	12 Jul 2006 03:05:35 -0000
@@ -98,7 +98,7 @@
                 tis_type_params             :: rval,
                                             % Where to fill the ptis in from.
                 tis_size_limit              :: maybe(int),
-                tis_stats                   :: bool
+                tis_stats                   :: table_attr_statistics
             ).
 
 :- type common_cell_type 
Index: compiler/llds_out.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/llds_out.m,v
retrieving revision 1.280
diff -u -b -r1.280 llds_out.m
--- compiler/llds_out.m	8 Jun 2006 08:19:16 -0000	1.280
+++ compiler/llds_out.m	12 Jul 2006 03:08:17 -0000
@@ -923,9 +923,9 @@
     ),
 
     (
-        Stats = no
+        Stats = table_dont_gather_statistics
     ;
-        Stats = yes,
+        Stats = table_gather_statistics,
         output_table_stats(ModuleName, CallStatsDataName, NumInputs,
             !DeclSet, !IO),
         output_table_stats(ModuleName, PrevCallStatsDataName, NumInputs,
@@ -997,7 +997,7 @@
     io.write_string(",\n", !IO),
     io.write_string("{ 0 },\n", !IO),
     (
-        Stats = no,
+        Stats = table_dont_gather_statistics,
         io.write_string("0,\n", !IO),
         io.write_string("0,\n", !IO),
         io.write_string("NULL,\n", !IO),
@@ -1011,7 +1011,7 @@
         io.write_string("0,\n", !IO),
         io.write_string("NULL,\n", !IO)
     ;
-        Stats = yes,
+        Stats = table_gather_statistics,
         io.write_string("0,\n", !IO),
         io.write_string("0,\n", !IO),
         output_data_addr(CallStatsDataAddr, !IO),
Index: compiler/mercury_to_mercury.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mercury_to_mercury.m,v
retrieving revision 1.294
diff -u -b -r1.294 mercury_to_mercury.m
--- compiler/mercury_to_mercury.m	12 Jul 2006 02:51:03 -0000	1.294
+++ compiler/mercury_to_mercury.m	12 Jul 2006 03:07:25 -0000
@@ -618,16 +618,16 @@
                     MaybeSizeLimit = no
                 ),
                 (
-                    Stats = yes,
+                    Stats = table_gather_statistics,
                     !:Strs = ["statistics" | !.Strs]
                 ;
-                    Stats = no
+                    Stats = table_dont_gather_statistics
                 ),
                 (
-                    AllowReset = yes,
+                    AllowReset = table_allow_reset,
                     !:Strs = ["allow_reset" | !.Strs]
                 ;
-                    AllowReset = no
+                    AllowReset = table_dont_allow_reset
                 ),
                 (
                     !.Strs = [],
Index: compiler/prog_data.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/prog_data.m,v
retrieving revision 1.169
diff -u -b -r1.169 prog_data.m
--- compiler/prog_data.m	12 Jul 2006 02:51:06 -0000	1.169
+++ compiler/prog_data.m	12 Jul 2006 03:10:22 -0000
@@ -225,12 +225,20 @@
     --->    table_attributes(
                 table_attr_strictness   :: call_table_strictness,
                 table_attr_size_limit   :: maybe(int),
-                table_attr_statistics   :: bool,
-                table_attr_allow_reset  :: bool
+                table_attr_statistics   :: table_attr_statistics,
+                table_attr_allow_reset  :: table_attr_allow_reset
             ).
 
 :- func default_memo_table_attributes = table_attributes.
 
+:- type table_attr_statistics
+    --->    table_gather_statistics
+    ;       table_dont_gather_statistics.
+
+:- type table_attr_allow_reset
+    --->    table_allow_reset
+    ;       table_dont_allow_reset.
+
 :- type call_table_strictness
     --->    all_strict
     ;       all_fast_loose
@@ -240,8 +248,7 @@
                 % argument of the predicate. Elements that correspond
                 % to output arguments should be "no". Elements that
                 % correspond to input arguments should be "yes",
-                % specifying how to look up that argument in the call
-                % table.
+                % specifying how to look up that argument in the call table.
             ).
 
 :- type arg_tabling_method
@@ -1473,7 +1480,9 @@
 
 :- import_module string.
 
-default_memo_table_attributes = table_attributes(all_strict, no, no, no).
+default_memo_table_attributes =
+    table_attributes(all_strict, no, table_dont_gather_statistics,
+        table_dont_allow_reset).
 
 %-----------------------------------------------------------------------------%
 %
Index: compiler/prog_io_pragma.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/prog_io_pragma.m,v
retrieving revision 1.107
diff -u -b -r1.107 prog_io_pragma.m
--- compiler/prog_io_pragma.m	10 Jul 2006 04:40:49 -0000	1.107
+++ compiler/prog_io_pragma.m	12 Jul 2006 03:31:12 -0000
@@ -1775,7 +1775,7 @@
                         default_memo_table_attributes, MaybeAttributes),
                     (
                         MaybeAttributes = ok(Attributes),
-                        PragmaType = tabled(eval_memo, PredName, Arity,
+                        PragmaType = tabled(TablingType, PredName, Arity,
                             MaybePredOrFunc, MaybeModes, yes(Attributes)),
                         Result = ok(pragma(user, PragmaType))
                     ;
@@ -1834,8 +1834,12 @@
         )
     ;
         SingleAttr = attr_statistics,
-        ( !.Attributes ^ table_attr_statistics = no ->
-            !:Attributes = !.Attributes ^ table_attr_statistics := yes,
+        (
+            !.Attributes ^ table_attr_statistics
+                = table_dont_gather_statistics
+        ->
+            !:Attributes = !.Attributes ^ table_attr_statistics
+                := table_gather_statistics,
             update_tabling_attributes(TermSingleAttrs, !.Attributes,
                 MaybeAttributes)
         ;
@@ -1845,8 +1849,9 @@
         )
     ;
         SingleAttr = attr_allow_reset,
-        ( !.Attributes ^ table_attr_allow_reset = no ->
-            !:Attributes = !.Attributes ^ table_attr_allow_reset := yes,
+        ( !.Attributes ^ table_attr_allow_reset = table_dont_allow_reset ->
+            !:Attributes = !.Attributes ^ table_attr_allow_reset
+                := table_allow_reset,
             update_tabling_attributes(TermSingleAttrs, !.Attributes,
                 MaybeAttributes)
         ;
Index: compiler/prog_out.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/prog_out.m,v
retrieving revision 1.72
diff -u -b -r1.72 prog_out.m
--- compiler/prog_out.m	8 Jun 2006 08:19:29 -0000	1.72
+++ compiler/prog_out.m	12 Jul 2006 03:34:20 -0000
@@ -421,10 +421,14 @@
 eval_method_to_string(eval_minimal(MinimalMethod)) = Str :-
     (
         MinimalMethod = own_stacks,
+        % The fact that this is not the name of the corresponding pragma
+        % won't matter until this becomes the default way of doing minimal
+        % model tabling, at which time we will return "minimal_model" here
+        % and "minimal_model_stack_copy" in the other arm of the switch.
         Str = "minimal_model_own_stacks"
     ;
         MinimalMethod = stack_copy,
-        Str = "minimal_model_stack_copy"
+        Str = "minimal_model"
     ).
 eval_method_to_string(eval_table_io(IsDecl, IsUnitize)) = Str :-
     (
Index: compiler/table_gen.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/table_gen.m,v
retrieving revision 1.110
diff -u -b -r1.110 table_gen.m
--- compiler/table_gen.m	12 Jul 2006 02:51:09 -0000	1.110
+++ compiler/table_gen.m	12 Jul 2006 03:24:17 -0000
@@ -427,7 +427,7 @@
         % Since we don't actually create a call table for I/O tabled
         % procedures, the value of MaybeSpecMethod doesn't really matter.
         MaybeSpecMethod = all_same(arg_value),
-        Statistics = no,
+        Statistics = table_dont_gather_statistics,
         MaybeSizeLimit = no
     ;
         ( EvalMethod = eval_loop_check
@@ -649,7 +649,7 @@
 %   ).
 
 :- pred create_new_loop_goal(determinism::in, hlds_goal::in,
-    bool::in, pred_id::in, proc_id::in, list(prog_var)::in,
+    table_attr_statistics::in, pred_id::in, proc_id::in, list(prog_var)::in,
     list(var_mode_pos_method)::in, list(var_mode_pos_method)::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, prog_var::out, hlds_goal::out,
@@ -889,7 +889,8 @@
 % and filling it in, we call table_memo_mark_as_succeeded.
 
 :- pred create_new_memo_goal(determinism::in, hlds_goal::in,
-    bool::in, maybe(int)::in, pred_id::in, proc_id::in, list(prog_var)::in,
+    table_attr_statistics::in, maybe(int)::in,
+    pred_id::in, proc_id::in, list(prog_var)::in,
     list(var_mode_pos_method)::in, list(var_mode_pos_method)::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, prog_var::out, hlds_goal::out,
@@ -1010,7 +1011,8 @@
     Goal = GoalExpr - GoalInfo.
 
 :- pred create_new_memo_non_goal(determinism::in, hlds_goal::in,
-    bool::in, maybe(int)::in, pred_id::in, proc_id::in, list(prog_var)::in,
+    table_attr_statistics::in, maybe(int)::in,
+    pred_id::in, proc_id::in, list(prog_var)::in,
     list(var_mode_pos_method)::in, list(var_mode_pos_method)::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, prog_var::out, hlds_goal::out,
@@ -1454,7 +1456,7 @@
 %   ).
 
 :- pred create_new_mm_goal(determinism::in, hlds_goal::in,
-    bool::in, pred_id::in, proc_id::in, list(prog_var)::in,
+    table_attr_statistics::in, pred_id::in, proc_id::in, list(prog_var)::in,
     list(var_mode_pos_method)::in, list(var_mode_pos_method)::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, prog_var::out, hlds_goal::out,
@@ -1561,8 +1563,9 @@
 %   impure table_mmos_consume_next_answer_nondet(Consumer, AnswerBlock),
 %   impure table_restore_int_ans(AnswerBlock, 0, B).
 
-:- pred do_own_stack_transform(determinism::in, hlds_goal::in, bool::in,
-    pred_id::in, proc_id::in, pred_info::in, proc_info::in, list(prog_var)::in,
+:- pred do_own_stack_transform(determinism::in, hlds_goal::in,
+    table_attr_statistics::in, pred_id::in, proc_id::in,
+    pred_info::in, proc_info::in, list(prog_var)::in,
     list(var_mode_pos_method)::in, list(var_mode_pos_method)::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, generator_map::in, generator_map::out,
@@ -1734,7 +1737,7 @@
         PickupArgs, SaveVarCodes, PickupVarCodes).
 
 :- pred do_own_stack_create_generator(pred_id::in, proc_id::in,
-    pred_info::in, proc_info::in, bool::in, term.context::in,
+    pred_info::in, proc_info::in, table_attr_statistics::in, term.context::in,
     prog_var::in, string::in, list(foreign_arg)::in,
     list(var_mode_pos_method)::in, list(var_mode_pos_method)::in,
     set(prog_var)::in, instmap_delta::in,
@@ -1954,7 +1957,7 @@
     %
 :- pred generate_simple_call_table_lookup_goal(mer_type::in,
     string::in, string::in, list(var_mode_pos_method)::in,
-    pred_id::in, proc_id::in, bool::in, term.context::in,
+    pred_id::in, proc_id::in, table_attr_statistics::in, term.context::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, prog_var::out, prog_var::out,
     hlds_goal::out, list(table_trie_step)::out) is det.
@@ -2003,7 +2006,7 @@
     % model_non memo predicates.
     %
 :- pred generate_memo_non_call_table_lookup_goal(list(var_mode_pos_method)::in,
-    pred_id::in, proc_id::in, bool::in, term.context::in,
+    pred_id::in, proc_id::in, table_attr_statistics::in, term.context::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, prog_var::out, prog_var::out,
     hlds_goal::out, list(table_trie_step)::out) is det.
@@ -2060,7 +2063,7 @@
     % minimal model predicates.
     %
 :- pred generate_mm_call_table_lookup_goal(list(var_mode_pos_method)::in,
-    pred_id::in, proc_id::in, bool::in, term.context::in,
+    pred_id::in, proc_id::in, table_attr_statistics::in, term.context::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, prog_var::out, prog_var::out,
     hlds_goal::out, list(table_trie_step)::out) is det.
@@ -2116,7 +2119,7 @@
 % Utility predicates used when creating table lookup goals.
 
 :- pred generate_call_table_lookup_goals(list(var_mode_pos_method)::in,
-    pred_id::in, proc_id::in, bool::in, term.context::in,
+    pred_id::in, proc_id::in, table_attr_statistics::in, term.context::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, list(table_trie_step)::out,
     prog_var::out, foreign_arg::out, foreign_arg::out, list(foreign_arg)::out,
@@ -2153,7 +2156,7 @@
         "\t" ++ CallTableTipVarName ++ " = " ++ cur_table_node_name ++ ";\n".
 
 :- pred generate_answer_table_lookup_goals(list(var_mode_pos_method)::in,
-    pred_id::in, proc_id::in, bool::in, term.context::in,
+    pred_id::in, proc_id::in, table_attr_statistics::in, term.context::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, list(table_trie_step)::out,
     list(foreign_arg)::out, list(hlds_goal)::out, string::out) is det.
@@ -2175,19 +2178,20 @@
     PrefixGoals = StatsPrefixGoals ++ LookupPrefixGoals.
 
 :- pred maybe_lookup_not_dupl_code_args(pred_id::in, proc_id::in,
-    string::in, string::in, bool::in, call_or_answer_table::in,
+    string::in, string::in, table_attr_statistics::in,
+    call_or_answer_table::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     list(hlds_goal)::out, list(foreign_arg)::out, string::out) is det.
 
 maybe_lookup_not_dupl_code_args(PredId, ProcId, InfoVarName, TipVarName,
         Statistics, Kind, !VarSet, !VarTypes, PrefixGoals, Args, CodeStr) :-
     (
-        Statistics = no,
+        Statistics = table_dont_gather_statistics,
         PrefixGoals = [],
         Args = [],
         CodeStr = ""
     ;
-        Statistics = yes,
+        Statistics = table_gather_statistics,
         generate_get_table_info_goal(PredId, ProcId, !VarSet, !VarTypes,
             InfoVarName, Arg, Goal),
         PrefixGoals = [Goal],
@@ -2240,7 +2244,7 @@
     % and answer tables.
     %
 :- pred generate_table_lookup_goals(list(var_mode_pos_method)::in,
-    bool::in, call_or_answer_table::in,
+    table_attr_statistics::in, call_or_answer_table::in,
     string::in, string::in, term.context::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out, list(table_trie_step)::out,
@@ -2276,8 +2280,8 @@
         Steps, RestForeignArgs, RestPrefixGoals, RestCodeStr).
 
 :- pred gen_lookup_call_for_type(arg_tabling_method::in, type_category::in,
-    mer_type::in, prog_var::in, int::in, bool::in, call_or_answer_table::in,
-    string::in, string::in, term.context::in,
+    mer_type::in, prog_var::in, int::in, table_attr_statistics::in,
+    call_or_answer_table::in, string::in, string::in, term.context::in,
     prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
     table_info::in, table_info::out,
     table_trie_step::out, list(foreign_arg)::out, list(hlds_goal)::out,
@@ -2429,9 +2433,10 @@
     %
 :- pred generate_memo_non_save_goals(list(var_mode_pos_method)::in,
     pred_id::in, proc_id::in, prog_var::in, int::in,
-    bool::in, term.context::in, prog_varset::in, prog_varset::out,
-    vartypes::in, vartypes::out, table_info::in, table_info::out,
-    list(table_trie_step)::out, list(hlds_goal)::out) is det.
+    table_attr_statistics::in, term.context::in,
+    prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
+    table_info::in, table_info::out, list(table_trie_step)::out,
+    list(hlds_goal)::out) is det.
 
 generate_memo_non_save_goals(NumberedSaveVars, PredId, ProcId,
         RecordVar, BlockSize, Statistics, Context, !VarSet, !VarTypes,
@@ -2484,9 +2489,10 @@
     %
 :- pred generate_mm_save_goals(list(var_mode_pos_method)::in,
     prog_var::in, pred_id::in, proc_id::in, int::in,
-    bool::in, term.context::in, prog_varset::in, prog_varset::out,
-    vartypes::in, vartypes::out, table_info::in, table_info::out,
-    list(table_trie_step)::out, list(hlds_goal)::out) is det.
+    table_attr_statistics::in, term.context::in,
+    prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
+    table_info::in, table_info::out, list(table_trie_step)::out,
+    list(hlds_goal)::out) is det.
 
 generate_mm_save_goals(NumberedSaveVars, SubgoalVar, PredId, ProcId, BlockSize,
         Statistics, Context, !VarSet, !VarTypes, !TableInfo, OutputSteps,
@@ -2561,9 +2567,10 @@
     %
 :- pred generate_own_stack_save_goal(list(var_mode_pos_method)::in,
     prog_var::in, pred_id::in, proc_id::in, int::in,
-    bool::in, term.context::in, prog_varset::in, prog_varset::out,
-    vartypes::in, vartypes::out, table_info::in, table_info::out,
-    list(table_trie_step)::out, list(hlds_goal)::out) is det.
+    table_attr_statistics::in, term.context::in,
+    prog_varset::in, prog_varset::out, vartypes::in, vartypes::out,
+    table_info::in, table_info::out, list(table_trie_step)::out,
+    list(hlds_goal)::out) is det.
 
 generate_own_stack_save_goal(NumberedOutputVars, GeneratorVar, PredId, ProcId,
         BlockSize, Statistics, Context, !VarSet, !VarTypes, !TableInfo,
@@ -3412,14 +3419,14 @@
     --->    call_table
     ;       answer_table.
 
-:- func stats_arg(bool, call_or_answer_table, int) = string.
+:- func stats_arg(table_attr_statistics, call_or_answer_table, int) = string.
 
 stats_arg(Statistics, Kind, SeqNum) = ArgStr :-
     (
-        Statistics = no,
+        Statistics = table_dont_gather_statistics,
         ArgStr = "NULL"
     ;
-        Statistics = yes,
+        Statistics = table_gather_statistics,
         (
             Kind = call_table,
             ArgStr = "&" ++ proc_table_info_name ++
cvs diff: Diffing compiler/notes
cvs diff: Diffing debian
cvs diff: Diffing debian/patches
cvs diff: Diffing deep_profiler
cvs diff: Diffing deep_profiler/notes
cvs diff: Diffing doc
cvs diff: Diffing extras
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/concurrency
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/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_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/logged_output
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/moose/tests
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/odbc
cvs diff: Diffing extras/posix
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/stream
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 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/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/diff
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
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 tests
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/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
Index: tests/invalid/hawkins_mm_fail_reset.err_exp
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/invalid/hawkins_mm_fail_reset.err_exp,v
retrieving revision 1.1
diff -u -b -r1.1 hawkins_mm_fail_reset.err_exp
--- tests/invalid/hawkins_mm_fail_reset.err_exp	12 Jul 2006 02:51:22 -0000	1.1
+++ tests/invalid/hawkins_mm_fail_reset.err_exp	12 Jul 2006 04:47:46 -0000
@@ -1,7 +1,9 @@
-hawkins_mm_fail_reset.m:027: Error: `pragma memo' declaration not allowed for
-hawkins_mm_fail_reset.m:027:   procedure with determinism `failure'.
-hawkins_mm_fail_reset.m:036: Error: `pragma memo' declaration not allowed for
-hawkins_mm_fail_reset.m:036:   procedure with determinism `failure'.
+hawkins_mm_fail_reset.m:027: Error: `pragma minimal_model' declaration not
+hawkins_mm_fail_reset.m:027:   allowed for procedure with determinism
+hawkins_mm_fail_reset.m:027:   `failure'.
+hawkins_mm_fail_reset.m:036: Error: `pragma minimal_model' declaration not
+hawkins_mm_fail_reset.m:036:   allowed for procedure with determinism
+hawkins_mm_fail_reset.m:036:   `failure'.
 hawkins_mm_fail_reset.m:020: In `entry(out)':
 hawkins_mm_fail_reset.m:020:   warning: determinism declaration could be
 hawkins_mm_fail_reset.m:020:   tighter.
Index: tests/invalid/loopcheck.err_exp
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/invalid/loopcheck.err_exp,v
retrieving revision 1.4
diff -u -b -r1.4 loopcheck.err_exp
--- tests/invalid/loopcheck.err_exp	12 Jul 2006 02:51:22 -0000	1.4
+++ tests/invalid/loopcheck.err_exp	12 Jul 2006 04:47:52 -0000
@@ -4,7 +4,7 @@
 loopcheck.m:016: Error: `pragma loop_check' declaration not allowed for
 loopcheck.m:016:   procedure with determinism `erroneous'.
 loopcheck.m:016:   The pragma requested is only valid for the following
-loopcheck.m:016:   determinism(s): cc_multi, cc_nondet, det, multi, nondet and
+loopcheck.m:016:   determinisms: cc_multi, cc_nondet, det, multi, nondet and
 loopcheck.m:016:   semidet.
 loopcheck.m:017: Warning: recursive call will lead to infinite recursion. If
 loopcheck.m:017:   this recursive call is executed, the procedure will call
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/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:  mercury-reviews at csse.unimelb.edu.au
administrative address: owner-mercury-reviews at csse.unimelb.edu.au
unsubscribe: Address: mercury-reviews-request at csse.unimelb.edu.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at csse.unimelb.edu.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list