[m-rev.] for review: --no-inline-builtins
Simon Taylor
stayl at cs.mu.OZ.AU
Wed Jan 29 23:42:10 AEDT 2003
Estimated hours taken: 8
Branches: main
Add an option `--no-inline-builins', which causes builtins to
be generated as calls to out-of-line procedures. This can be
useful for debugging, as without this option the execution of
builtins is not traced.
On earth, a compiler built in grade asm_fast.gc.tr.debug
takes 36.8s to run `mmc -C -I ../analysis/ hlds.make_hlds'.
When the compiler is built with `--no-inline-builtins',
this is increased to 38.6s.
The size of the compiler built in grade asm_fast.gc.tr.debug
increases from 45.0MB to 46.6MB.
compiler/options.m:
Add the option.
compiler/code_util.m:
Work out whether builtins should be generated inline.
compiler/handle_options.m:
Disable inlining of builtins when debugging.
compiler/simplify.m:
compiler/higher_order.m:
compiler/modes.m:
code_util__builtin_state now needs to know where the
builtin is being called from to know whether a particular
call should be treated as an inline builtin. The "recursive"
calls from the automatically generated procedures for each
builtin should always be generated inline, or else we would
generate an infinite loop.
NEWS:
doc/user_guide.texi:
compiler/notes/todo.html:
Document the change.
tests/debugger/Mmakefile:
tests/debugger/no_inline_builtins.{m,exp,inp}:
Test case.
tests/debugger/*.{inp,exp,exp2}:
tests/debugger/declarative/*.{inp,exp,exp2}:
Update due to changed event numbers.
tests/debugger/lval_desc_array.inp:
Use a less brittle method for stepping to the point in
the program where the test needs to display variables.
tests/debugger/declarative/library_forwarding.m:
tests/debugger/declarative/*.m:
Add forwarding predicates for some library predicates
and functions so that the declarative debugger doesn't
ask different questions depending on whether or not
the library was compiled with debugging enabled.
Index: NEWS
===================================================================
RCS file: /home/mercury1/repository/mercury/NEWS,v
retrieving revision 1.298
diff -u -u -r1.298 NEWS
--- NEWS 27 Jan 2003 09:20:42 -0000 1.298
+++ NEWS 28 Jan 2003 05:26:56 -0000
@@ -97,6 +97,10 @@
to use a different C compiler. See the "C compilers" chapter
of the Mercury User's Guide for details.
+* Inlining of builtins can now be disabled using the `--no-inline-builtins'
+ option. This can be useful for debugging, as without this option the
+ execution of builtins is not traced.
+
* The Mercury compiler now uses `.' and not `:' as the module separator
in all output.
Index: compiler/code_util.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/code_util.m,v
retrieving revision 1.140
diff -u -u -r1.140 code_util.m
--- compiler/code_util.m 14 Jan 2003 16:42:26 -0000 1.140
+++ compiler/code_util.m 27 Jan 2003 05:35:18 -0000
@@ -136,8 +136,13 @@
:- pred code_util__predinfo_is_builtin(pred_info).
:- mode code_util__predinfo_is_builtin(in) is semidet.
-:- pred code_util__builtin_state(module_info, pred_id, proc_id, builtin_state).
-:- mode code_util__builtin_state(in, in, in, out) is det.
+ % code_util__builtin_state(ModuleInfo, CallerPredId,
+ % PredId, ProcId, BuiltinState)
+ %
+ % Is the given procedure a builtin that should be generated inline?
+:- pred code_util__builtin_state(module_info,
+ pred_id, pred_id, proc_id, builtin_state).
+:- mode code_util__builtin_state(in, in, in, in, out) is det.
% Find out how a function symbol (constructor) is represented
% in the given type.
@@ -199,6 +204,7 @@
:- import_module parse_tree__prog_util, check_hlds__type_util.
:- import_module hlds__special_pred, backend_libs__builtin_ops.
:- import_module backend_libs__code_model.
+:- import_module libs__options, libs__globals.
:- import_module char, int, string, set, map, term, varset.
:- import_module require, std_util, assoc_list.
@@ -424,12 +430,24 @@
hlds_pred__initial_proc_id(ProcId),
code_util__is_inline_builtin(ModuleName, PredName, ProcId, Arity).
-code_util__builtin_state(ModuleInfo, PredId, ProcId, BuiltinState) :-
+code_util__builtin_state(ModuleInfo, CallerPredId,
+ PredId, ProcId, BuiltinState) :-
module_info_pred_info(ModuleInfo, PredId, PredInfo),
pred_info_module(PredInfo, ModuleName),
pred_info_name(PredInfo, PredName),
pred_info_arity(PredInfo, Arity),
- ( code_util__is_inline_builtin(ModuleName, PredName, ProcId, Arity) ->
+ module_info_globals(ModuleInfo, Globals),
+ globals__lookup_bool_option(Globals, inline_builtins, InlineBuiltins),
+ (
+ % The automatically generated "recursive" call in the
+ % goal for each builtin must be generated inline, or
+ % we would generate an infinite loop.
+ ( InlineBuiltins = yes
+ ; CallerPredId = PredId
+ ),
+ code_util__is_inline_builtin(ModuleName, PredName,
+ ProcId, Arity)
+ ->
BuiltinState = inline_builtin
;
BuiltinState = not_builtin
Index: compiler/handle_options.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/handle_options.m,v
retrieving revision 1.165
diff -u -u -r1.165 handle_options.m
--- compiler/handle_options.m 25 Jan 2003 01:31:49 -0000 1.165
+++ compiler/handle_options.m 29 Jan 2003 08:30:26 -0000
@@ -680,6 +680,7 @@
% relate the trace to the source code (although
% it can be easily related to the transformed HLDS).
globals__io_set_option(inline_simple, bool(no)),
+ globals__io_set_option(inline_builtins, bool(no)),
globals__io_set_option(inline_single_use, bool(no)),
globals__io_set_option(inline_compound_threshold,
int(0)),
Index: compiler/higher_order.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/higher_order.m,v
retrieving revision 1.99
diff -u -u -r1.99 higher_order.m
--- compiler/higher_order.m 27 Jan 2003 09:20:45 -0000 1.99
+++ compiler/higher_order.m 27 Jan 2003 14:53:56 -0000
@@ -989,7 +989,9 @@
pred_info_module(PredInfo, ModuleName),
pred_info_name(PredInfo, PredName),
SymName = qualified(ModuleName, PredName),
- code_util__builtin_state(ModuleInfo, PredId, ProcId, Builtin),
+ proc(CallerPredId, _) = Info0 ^ pred_proc_id,
+ code_util__builtin_state(ModuleInfo, CallerPredId,
+ PredId, ProcId, Builtin),
MaybeContext = no,
Goal1 = call(PredId, ProcId, AllArgs, Builtin, MaybeContext, SymName),
Index: compiler/modes.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/modes.m,v
retrieving revision 1.262
diff -u -u -r1.262 modes.m
--- compiler/modes.m 27 Jan 2003 09:20:49 -0000 1.262
+++ compiler/modes.m 27 Jan 2003 14:53:58 -0000
@@ -1143,7 +1143,9 @@
=(ModeInfo),
{ mode_info_get_module_info(ModeInfo, ModuleInfo) },
- { code_util__builtin_state(ModuleInfo, PredId, Mode, Builtin) },
+ { mode_info_get_predid(ModeInfo, CallerPredId) },
+ { code_util__builtin_state(ModuleInfo, CallerPredId,
+ PredId, Mode, Builtin) },
{ Call = call(PredId, Mode, Args, Builtin, Context, PredName) },
handle_extra_goals(Call, ExtraGoals, GoalInfo0, Args0, Args,
InstMap0, Goal),
Index: compiler/options.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/options.m,v
retrieving revision 1.401
diff -u -u -r1.401 options.m
--- compiler/options.m 24 Jan 2003 07:17:08 -0000 1.401
+++ compiler/options.m 27 Jan 2003 10:51:18 -0000
@@ -402,6 +402,7 @@
% - HLDS
; inlining
; inline_simple
+ ; inline_builtins
; inline_single_use
; inline_compound_threshold
; inline_simple_threshold
@@ -983,6 +984,7 @@
% HLDS
inlining - bool_special,
inline_simple - bool(no),
+ inline_builtins - bool(yes),
inline_single_use - bool(no),
inline_compound_threshold - int(0),
inline_simple_threshold - int(5), % has no effect until
@@ -1588,6 +1590,7 @@
% HLDS->HLDS optimizations
long_option("inlining", inlining).
long_option("inline-simple", inline_simple).
+long_option("inline-builtins", inline_builtins).
long_option("inline-single-use", inline_single_use).
long_option("inline-compound-threshold", inline_compound_threshold).
long_option("inline-simple-threshold", inline_simple_threshold).
@@ -1954,14 +1957,15 @@
map__set(OptionTable1, require_tracing, bool(Value), OptionTable).
special_handler(inlining, bool(Value), OptionTable0, ok(OptionTable)) :-
map__set(OptionTable0, inline_simple, bool(Value), OptionTable1),
- map__set(OptionTable1, inline_single_use, bool(Value), OptionTable2),
+ map__set(OptionTable1, inline_builtins, bool(Value), OptionTable2),
+ map__set(OptionTable2, inline_single_use, bool(Value), OptionTable3),
(
Value = yes,
- map__set(OptionTable2, inline_compound_threshold,
+ map__set(OptionTable3, inline_compound_threshold,
int(10), OptionTable)
;
Value = no,
- map__set(OptionTable2, inline_compound_threshold,
+ map__set(OptionTable3, inline_compound_threshold,
int(0), OptionTable)
).
special_handler(everything_in_one_c_function, none, OptionTable0,
@@ -3365,6 +3369,11 @@
"\tDisable all forms of inlining.",
"--no-inline-simple",
"\tDisable the inlining of simple procedures.",
+ "--no-inline-builtins",
+ "\tGenerate builtins (e.g. arithmetic operators) as calls to",
+ "\tout of line procedures. This can be useful for debugging,",
+ "\tas without this option the execution of builtins is not",
+ "\ttraced.",
"--no-inline-single-use",
"\tDisable the inlining of procedures called only once.",
"--inline-compound-threshold <threshold>",
Index: compiler/simplify.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/simplify.m,v
retrieving revision 1.107
diff -u -u -r1.107 simplify.m
--- compiler/simplify.m 27 Jan 2003 09:20:51 -0000 1.107
+++ compiler/simplify.m 27 Jan 2003 14:53:59 -0000
@@ -1360,8 +1360,9 @@
% are being unified.
%
simplify__type_info_locn(TypeVar, TypeInfoVar, ExtraGoals),
+ =(Info),
{ simplify__call_generic_unify(TypeInfoVar, XVar, YVar,
- ModuleInfo, Context, GoalInfo0, Call) }
+ ModuleInfo, Info, Context, GoalInfo0, Call) }
; { type_is_higher_order(Type, _, _, _, _) } ->
%
@@ -1429,8 +1430,9 @@
;
error("simplify__process_compl_unify: more than one typeinfo for one type var")
},
+ =(Info),
{ simplify__call_generic_unify(TypeInfoVar, XVar, YVar,
- ModuleInfo, Context, GoalInfo0, Call) }
+ ModuleInfo, Info, Context, GoalInfo0, Call) }
;
%
% Convert other complicated unifications into
@@ -1452,11 +1454,11 @@
{ conj_list_to_goal(ConjList, GoalInfo0, Goal) }.
:- pred simplify__call_generic_unify(prog_var::in, prog_var::in, prog_var::in,
- module_info::in, unify_context::in, hlds_goal_info::in, hlds_goal::out)
- is det.
+ module_info::in, simplify_info::in, unify_context::in,
+ hlds_goal_info::in, hlds_goal::out) is det.
-simplify__call_generic_unify(TypeInfoVar, XVar, YVar, ModuleInfo, Context,
- GoalInfo0, Call) :-
+simplify__call_generic_unify(TypeInfoVar, XVar, YVar, ModuleInfo, Info,
+ Context, GoalInfo0, Call) :-
ArgVars = [TypeInfoVar, XVar, YVar],
module_info_get_predicate_table(ModuleInfo, PredicateTable),
mercury_public_builtin_module(MercuryBuiltin),
@@ -1472,8 +1474,12 @@
% (This should have been checked by mode analysis.)
hlds_pred__in_in_unification_proc_id(ProcId),
- SymName = unqualified("unify"),
- code_util__builtin_state(ModuleInfo, PredId, ProcId, BuiltinState),
+ SymName = qualified(MercuryBuiltin, "unify"),
+
+ simplify_info_get_det_info(Info, DetInfo),
+ det_info_get_pred_id(DetInfo, CallerPredId),
+ code_util__builtin_state(ModuleInfo, CallerPredId,
+ PredId, ProcId, BuiltinState),
CallContext = call_unify_context(XVar, var(YVar), Context),
goal_info_get_nonlocals(GoalInfo0, NonLocals0),
set__insert(NonLocals0, TypeInfoVar, NonLocals),
Index: compiler/notes/todo.html
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/notes/todo.html,v
retrieving revision 1.14
diff -u -u -r1.14 todo.html
--- compiler/notes/todo.html 10 Jan 2003 05:34:45 -0000 1.14
+++ compiler/notes/todo.html 28 Jan 2003 00:38:53 -0000
@@ -167,7 +167,7 @@
<li> allow interactive queries to refer to values generated by
the program being debugged
<li> conditional breakpoints
-<li> trace builtins and semidet unifications
+<li> trace semidet unifications
<li> graphical term browser
</ul>
Index: doc/user_guide.texi
===================================================================
RCS file: /home/mercury1/repository/mercury/doc/user_guide.texi,v
retrieving revision 1.350
diff -u -u -r1.350 user_guide.texi
--- doc/user_guide.texi 24 Jan 2003 07:17:09 -0000 1.350
+++ doc/user_guide.texi 27 Jan 2003 08:20:39 -0000
@@ -5659,6 +5659,14 @@
@findex --inline-simple
Disable the inlining of simple procedures.
+ at sp 1
+ at item --no-inline-builtins
+ at findex --no-inline-builtins
+Generate builtins (e.g.@: arithmetic operators) as calls to
+out of line procedures. This can be useful for debugging,
+as without this option the execution of builtins is not
+traced.
+
@item --no-inline-single-use
@findex --no-inline-single-use
@findex --inline-single-use
Index: tests/debugger/Mercury.options
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/Mercury.options,v
retrieving revision 1.4
diff -u -u -r1.4 Mercury.options
--- tests/debugger/Mercury.options 22 Oct 2002 04:36:13 -0000 1.4
+++ tests/debugger/Mercury.options 27 Jan 2003 05:47:22 -0000
@@ -3,6 +3,7 @@
# the input is not a terminal.
MLFLAGS-completion = --runtime-flags --force-readline
+MCFLAGS-no_inline_builtins = --no-inline-builtins
MCFLAGS-queens_rep = --trace rep
MCFLAGS-shallow = --trace shallow
MCFLAGS-tabled_read = --trace-table-io-all
Index: tests/debugger/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/Mmakefile,v
retrieving revision 1.92
diff -u -u -r1.92 Mmakefile
--- tests/debugger/Mmakefile 15 Nov 2002 04:50:43 -0000 1.92
+++ tests/debugger/Mmakefile 29 Jan 2003 02:40:01 -0000
@@ -101,8 +101,20 @@
SENSITIVE_PROGS :=
endif
+# The no_inline_builtins test only works if the library is
+# built with execution tracing enabled. Adding a `.exp2' file
+# to allow it to be run in other grades would mean that we
+# wouldn't detect a regression which caused builtins not to
+# be traced with `--no-inline-builtins'.
+ifeq "$(findstring debug,$(GRADE))" "debug"
+ DEBUG_GRADE_PROGS = no_inline_builtins
+else
+ DEBUG_GRADE_PROGS =
+endif
+
ALL_RETRY_PROGS = $(RETRY_PROGS) $(INTERACTIVE_PROGS)
-ALL_NONRETRY_PROGS = $(NONRETRY_PROGS) $(SENSITIVE_PROGS) $(SHALLOW_PROGS)
+ALL_NONRETRY_PROGS = $(NONRETRY_PROGS) $(SENSITIVE_PROGS) \
+ $(SHALLOW_PROGS) $(DEBUG_GRADE_PROGS)
# Debugging doesn't yet don't work in MLDS grades (hl*, il*, and java),
# and the retry command doesn't and will not work in deep profiling
@@ -238,7 +250,8 @@
existential_type_classes.out: existential_type_classes \
existential_type_classes.inp
$(MDB_STD) ./existential_type_classes < existential_type_classes.inp \
- 2>&1 | sed 's/string.m:[0-9]*/string.m:NNNN/g' \
+ 2>&1 | sed 's/string.m:[0-9]*/string.m:NNNN/g' | \
+ sed 's/int.m:[0-9]*/int.m:NNNN/g' \
> existential_type_classes.out
field_names.out: field_names field_names.inp
@@ -282,6 +295,10 @@
$(MDB) ./multi_parameter < multi_parameter.inp 2>&1 | \
sed 's/char.m:[0-9]*/char.m:NNNN/g' > multi_parameter.out
+no_inline_builtins.out: no_inline_builtins no_inline_builtins.inp
+ $(MDB) ./no_inline_builtins < no_inline_builtins.inp \
+ > no_inline_builtins.out 2>&1
+
# We need to pipe the output through sed to avoid hard-coding dependencies on
# particular line numbers in the standard library source code.
output_term_dep.out: output_term_dep output_term_dep.inp
@@ -310,7 +327,8 @@
$(MDB_STD) ./print_table < print_table.inp > print_table.out 2>&1
queens.out: queens queens.inp
- $(MDB_STD) ./queens < queens.inp > queens.out 2>&1
+ $(MDB_STD) ./queens < queens.inp 2>&1 | \
+ sed 's/int.m:[0-9]*/int.m:NNNN/g' > queens.out 2>&1
queens_rep.out: queens_rep queens_rep.inp
$(MDB) ./queens_rep < queens_rep.inp > queens_rep.out 2>&1
Index: tests/debugger/existential_type_classes.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/existential_type_classes.exp2,v
retrieving revision 1.14
diff -u -u -r1.14 existential_type_classes.exp2
--- tests/debugger/existential_type_classes.exp2 17 Jan 2003 05:56:52 -0000 1.14
+++ tests/debugger/existential_type_classes.exp2 29 Jan 2003 08:33:08 -0000
@@ -26,179 +26,195 @@
mdb> continue -a
E5: C5 5 CALL existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E6: C5 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
+ E6: C6 6 CALL int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E7: C6 6 EXIT int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E8: C5 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E7: C4 4 EXIT existential_type_classes.m:21
+ E9: C4 4 EXIT existential_type_classes.m:21
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____int__arity0______existential_type_classes__foo_2/2-0 (det)
- E8: C3 3 EXIT (from existential_type_classes.m:68)
+ E10: C3 3 EXIT (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
- E9: C2 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:51)
+ E11: C2 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:51)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) 42
N (arg 2) 84
mdb> continue -a
- E10: C6 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:52)
+ E12: C7 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:52)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) "blah"
mdb>
- E11: C7 3 CALL (from existential_type_classes.m:68)
+ E13: C8 3 CALL (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
mdb> P
HeadVar__1 "blah"
mdb>
- E12: C8 4 CALL existential_type_classes.m:25
+ E14: C9 4 CALL existential_type_classes.m:25
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____string__arity0______existential_type_classes__foo_2/2-0 (det)
mdb> P
HeadVar__1 "blah"
mdb> continue -a
- E13: C9 5 CALL existential_type_classes.m:47 (from existential_type_classes.m:25)
+ E15: C10 5 CALL existential_type_classes.m:47 (from existential_type_classes.m:25)
pred existential_type_classes.string_foo/2-0 (det)
- E14: C10 6 CALL string.m:NNNN (from existential_type_classes.m:47)
+ E16: C11 6 CALL string.m:NNNN (from existential_type_classes.m:47)
pred string.length/2-0 (det)
- E15: C10 6 EXIT string.m:NNNN (from existential_type_classes.m:47)
+ E17: C11 6 EXIT string.m:NNNN (from existential_type_classes.m:47)
pred string.length/2-0 (det)
- E16: C9 5 EXIT existential_type_classes.m:47 (from existential_type_classes.m:25)
+ E18: C10 5 EXIT existential_type_classes.m:47 (from existential_type_classes.m:25)
pred existential_type_classes.string_foo/2-0 (det)
- E17: C8 4 EXIT existential_type_classes.m:25
+ E19: C9 4 EXIT existential_type_classes.m:25
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____string__arity0______existential_type_classes__foo_2/2-0 (det)
- E18: C7 3 EXIT (from existential_type_classes.m:68)
+ E20: C8 3 EXIT (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
- E19: C6 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:52)
+ E21: C7 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:52)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) "blah"
N (arg 2) 4
mdb> continue -a
- E20: C11 2 CALL existential_type_classes.m:74 (from existential_type_classes.m:53)
+ E22: C12 2 CALL existential_type_classes.m:74 (from existential_type_classes.m:53)
func existential_type_classes.my_exist_t/0-0 (det)
- E21: C11 2 EXIT existential_type_classes.m:74 (from existential_type_classes.m:53)
+ E23: C12 2 EXIT existential_type_classes.m:74 (from existential_type_classes.m:53)
func existential_type_classes.my_exist_t/0-0 (det)
- E22: C12 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:53)
+ E24: C13 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:53)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) 43
mdb>
- E23: C13 3 CALL (from existential_type_classes.m:68)
+ E25: C14 3 CALL (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
mdb> P
HeadVar__1 43
mdb>
- E24: C14 4 CALL existential_type_classes.m:21
+ E26: C15 4 CALL existential_type_classes.m:21
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____int__arity0______existential_type_classes__foo_2/2-0 (det)
mdb> P
HeadVar__1 43
mdb> continue -a
- E25: C15 5 CALL existential_type_classes.m:44 (from existential_type_classes.m:21)
+ E27: C16 5 CALL existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E26: C15 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
+ E28: C17 6 CALL int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E29: C17 6 EXIT int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E30: C16 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E27: C14 4 EXIT existential_type_classes.m:21
+ E31: C15 4 EXIT existential_type_classes.m:21
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____int__arity0______existential_type_classes__foo_2/2-0 (det)
- E28: C13 3 EXIT (from existential_type_classes.m:68)
+ E32: C14 3 EXIT (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
- E29: C12 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:53)
+ E33: C13 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:53)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) 43
N (arg 2) 86
mdb> continue -a
- E30: C16 2 CALL existential_type_classes.m:70 (from existential_type_classes.m:54)
+ E34: C18 2 CALL existential_type_classes.m:70 (from existential_type_classes.m:54)
func existential_type_classes.call_my_exist_t/0-0 (det)
- E31: C17 3 CALL existential_type_classes.m:74 (from existential_type_classes.m:70)
+ E35: C19 3 CALL existential_type_classes.m:74 (from existential_type_classes.m:70)
func existential_type_classes.my_exist_t/0-0 (det)
- E32: C17 3 EXIT existential_type_classes.m:74 (from existential_type_classes.m:70)
+ E36: C19 3 EXIT existential_type_classes.m:74 (from existential_type_classes.m:70)
func existential_type_classes.my_exist_t/0-0 (det)
- E33: C16 2 EXIT existential_type_classes.m:70 (from existential_type_classes.m:54)
+ E37: C18 2 EXIT existential_type_classes.m:70 (from existential_type_classes.m:54)
func existential_type_classes.call_my_exist_t/0-0 (det)
- E34: C18 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:54)
+ E38: C20 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:54)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) 43
mdb>
- E35: C19 3 CALL (from existential_type_classes.m:68)
+ E39: C21 3 CALL (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
mdb> P
HeadVar__1 43
mdb>
- E36: C20 4 CALL existential_type_classes.m:21
+ E40: C22 4 CALL existential_type_classes.m:21
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____int__arity0______existential_type_classes__foo_2/2-0 (det)
mdb> P
HeadVar__1 43
mdb> continue -a
- E37: C21 5 CALL existential_type_classes.m:44 (from existential_type_classes.m:21)
+ E41: C23 5 CALL existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E38: C21 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
+ E42: C24 6 CALL int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E43: C24 6 EXIT int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E44: C23 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E39: C20 4 EXIT existential_type_classes.m:21
+ E45: C22 4 EXIT existential_type_classes.m:21
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____int__arity0______existential_type_classes__foo_2/2-0 (det)
- E40: C19 3 EXIT (from existential_type_classes.m:68)
+ E46: C21 3 EXIT (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
- E41: C18 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:54)
+ E47: C20 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:54)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) 43
N (arg 2) 86
mdb> continue -a
- E42: C22 2 CALL existential_type_classes.m:82 (from existential_type_classes.m:55)
+ E48: C25 2 CALL existential_type_classes.m:82 (from existential_type_classes.m:55)
func existential_type_classes.my_univ/1-0 (det)
- E43: C22 2 EXIT existential_type_classes.m:82 (from existential_type_classes.m:55)
+ E49: C25 2 EXIT existential_type_classes.m:82 (from existential_type_classes.m:55)
func existential_type_classes.my_univ/1-0 (det)
- E44: C23 2 CALL existential_type_classes.m:76 (from existential_type_classes.m:55)
+ E50: C26 2 CALL existential_type_classes.m:76 (from existential_type_classes.m:55)
func existential_type_classes.my_univ_value/1-0 (det)
- E45: C23 2 EXIT existential_type_classes.m:76 (from existential_type_classes.m:55)
+ E51: C26 2 EXIT existential_type_classes.m:76 (from existential_type_classes.m:55)
func existential_type_classes.my_univ_value/1-0 (det)
- E46: C24 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:55)
+ E52: C27 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:55)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) 45
mdb>
- E47: C25 3 CALL (from existential_type_classes.m:68)
+ E53: C28 3 CALL (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
mdb> P
HeadVar__1 45
mdb>
- E48: C26 4 CALL existential_type_classes.m:21
+ E54: C29 4 CALL existential_type_classes.m:21
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____int__arity0______existential_type_classes__foo_2/2-0 (det)
mdb> P
HeadVar__1 45
mdb> continue -a
- E49: C27 5 CALL existential_type_classes.m:44 (from existential_type_classes.m:21)
+ E55: C30 5 CALL existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E50: C27 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
+ E56: C31 6 CALL int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E57: C31 6 EXIT int.m:NNNN (from existential_type_classes.m:44)
+ func int.*/2-0 (det)
+ E58: C30 5 EXIT existential_type_classes.m:44 (from existential_type_classes.m:21)
pred existential_type_classes.int_foo/2-0 (det)
- E51: C26 4 EXIT existential_type_classes.m:21
+ E59: C29 4 EXIT existential_type_classes.m:21
pred existential_type_classes.ClassMethod_for_existential_type_classes__fooable____int__arity0______existential_type_classes__foo_2/2-0 (det)
- E52: C25 3 EXIT (from existential_type_classes.m:68)
+ E60: C28 3 EXIT (from existential_type_classes.m:68)
pred existential_type_classes.foo/2-0 (det)
- E53: C24 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:55)
+ E61: C27 2 EXIT existential_type_classes.m:68 (from existential_type_classes.m:55)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) 45
N (arg 2) 90
mdb>
- E54: C28 2 CALL existential_type_classes.m:82 (from existential_type_classes.m:56)
+ E62: C32 2 CALL existential_type_classes.m:82 (from existential_type_classes.m:56)
func existential_type_classes.my_univ/1-0 (det)
mdb>
- E55: C28 2 EXIT existential_type_classes.m:82 (from existential_type_classes.m:56)
+ E63: C32 2 EXIT existential_type_classes.m:82 (from existential_type_classes.m:56)
func existential_type_classes.my_univ/1-0 (det)
mdb>
- E56: C29 2 CALL existential_type_classes.m:72 (from existential_type_classes.m:56)
+ E64: C33 2 CALL existential_type_classes.m:72 (from existential_type_classes.m:56)
func existential_type_classes.call_my_univ_value/1-0 (det)
mdb> P
Univ (arg 1) my_univ('<<c_pointer>>')
mdb>
- E57: C30 3 CALL existential_type_classes.m:76 (from existential_type_classes.m:72)
+ E65: C34 3 CALL existential_type_classes.m:76 (from existential_type_classes.m:72)
func existential_type_classes.my_univ_value/1-0 (det)
mdb> P
HeadVar__1 my_univ('<<c_pointer>>')
mdb> continue -a
- E58: C30 3 EXIT existential_type_classes.m:76 (from existential_type_classes.m:72)
+ E66: C34 3 EXIT existential_type_classes.m:76 (from existential_type_classes.m:72)
func existential_type_classes.my_univ_value/1-0 (det)
- E59: C29 2 EXIT existential_type_classes.m:72 (from existential_type_classes.m:56)
+ E67: C33 2 EXIT existential_type_classes.m:72 (from existential_type_classes.m:56)
func existential_type_classes.call_my_univ_value/1-0 (det)
- E60: C31 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:56)
+ E68: C35 2 CALL existential_type_classes.m:68 (from existential_type_classes.m:56)
pred existential_type_classes.do_foo/2-0 (det)
mdb> P
X (arg 1) "something"
Index: tests/debugger/lval_desc_array.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/lval_desc_array.exp,v
retrieving revision 1.3
diff -u -u -r1.3 lval_desc_array.exp
--- tests/debugger/lval_desc_array.exp 17 Jan 2003 05:56:54 -0000 1.3
+++ tests/debugger/lval_desc_array.exp 29 Jan 2003 09:01:05 -0000
@@ -4,9 +4,12 @@
mdb> context none
Contexts will not be printed.
mdb> register --quiet
-mdb> goto 218
- 218: 110 3 EXIT pred lval_desc_array.increment/2-0 (det)
-mdb> up 1
+mdb> break -E 107 -e lval_desc_array__increment
+ 0: + stop entry pred lval_desc_array.increment/2-0 (det)
+ (ignore next 107 call events)
+mdb> continue
+ 217: 110 3 CALL pred lval_desc_array.increment/2-0 (det)
+mdb> up
Ancestor level set to 1:
1 pred lval_desc_array.perform_increments/2-0 (det)
mdb> print *
Index: tests/debugger/lval_desc_array.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/lval_desc_array.exp2,v
retrieving revision 1.2
diff -u -u -r1.2 lval_desc_array.exp2
--- tests/debugger/lval_desc_array.exp2 17 Jan 2003 05:56:54 -0000 1.2
+++ tests/debugger/lval_desc_array.exp2 29 Jan 2003 08:54:42 -0000
@@ -4,13 +4,16 @@
mdb> context none
Contexts will not be printed.
mdb> register --quiet
-mdb> goto 218
- 218: 110 3 EXIT pred lval_desc_array.increment/2-0 (det)
-mdb> up 1
+mdb> break -E 107 -e lval_desc_array__increment
+ 0: + stop entry pred lval_desc_array.increment/2-0 (det)
+ (ignore next 107 call events)
+mdb> continue
+ 431: 217 3 CALL pred lval_desc_array.increment/2-0 (det)
+mdb> up
Ancestor level set to 1:
1 pred lval_desc_array.perform_increments/2-0 (det)
mdb> print *
- HeadVar__1 0
+ DCG_0 (arg 1) 0
DCG_1 1
DCG_2 2
DCG_3 3
Index: tests/debugger/lval_desc_array.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/lval_desc_array.inp,v
retrieving revision 1.1
diff -u -u -r1.1 lval_desc_array.inp
--- tests/debugger/lval_desc_array.inp 10 Dec 2001 06:50:15 -0000 1.1
+++ tests/debugger/lval_desc_array.inp 29 Jan 2003 08:54:40 -0000
@@ -1,7 +1,8 @@
echo on
context none
register --quiet
-goto 218
-up 1
+break -E 107 -e lval_desc_array__increment
+continue
+up
print *
continue
Index: tests/debugger/no_inline_builtins.exp
===================================================================
RCS file: tests/debugger/no_inline_builtins.exp
diff -N tests/debugger/no_inline_builtins.exp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/no_inline_builtins.exp 27 Jan 2003 07:34:57 -0000
@@ -0,0 +1,18 @@
+ 1: 1 1 CALL pred no_inline_builtins.main/2-0 (det) no_inline_builtins.m:11
+mdb> echo on
+Command echo enabled.
+mdb> context none
+Contexts will not be printed.
+mdb> register --quiet
+mdb> break int.+/2-0
+ 0: + stop interface func int.+/2-0 (det)
+mdb> continue
+ 2: 2 2 CALL func int.+/2-0 (det)
+mdb> print 1
+ HeadVar__1 40
+mdb> print 2
+ HeadVar__2 2
+mdb> continue
+ 3: 2 2 EXIT func int.+/2-0 (det)
+mdb> continue -n
+42
Index: tests/debugger/no_inline_builtins.inp
===================================================================
RCS file: tests/debugger/no_inline_builtins.inp
diff -N tests/debugger/no_inline_builtins.inp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/no_inline_builtins.inp 27 Jan 2003 07:33:03 -0000
@@ -0,0 +1,9 @@
+echo on
+context none
+register --quiet
+break int.+/2-0
+continue
+print 1
+print 2
+continue
+continue -n
Index: tests/debugger/no_inline_builtins.m
===================================================================
RCS file: tests/debugger/no_inline_builtins.m
diff -N tests/debugger/no_inline_builtins.m
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/no_inline_builtins.m 27 Jan 2003 05:46:42 -0000
@@ -0,0 +1,13 @@
+:- module no_inline_builtins.
+:- interface.
+:- import_module io.
+
+:- pred main(io__state::di, io__state::uo) is det.
+
+:- implementation.
+
+:- import_module int.
+
+main -->
+ io__write_int(40 + 2),
+ io__nl.
Index: tests/debugger/queens.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/queens.exp2,v
retrieving revision 1.5
diff -u -u -r1.5 queens.exp2
--- tests/debugger/queens.exp2 17 Jan 2003 05:56:56 -0000 1.5
+++ tests/debugger/queens.exp2 29 Jan 2003 02:55:34 -0000
@@ -1,45 +1,48 @@
- 1: 1 1 CALL pred queens.main/2-0 (cc_multi) queens.m:17
+ E1: C1 1 CALL pred queens.main/2-0 (cc_multi) queens.m:17
mdb> echo on
Command echo enabled.
+mdb> register --quiet
mdb> retry 1
not that many ancestors
mdb> print *
DCG_0 (arg 1) state('<<c_pointer>>')
-mdb>
- 2: 2 2 CALL pred queens.data/1-0 (det) queens.m:39 (queens.m:15)
+mdb> b data
+ 0: + stop interface pred queens.data/1-0 (det)
+mdb> continue
+ E2: C2 2 CALL pred queens.data/1-0 (det) queens.m:39 (queens.m:15)
+mdb> delete 0
+ 0: E stop interface pred queens.data/1-0 (det)
mdb> print *
mdb: there are no live variables.
mdb>
- 3: 2 2 EXIT pred queens.data/1-0 (det) queens.m:39 (queens.m:15)
+ E3: C2 2 EXIT pred queens.data/1-0 (det) queens.m:39 (queens.m:15)
mdb> print *
HeadVar__1 [1, 2, 3, 4, 5]
mdb>
- 4: 3 2 CALL pred queens.queen/2-0 (nondet) queens.m:41 (queens.m:15)
+ E4: C3 2 CALL pred queens.queen/2-0 (nondet) queens.m:41 (queens.m:15)
mdb> print *
Data (arg 1) [1, 2, 3, 4, 5]
mdb>
- 5: 4 3 CALL pred queens.qperm/2-0 (nondet) queens.m:45 (queens.m:42)
+ E5: C4 3 CALL pred queens.qperm/2-0 (nondet) queens.m:45 (queens.m:42)
mdb> print *
HeadVar__1 [1, 2, 3, 4, 5]
mdb> print_optionals on
-optional values are being printed
mdb> print *
HeadVar__1 [1, 2, 3, 4, 5]
TypeInfo_for_T int
mdb> print_optionals off
-optional values are not being printed
mdb> print *
HeadVar__1 [1, 2, 3, 4, 5]
mdb>
- 6: 4 3 SWTC pred queens.qperm/2-0 (nondet) s2; queens.m:46
+ E6: C4 3 SWTC pred queens.qperm/2-0 (nondet) s2; queens.m:46
mdb> print *
HeadVar__1 [1, 2, 3, 4, 5]
mdb>
- 7: 5 4 CALL pred queens.qdelete/3-0 (nondet) queens.m:51 (queens.m:47)
+ E7: C5 4 CALL pred queens.qdelete/3-0 (nondet) queens.m:51 (queens.m:47)
mdb> print *
HeadVar__2 [1, 2, 3, 4, 5]
mdb>
- 8: 5 4 DISJ pred queens.qdelete/3-0 (nondet) c2;d1; queens.m:51
+ E8: C5 4 DISJ pred queens.qdelete/3-0 (nondet) c2;d1; queens.m:51
mdb> print *
HeadVar__2 [1, 2, 3, 4, 5]
mdb> level 1
@@ -47,7 +50,7 @@
1 pred queens.qperm/2-0 (nondet) queens.m:47
mdb> level -d 1
Ancestor level set to 1:
- 1 5 4 3 pred queens.qperm/2-0 (nondet) queens.m:47
+ 1 E5 C4 3 pred queens.qperm/2-0 (nondet) queens.m:47
mdb> context nextline
Contexts will be printed on the next line.
mdb> level 1
@@ -56,7 +59,7 @@
queens.m:47
mdb> level -d 1
Ancestor level set to 1:
- 1 5 4 3 pred queens.qperm/2-0 (nondet)
+ 1 E5 C4 3 pred queens.qperm/2-0 (nondet)
queens.m:47
mdb> context prevline
Contexts will be printed on the previous line.
@@ -66,7 +69,7 @@
pred queens.qperm/2-0 (nondet)
mdb> level -d 1
Ancestor level set to 1:
- 1 5 4 3 queens.m:47
+ 1 E5 C4 3 queens.m:47
pred queens.qperm/2-0 (nondet)
mdb> print *
HeadVar__1 [1, 2, 3, 4, 5]
@@ -80,7 +83,7 @@
mdb> print *
Data (arg 1) [1, 2, 3, 4, 5]
mdb>
- 9: 5 4 EXIT queens.m:51 (from queens.m:47)
+ E9: C5 4 EXIT queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
mdb> print HeadVar__1
HeadVar__1 1
@@ -89,95 +92,95 @@
mdb> print HeadVar__3
HeadVar__3 [2, 3, 4, 5]
mdb>
- 10: 6 4 CALL queens.m:45 (from queens.m:49)
+ E10: C6 4 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> print *
HeadVar__1 [2, 3, 4, 5]
mdb>
- 11: 6 4 SWTC queens.m:46
+ E11: C6 4 SWTC queens.m:46
pred queens.qperm/2-0 (nondet) s2;
mdb> print *
HeadVar__1 [2, 3, 4, 5]
mdb>
- 12: 7 5 CALL queens.m:51 (from queens.m:47)
+ E12: C7 5 CALL queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
mdb> print *
HeadVar__2 [2, 3, 4, 5]
mdb>
- 13: 7 5 DISJ queens.m:51
+ E13: C7 5 DISJ queens.m:51
pred queens.qdelete/3-0 (nondet) c2;d1;
mdb> print *
HeadVar__2 [2, 3, 4, 5]
mdb>
- 14: 7 5 EXIT queens.m:51 (from queens.m:47)
+ E14: C7 5 EXIT queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
mdb> print *
HeadVar__1 2
HeadVar__2 [2, 3, 4, 5]
HeadVar__3 [3, 4, 5]
mdb>
- 15: 8 5 CALL queens.m:45 (from queens.m:49)
+ E15: C8 5 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
-mdb> goto -a 20
- 16: 8 5 SWTC queens.m:46
+mdb> goto -a 21
+ E16: C8 5 SWTC queens.m:46
pred queens.qperm/2-0 (nondet) s2;
- 17: 9 6 CALL queens.m:51 (from queens.m:47)
+ E17: C9 6 CALL queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
- 18: 9 6 DISJ queens.m:51
+ E18: C9 6 DISJ queens.m:51
pred queens.qdelete/3-0 (nondet) c2;d1;
- 19: 9 6 EXIT queens.m:51 (from queens.m:47)
+ E19: C9 6 EXIT queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
- 20: 10 6 CALL queens.m:45 (from queens.m:49)
+ E20: C10 6 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> stack
0 4* pred queens.qperm/2-0 (nondet) (queens.m:45 and others)
4 pred queens.queen/2-0 (nondet) (queens.m:42)
5 pred queens.main/2-0 (cc_multi) (queens.m:15)
mdb> stack -d
- 0 20 10 6 pred queens.qperm/2-0 (nondet) (queens.m:45) (empty)
- 1 15 8 5 pred queens.qperm/2-0 (nondet) (queens.m:49) s2;c3;
- 2 10 6 4 pred queens.qperm/2-0 (nondet) (queens.m:49) s2;c3;
- 3 5 4 3 pred queens.qperm/2-0 (nondet) (queens.m:49) s2;c3;
- 4 4 3 2 pred queens.queen/2-0 (nondet) (queens.m:42) c2;
- 5 1 1 1 pred queens.main/2-0 (cc_multi) (queens.m:15) ?;c2;q!;
+ 0 E20 C10 6 pred queens.qperm/2-0 (nondet) (queens.m:45) (empty)
+ 1 E15 C8 5 pred queens.qperm/2-0 (nondet) (queens.m:49) s2;c3;
+ 2 E10 C6 4 pred queens.qperm/2-0 (nondet) (queens.m:49) s2;c3;
+ 3 E5 C4 3 pred queens.qperm/2-0 (nondet) (queens.m:49) s2;c3;
+ 4 E4 C3 2 pred queens.queen/2-0 (nondet) (queens.m:42) c2;
+ 5 E1 C1 1 pred queens.main/2-0 (cc_multi) (queens.m:15) ?;c2;q!;
mdb> print *
HeadVar__1 [4, 5]
mdb>
- 21: 10 6 SWTC queens.m:46
+ E21: C10 6 SWTC queens.m:46
pred queens.qperm/2-0 (nondet) s2;
mdb> retry
- 20: 10 6 CALL queens.m:45 (from queens.m:49)
+ E20: C10 6 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> print *
HeadVar__1 [4, 5]
mdb> finish -a
- 21: 10 6 SWTC queens.m:46
+ E21: C10 6 SWTC queens.m:46
pred queens.qperm/2-0 (nondet) s2;
- 22: 11 7 CALL queens.m:51 (from queens.m:47)
+ E22: C11 7 CALL queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
- 23: 11 7 DISJ queens.m:51
+ E23: C11 7 DISJ queens.m:51
pred queens.qdelete/3-0 (nondet) c2;d1;
- 24: 11 7 EXIT queens.m:51 (from queens.m:47)
+ E24: C11 7 EXIT queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
- 25: 12 7 CALL queens.m:45 (from queens.m:49)
+ E25: C12 7 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 26: 12 7 SWTC queens.m:46
+ E26: C12 7 SWTC queens.m:46
pred queens.qperm/2-0 (nondet) s2;
- 27: 13 8 CALL queens.m:51 (from queens.m:47)
+ E27: C13 8 CALL queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
- 28: 13 8 DISJ queens.m:51
+ E28: C13 8 DISJ queens.m:51
pred queens.qdelete/3-0 (nondet) c2;d1;
- 29: 13 8 EXIT queens.m:51 (from queens.m:47)
+ E29: C13 8 EXIT queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
- 30: 14 8 CALL queens.m:45 (from queens.m:49)
+ E30: C14 8 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 31: 14 8 SWTC queens.m:45
+ E31: C14 8 SWTC queens.m:45
pred queens.qperm/2-0 (nondet) s1;
- 32: 14 8 EXIT queens.m:45 (from queens.m:49)
+ E32: C14 8 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 33: 12 7 EXIT queens.m:45 (from queens.m:49)
+ E33: C12 7 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 34: 10 6 EXIT queens.m:45 (from queens.m:49)
+ E34: C10 6 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> register --quiet
mdb> break print_list
@@ -185,41 +188,51 @@
mdb> break qdelete
1: + stop interface pred queens.qdelete/3-0 (nondet)
mdb> continue -a
- 35: 8 5 EXIT queens.m:45 (from queens.m:49)
+ E35: C8 5 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 36: 6 4 EXIT queens.m:45 (from queens.m:49)
+ E36: C6 4 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 37: 4 3 EXIT queens.m:45 (from queens.m:42)
+ E37: C4 3 EXIT queens.m:45 (from queens.m:42)
pred queens.qperm/2-0 (nondet)
- 38: 15 3 CALL queens.m:55 (from queens.m:43)
+ E38: C15 3 CALL queens.m:55 (from queens.m:43)
pred queens.safe/1-0 (semidet)
- 39: 15 3 SWTC queens.m:56
+ E39: C15 3 SWTC queens.m:56
pred queens.safe/1-0 (semidet) s2;
- 40: 16 4 CALL queens.m:60 (from queens.m:57)
+ E40: C16 4 CALL queens.m:60 (from queens.m:57)
pred queens.nodiag/3-0 (semidet)
- 41: 16 4 SWTC queens.m:61
+ E41: C16 4 SWTC queens.m:61
pred queens.nodiag/3-0 (semidet) s2;
- 42: 16 4 THEN queens.m:65
+ E42: C17 5 CALL int.m:NNNN (from queens.m:62)
+ func int.-/2-0 (det)
+ E43: C17 5 EXIT int.m:NNNN (from queens.m:62)
+ func int.-/2-0 (det)
+ E44: C18 5 CALL int.m:NNNN (from queens.m:63)
+ func int.-/2-0 (det)
+ E45: C18 5 EXIT int.m:NNNN (from queens.m:63)
+ func int.-/2-0 (det)
+ E46: C16 4 COND queens.m:64
+ pred queens.nodiag/3-0 (semidet) s2;c6;?;
+ E47: C16 4 THEN queens.m:65
pred queens.nodiag/3-0 (semidet) s2;c6;t;
- 43: 16 4 FAIL queens.m:60 (from queens.m:57)
+ E48: C16 4 FAIL queens.m:60 (from queens.m:57)
pred queens.nodiag/3-0 (semidet)
- 44: 15 3 FAIL queens.m:55 (from queens.m:43)
+ E49: C15 3 FAIL queens.m:55 (from queens.m:43)
pred queens.safe/1-0 (semidet)
- 45: 4 3 REDO queens.m:45 (from queens.m:42)
+ E50: C4 3 REDO queens.m:45 (from queens.m:42)
pred queens.qperm/2-0 (nondet)
- 46: 6 4 REDO queens.m:45 (from queens.m:49)
+ E51: C6 4 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 47: 8 5 REDO queens.m:45 (from queens.m:49)
+ E52: C8 5 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 48: 10 6 REDO queens.m:45 (from queens.m:49)
+ E53: C10 6 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 49: 12 7 REDO queens.m:45 (from queens.m:49)
+ E54: C12 7 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 50: 14 8 REDO queens.m:45 (from queens.m:49)
+ E55: C14 8 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 51: 14 8 FAIL queens.m:45 (from queens.m:49)
+ E56: C14 8 FAIL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 52: 13 8 REDO queens.m:51 (from queens.m:47)
+ E57: C13 8 REDO queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
mdb> break info
0: + stop interface pred queens.print_list/3-0 (det)
@@ -228,74 +241,74 @@
0: + stop interface pred queens.print_list/3-0 (det)
1: + stop interface pred queens.qdelete/3-0 (nondet)
mdb> step -aS 5
- 53: 13 8 DISJ queens.m:52
+ E58: C13 8 DISJ queens.m:52
pred queens.qdelete/3-0 (nondet) c2;d2;
- 54: 17 9 CALL queens.m:51 (from queens.m:53)
+ E59: C19 9 CALL queens.m:51 (from queens.m:53)
pred queens.qdelete/3-0 (nondet)
- 55: 17 9 FAIL queens.m:51 (from queens.m:53)
+ E60: C19 9 FAIL queens.m:51 (from queens.m:53)
pred queens.qdelete/3-0 (nondet)
- 56: 13 8 FAIL queens.m:51 (from queens.m:47)
+ E61: C13 8 FAIL queens.m:51 (from queens.m:47)
pred queens.qdelete/3-0 (nondet)
- 57: 12 7 FAIL queens.m:45 (from queens.m:49)
+ E62: C12 7 FAIL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> disable 1
1: - stop interface pred queens.qdelete/3-0 (nondet)
mdb> retry 4
- 5: 4 3 CALL queens.m:45 (from queens.m:42)
+ E5: C4 3 CALL queens.m:45 (from queens.m:42)
pred queens.qperm/2-0 (nondet)
mdb> break 49
2: + stop linenumber queens.m:49
mdb> continue -n
- 10: 6 4 CALL queens.m:45 (from queens.m:49)
+ E10: C6 4 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> continue -n
- 15: 8 5 CALL queens.m:45 (from queens.m:49)
+ E15: C8 5 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> continue -n
- 20: 10 6 CALL queens.m:45 (from queens.m:49)
+ E20: C10 6 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> continue -n
- 25: 12 7 CALL queens.m:45 (from queens.m:49)
+ E25: C12 7 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> continue -n
- 30: 14 8 CALL queens.m:45 (from queens.m:49)
+ E30: C14 8 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> continue -n
- 32: 14 8 EXIT queens.m:45 (from queens.m:49)
+ E32: C14 8 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> return
- 33: 12 7 EXIT queens.m:45 (from queens.m:49)
+ E33: C12 7 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 34: 10 6 EXIT queens.m:45 (from queens.m:49)
+ E34: C10 6 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 35: 8 5 EXIT queens.m:45 (from queens.m:49)
+ E35: C8 5 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 36: 6 4 EXIT queens.m:45 (from queens.m:49)
+ E36: C6 4 EXIT queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 38: 15 3 CALL queens.m:55 (from queens.m:43)
+ E38: C15 3 CALL queens.m:55 (from queens.m:43)
pred queens.safe/1-0 (semidet)
mdb> continue -n
- 46: 6 4 REDO queens.m:45 (from queens.m:49)
+ E51: C6 4 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> continue -n
- 47: 8 5 REDO queens.m:45 (from queens.m:49)
+ E52: C8 5 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> forward
- 48: 10 6 REDO queens.m:45 (from queens.m:49)
+ E53: C10 6 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 49: 12 7 REDO queens.m:45 (from queens.m:49)
+ E54: C12 7 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 50: 14 8 REDO queens.m:45 (from queens.m:49)
+ E55: C14 8 REDO queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 51: 14 8 FAIL queens.m:45 (from queens.m:49)
+ E56: C14 8 FAIL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
- 53: 13 8 DISJ queens.m:52
+ E58: C13 8 DISJ queens.m:52
pred queens.qdelete/3-0 (nondet) c2;d2;
mdb> continue -n
- 57: 12 7 FAIL queens.m:45 (from queens.m:49)
+ E62: C12 7 FAIL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> continue -n
- 64: 19 7 CALL queens.m:45 (from queens.m:49)
+ E63: C20 7 CALL queens.m:45 (from queens.m:49)
pred queens.qperm/2-0 (nondet)
mdb> delete *
0: E stop interface pred queens.print_list/3-0 (det)
@@ -305,12 +318,12 @@
0: + stop interface pred queens.main/2-0 (cc_multi)
mdb> continue -n
[1, 3, 5, 2, 4]
- 720: 1 1 EXIT queens.m:17
+ E64: C1 1 EXIT queens.m:17
pred queens.main/2-0 (cc_multi)
mdb> retry
Retry across I/O operations is not always safe.
Are you sure you want to do it? yes
- 1: 1 1 CALL queens.m:17
+ E1: C1 1 CALL queens.m:17
pred queens.main/2-0 (cc_multi)
mdb> continue -n -S
[1, 3, 5, 2, 4]
Index: tests/debugger/retry.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/retry.exp2,v
retrieving revision 1.5
diff -u -u -r1.5 retry.exp2
--- tests/debugger/retry.exp2 17 Jan 2003 05:56:56 -0000 1.5
+++ tests/debugger/retry.exp2 29 Jan 2003 03:13:51 -0000
@@ -10,7 +10,9 @@
0: + stop interface pred retry.det_without_cut_1/2-0 (det)
mdb> continue -a
E2: C2 2 CALL pred retry.det_without_cut/2-0 (det)
- E3: C3 3 CALL pred retry.det_without_cut_1/2-0 (det)
+ E3: C3 3 CALL func int.+/2-0 (det)
+ E4: C3 3 EXIT func int.+/2-0 (det)
+ E5: C4 3 CALL pred retry.det_without_cut_1/2-0 (det)
mdb> disable 0
0: - stop interface pred retry.det_without_cut_1/2-0 (det)
mdb> retry
@@ -20,7 +22,7 @@
1 pred retry.det_without_cut/2-0 (det)
2 pred retry.main/2-0 (det)
mdb> finish
- E4: C3 3 EXIT pred retry.det_without_cut_1/2-0 (det)
+ E6: C4 3 EXIT pred retry.det_without_cut_1/2-0 (det)
mdb> retry 1
E2: C2 2 CALL pred retry.det_without_cut/2-0 (det)
mdb> stack
@@ -29,32 +31,34 @@
mdb> break det_without_cut_2
1: + stop interface pred retry.det_without_cut_2/2-0 (det)
mdb> continue -a
- E3: C3 3 CALL pred retry.det_without_cut_1/2-0 (det)
- E5: C4 4 CALL pred retry.det_without_cut_2/2-0 (det)
+ E3: C3 3 CALL func int.+/2-0 (det)
+ E4: C3 3 EXIT func int.+/2-0 (det)
+ E5: C4 3 CALL pred retry.det_without_cut_1/2-0 (det)
+ E7: C5 4 CALL pred retry.det_without_cut_2/2-0 (det)
mdb> delete *
0: D stop interface pred retry.det_without_cut_1/2-0 (det)
1: E stop interface pred retry.det_without_cut_2/2-0 (det)
mdb> retry 2
E2: C2 2 CALL pred retry.det_without_cut/2-0 (det)
mdb> finish
- E6: C2 2 EXIT pred retry.det_without_cut/2-0 (det)
+ E8: C2 2 EXIT pred retry.det_without_cut/2-0 (det)
mdb> stack
0 pred retry.det_without_cut/2-0 (det)
1 pred retry.main/2-0 (det)
mdb> break det_with_cut_1
0: + stop interface pred retry.det_with_cut_1/2-0 (nondet)
mdb> continue -a
- E7: C5 2 CALL pred retry.det_with_cut/2-0 (det)
- E8: C5 2 COND pred retry.det_with_cut/2-0 (det) ?;
- E9: C6 3 CALL pred retry.det_with_cut_1/2-0 (nondet)
+ E9: C6 2 CALL pred retry.det_with_cut/2-0 (det)
+ E10: C6 2 COND pred retry.det_with_cut/2-0 (det) ?;
+ E11: C7 3 CALL pred retry.det_with_cut_1/2-0 (nondet)
mdb> delete *
0: E stop interface pred retry.det_with_cut_1/2-0 (nondet)
mdb> finish
- E10: C6 3 EXIT pred retry.det_with_cut_1/2-0 (nondet)
+ E12: C7 3 EXIT pred retry.det_with_cut_1/2-0 (nondet)
mdb> retry 1
- E7: C5 2 CALL pred retry.det_with_cut/2-0 (det)
+ E9: C6 2 CALL pred retry.det_with_cut/2-0 (det)
mdb> finish
- E11: C5 2 EXIT pred retry.det_with_cut/2-0 (det)
+ E13: C6 2 EXIT pred retry.det_with_cut/2-0 (det)
mdb> stack
0 pred retry.det_with_cut/2-0 (det)
1 pred retry.main/2-0 (det)
@@ -64,30 +68,34 @@
0: + stop interface pred retry.det_with_cut_2/2-0 (det)
mdb> continue -a
E2: C2 2 CALL pred retry.det_without_cut/2-0 (det)
- E3: C3 3 CALL pred retry.det_without_cut_1/2-0 (det)
- E5: C4 4 CALL pred retry.det_without_cut_2/2-0 (det)
- E12: C4 4 EXIT pred retry.det_without_cut_2/2-0 (det)
- E4: C3 3 EXIT pred retry.det_without_cut_1/2-0 (det)
- E6: C2 2 EXIT pred retry.det_without_cut/2-0 (det)
- E7: C5 2 CALL pred retry.det_with_cut/2-0 (det)
- E8: C5 2 COND pred retry.det_with_cut/2-0 (det) ?;
- E9: C6 3 CALL pred retry.det_with_cut_1/2-0 (nondet)
- E13: C6 3 DISJ pred retry.det_with_cut_1/2-0 (nondet) c2;d1;
- E14: C7 4 CALL pred retry.det_with_cut_2/2-0 (det)
+ E3: C3 3 CALL func int.+/2-0 (det)
+ E4: C3 3 EXIT func int.+/2-0 (det)
+ E5: C4 3 CALL pred retry.det_without_cut_1/2-0 (det)
+ E7: C5 4 CALL pred retry.det_without_cut_2/2-0 (det)
+ E14: C5 4 EXIT pred retry.det_without_cut_2/2-0 (det)
+ E15: C8 4 CALL func int.*/2-0 (det)
+ E16: C8 4 EXIT func int.*/2-0 (det)
+ E6: C4 3 EXIT pred retry.det_without_cut_1/2-0 (det)
+ E8: C2 2 EXIT pred retry.det_without_cut/2-0 (det)
+ E9: C6 2 CALL pred retry.det_with_cut/2-0 (det)
+ E10: C6 2 COND pred retry.det_with_cut/2-0 (det) ?;
+ E11: C7 3 CALL pred retry.det_with_cut_1/2-0 (nondet)
+ E17: C7 3 DISJ pred retry.det_with_cut_1/2-0 (nondet) c2;d1;
+ E18: C9 4 CALL pred retry.det_with_cut_2/2-0 (det)
mdb> delete *
0: E stop interface pred retry.det_with_cut_2/2-0 (det)
mdb> break nondet
0: + stop interface pred retry.nondet/2-0 (multi)
mdb> continue
- E15: C8 3 CALL pred retry.nondet/2-0 (multi)
+ E19: C10 3 CALL pred retry.nondet/2-0 (multi)
mdb> print *
X0 (arg 1) 4
mdb> break nondet_2
1: + stop interface pred retry.nondet_2/2-0 (det)
mdb> continue
- E16: C9 4 CALL pred retry.nondet_2/2-0 (det)
+ E20: C11 4 CALL pred retry.nondet_2/2-0 (det)
mdb> retry 1
- E15: C8 3 CALL pred retry.nondet/2-0 (multi)
+ E19: C10 3 CALL pred retry.nondet/2-0 (multi)
mdb> print *
X0 (arg 1) 4
mdb> delete *
@@ -101,28 +109,28 @@
9
40 41
50 51
- E17: C10 2 CALL pred retry.fib/2-0 (det)
+ E21: C12 2 CALL pred retry.fib/2-0 (det)
mdb> print *
N (arg 1) 15
mdb> continue
- E18: C11 3 CALL pred retry.fib/2-0 (det)
+ E22: C13 3 CALL pred retry.fib/2-0 (det)
mdb> print *
N (arg 1) 14
mdb> continue
- E19: C12 4 CALL pred retry.fib/2-0 (det)
+ E23: C14 4 CALL pred retry.fib/2-0 (det)
mdb> continue
- E20: C13 5 CALL pred retry.fib/2-0 (det)
+ E24: C15 5 CALL pred retry.fib/2-0 (det)
mdb> step
- E21: C13 5 COND pred retry.fib/2-0 (det) c2;e;e;c2;?;
+ E25: C15 5 COND pred retry.fib/2-0 (det) c2;e;e;c2;?;
mdb> retry 2
- E18: C11 3 CALL pred retry.fib/2-0 (det)
+ E22: C13 3 CALL pred retry.fib/2-0 (det)
mdb> print *
N (arg 1) 14
mdb> next
- E22: C11 3 COND pred retry.fib/2-0 (det) c2;e;e;c2;?;
+ E26: C13 3 COND pred retry.fib/2-0 (det) c2;e;e;c2;?;
mdb> retry 1
- E17: C10 2 CALL pred retry.fib/2-0 (det)
+ E21: C12 2 CALL pred retry.fib/2-0 (det)
mdb> finish -n
- E23: C10 2 EXIT pred retry.fib/2-0 (det)
+ E27: C12 2 EXIT pred retry.fib/2-0 (det)
mdb> continue -n -S
987
Index: tests/debugger/declarative/args.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/args.exp,v
retrieving revision 1.6
diff -u -u -r1.6 args.exp
--- tests/debugger/declarative/args.exp 17 Jan 2003 05:57:00 -0000 1.6
+++ tests/debugger/declarative/args.exp 29 Jan 2003 03:57:11 -0000
@@ -11,7 +11,15 @@
mdb> dd
p(1, 16, 3, 20, 5)
Valid? no
-my_succeed
++(1, 3) = 4
+Valid? yes
+*(3, 5) = 15
+Valid? yes
++(1, 15) = 16
+Valid? yes
+*(4, 5) = 20
+Valid? yes
+semidet_succeed
Valid? yes
Found incorrect contour:
p(1, 16, 3, 20, 5)
@@ -24,6 +32,10 @@
mdb> dd
p(1, -2, 3, 2, 5)
Valid? no
+-(1, 3) = -2
+Valid? yes
+-(5, 3) = 2
+Valid? yes
Found incorrect contour:
p(1, -2, 3, 2, 5)
Is this a bug? yes
Index: tests/debugger/declarative/args.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/args.inp,v
retrieving revision 1.3
diff -u -u -r1.3 args.inp
--- tests/debugger/declarative/args.inp 18 Aug 2000 10:59:35 -0000 1.3
+++ tests/debugger/declarative/args.inp 29 Jan 2003 03:57:04 -0000
@@ -7,10 +7,16 @@
no
yes
yes
+yes
+yes
+yes
+yes
continue
finish
dd
no
+yes
+yes
yes
continue
finish
Index: tests/debugger/declarative/args.m
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/args.m,v
retrieving revision 1.1
diff -u -u -r1.1 args.m
--- tests/debugger/declarative/args.m 22 Feb 2000 10:46:14 -0000 1.1
+++ tests/debugger/declarative/args.m 29 Jan 2003 03:51:55 -0000
@@ -3,12 +3,12 @@
:- import_module io.
:- pred main(io__state::di, io__state::uo) is cc_multi.
:- implementation.
-:- import_module std_util, int.
+:- import_module library_forwarding.
main -->
(
{ p(1, X, 3, Y, 5) },
- { my_fail }
+ { semidet_fail }
->
io__write_int(X),
io__nl,
@@ -22,19 +22,7 @@
:- mode p(in, out, in, out, in) is nondet.
p(A, A + (B * C), B, (A + B) * C, C) :-
- my_succeed.
+ semidet_succeed.
p(A, A - B, B, C - B, C) :-
- my_succeed.
-
- % The purpose of the following two procedures is to ensure
- % that the test cases work consistently in both debugging
- % and non-debugging grades.
- %
-:- pred my_succeed is semidet.
-my_succeed :-
semidet_succeed.
-
-:- pred my_fail is semidet.
-my_fail :-
- semidet_fail.
Index: tests/debugger/declarative/backtrack.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/backtrack.exp,v
retrieving revision 1.6
diff -u -u -r1.6 backtrack.exp
--- tests/debugger/declarative/backtrack.exp 17 Jan 2003 05:57:00 -0000 1.6
+++ tests/debugger/declarative/backtrack.exp 29 Jan 2003 08:03:59 -0000
@@ -1,22 +1,31 @@
- 1: 1 1 CALL pred backtrack.main/2-0 (det) backtrack.m:8
+ 1: 1 1 CALL pred backtrack.main/2-0 (det) backtrack.m:9
mdb> echo on
Command echo enabled.
mdb> register --quiet
mdb> break p
0: + stop interface pred backtrack.p/2-0 (det)
mdb> continue
- 2: 2 2 CALL pred backtrack.p/2-0 (det) backtrack.m:23 (backtrack.m:9)
+ 2: 2 2 CALL pred backtrack.p/2-0 (det) backtrack.m:24 (backtrack.m:10)
mdb> finish
- 17: 2 2 EXIT pred backtrack.p/2-0 (det) backtrack.m:23 (backtrack.m:9)
+ 23: 2 2 EXIT pred backtrack.p/2-0 (det) backtrack.m:24 (backtrack.m:10)
mdb> dd
p(1, no)
Valid? no
q(1, 1)
Valid? yes
+Call >(1, 5)
+No solutions.
+Complete? yes
q(1, 2)
Valid? yes
+Call >(2, 5)
+No solutions.
+Complete? yes
q(1, 3)
Valid? yes
+Call >(3, 5)
+No solutions.
+Complete? yes
Call q(1, _)
Solutions:
q(1, 1)
@@ -26,6 +35,6 @@
Found incorrect contour:
p(1, no)
Is this a bug? yes
- 17: 2 2 EXIT pred backtrack.p/2-0 (det) backtrack.m:23 (backtrack.m:9)
+ 23: 2 2 EXIT pred backtrack.p/2-0 (det) backtrack.m:24 (backtrack.m:10)
mdb> continue
no
Index: tests/debugger/declarative/backtrack.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/backtrack.inp,v
retrieving revision 1.4
diff -u -u -r1.4 backtrack.inp
--- tests/debugger/declarative/backtrack.inp 18 Aug 2000 10:59:36 -0000 1.4
+++ tests/debugger/declarative/backtrack.inp 29 Jan 2003 04:03:40 -0000
@@ -10,4 +10,7 @@
yes
yes
yes
+yes
+yes
+yes
continue
Index: tests/debugger/declarative/backtrack.m
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/backtrack.m,v
retrieving revision 1.1
diff -u -u -r1.1 backtrack.m
--- tests/debugger/declarative/backtrack.m 17 Feb 2000 06:47:49 -0000 1.1
+++ tests/debugger/declarative/backtrack.m 29 Jan 2003 04:00:00 -0000
@@ -3,7 +3,8 @@
:- import_module io.
:- pred main(io__state::di, io__state::uo) is det.
:- implementation.
-:- import_module std_util, int, bool.
+:- import_module bool.
+:- import_module library_forwarding.
main -->
{ p(1, R) },
Index: tests/debugger/declarative/big.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/big.exp,v
retrieving revision 1.8
diff -u -u -r1.8 big.exp
--- tests/debugger/declarative/big.exp 17 Jan 2003 05:57:00 -0000 1.8
+++ tests/debugger/declarative/big.exp 29 Jan 2003 04:41:42 -0000
@@ -1,13 +1,13 @@
- E1: C1 1 CALL pred big.main/2-0 (det) big.m:9
+ E1: C1 1 CALL pred big.main/2-0 (det) big.m:10
mdb> echo on
Command echo enabled.
mdb> register --quiet
mdb> break p
0: + stop interface pred big.p/1-0 (nondet)
mdb> continue
- E2: C2 2 CALL pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E2: C2 2 CALL pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> finish
- E3: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E3: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> dd
p(-12)
Valid? no
@@ -27,11 +27,11 @@
Found incorrect contour:
p(-12)
Is this a bug? yes
- E3: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E3: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> continue
- E4: C2 2 REDO pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E4: C2 2 REDO pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> finish
- E5: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E5: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> dd
p(-14)
Valid? no
@@ -42,11 +42,11 @@
Found incorrect contour:
p(-14)
Is this a bug? yes
- E5: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E5: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> continue
- E6: C2 2 REDO pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E6: C2 2 REDO pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> finish
- E7: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E7: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> dd
p(-20)
Valid? no
@@ -56,6 +56,8 @@
Valid? yes
d(15, 45)
Valid? yes
+>(45, 5)
+Valid? yes
Call c(1, _)
Solutions:
c(1, 15)
@@ -67,11 +69,11 @@
Found incorrect contour:
p(-20)
Is this a bug? yes
- E7: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E7: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> continue
- E8: C2 2 REDO pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E8: C2 2 REDO pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> finish
- E9: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E9: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> dd
p(-22)
Valid? no
@@ -82,11 +84,11 @@
Found incorrect contour:
p(-22)
Is this a bug? yes
- E9: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E9: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> continue
- E10: C2 2 REDO pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E10: C2 2 REDO pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> finish
- E11: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E11: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> dd
p(2)
Valid? no
@@ -98,8 +100,14 @@
Valid? yes
g(6, -10)
Valid? yes
+Call >(-10, 0)
+No solutions.
+Complete? yes
g(7, -11)
Valid? yes
+Call >(-11, 0)
+No solutions.
+Complete? yes
Call c(2, _)
Solutions:
c(2, 6)
@@ -108,11 +116,11 @@
Found incorrect contour:
p(2)
Is this a bug? yes
- E11: C2 2 EXIT pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E11: C2 2 EXIT pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> continue
- E12: C2 2 REDO pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E12: C2 2 REDO pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> finish
- E13: C2 2 FAIL pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E13: C2 2 FAIL pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> dd
Call p(_)
Solutions:
@@ -126,6 +134,8 @@
Valid? yes
d(3, 9)
Valid? yes
+>(9, 5)
+Valid? yes
Call c(0, _)
Solutions:
c(0, 2)
@@ -149,9 +159,11 @@
Valid? yes
g(9, 99)
Valid? yes
+>(99, 0)
+Valid? yes
Found partially uncovered atom:
p(_)
Is this a bug? yes
- E13: C2 2 FAIL pred big.p/1-0 (nondet) big.m:23 (big.m:11)
+ E13: C2 2 FAIL pred big.p/1-0 (nondet) big.m:24 (big.m:12)
mdb> continue
no.
Index: tests/debugger/declarative/big.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/big.inp,v
retrieving revision 1.5
diff -u -u -r1.5 big.inp
--- tests/debugger/declarative/big.inp 18 Aug 2000 10:59:36 -0000 1.5
+++ tests/debugger/declarative/big.inp 29 Jan 2003 04:41:36 -0000
@@ -30,6 +30,7 @@
yes
yes
yes
+yes
continue
finish
dd
@@ -48,10 +49,14 @@
yes
yes
yes
+yes
+yes
continue
finish
dd
no
+yes
+yes
yes
yes
yes
Index: tests/debugger/declarative/big.m
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/big.m,v
retrieving revision 1.1
diff -u -u -r1.1 big.m
--- tests/debugger/declarative/big.m 6 Jan 2000 05:15:04 -0000 1.1
+++ tests/debugger/declarative/big.m 29 Jan 2003 04:05:22 -0000
@@ -4,7 +4,8 @@
:- pred main(io__state, io__state).
:- mode main(di, uo) is det.
:- implementation.
-:- import_module bool, int, std_util.
+:- import_module bool.
+:- import_module library_forwarding.
main -->
{
Index: tests/debugger/declarative/catch.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/catch.exp2,v
retrieving revision 1.2
diff -u -u -r1.2 catch.exp2
--- tests/debugger/declarative/catch.exp2 17 Jan 2003 05:57:00 -0000 1.2
+++ tests/debugger/declarative/catch.exp2 29 Jan 2003 08:35:24 -0000
@@ -7,7 +7,7 @@
mdb> continue
2: 2 2 CALL pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:9)
mdb> finish
- 11: 2 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:9)
+ 13: 2 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:9)
mdb> dd
p(1, exception(univ_cons("q: bad input")))
Valid? no
@@ -17,12 +17,12 @@
the following: code that catches exceptions.
The debugger is a work in progress, and this is not supported in the
current version.
- 11: 2 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:9)
+ 13: 2 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:9)
mdb> continue
exception(univ_cons("q: bad input"))
- 16: 8 2 CALL pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:12)
+ 174: 61 2 CALL pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:12)
mdb> finish
- 23: 8 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:12)
+ 183: 61 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:12)
mdb> dd
p(2, succeeded(2))
Valid? no
@@ -33,8 +33,8 @@
Found incorrect contour:
try(q(2), succeeded(2))
Is this a bug? yes
- 22: 9 3 EXIT pred exception.try/2-0 (cc_multi) exception.m:321 (catch.m:19)
+ 182: 62 3 EXIT pred exception.try/2-0 (cc_multi) exception.m:321 (catch.m:19)
mdb> continue
- 23: 8 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:12)
+ 183: 61 2 EXIT pred catch.p/2-0 (cc_multi) catch.m:18 (catch.m:12)
mdb> continue
succeeded(2)
Index: tests/debugger/declarative/func_call.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/func_call.exp,v
retrieving revision 1.3
diff -u -u -r1.3 func_call.exp
--- tests/debugger/declarative/func_call.exp 17 Jan 2003 05:57:01 -0000 1.3
+++ tests/debugger/declarative/func_call.exp 29 Jan 2003 08:06:37 -0000
@@ -7,20 +7,39 @@
mdb> continue
2: 2 2 CALL func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:9)
mdb> finish -n
- 69: 2 2 EXIT func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:9)
+ 151: 2 2 EXIT func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:9)
mdb> dd
fib(6) = 9
Valid? no
+Call =<(6, 1)
+No solutions.
+Complete? yes
+-(6, 1) = 5
+Valid? yes
fib(5) = 6
Valid? no
+Call =<(5, 1)
+No solutions.
+Complete? yes
+-(5, 1) = 4
+Valid? yes
fib(4) = 4
Valid? no
+Call =<(4, 1)
+No solutions.
+Complete? yes
+-(4, 1) = 3
+Valid? yes
fib(3) = 3
Valid? yes
+-(4, 3) = 1
+Valid? yes
fib(1) = 1
Valid? yes
++(3, 1) = 4
+Valid? yes
Found incorrect contour:
fib(4) = 4
Is this a bug? yes
- 35: 4 4 EXIT func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:20)
+ 75: 8 4 EXIT func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:20)
mdb> quit -y
Index: tests/debugger/declarative/func_call.exp2
===================================================================
RCS file: tests/debugger/declarative/func_call.exp2
diff -N tests/debugger/declarative/func_call.exp2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/func_call.exp2 29 Jan 2003 07:10:03 -0000
@@ -0,0 +1,45 @@
+ 1: 1 1 CALL pred func_call.main/2-0 (det) func_call.m:8
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> break fib
+ 0: + stop interface func func_call.fib/1-0 (det)
+mdb> continue
+ 2: 2 2 CALL func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:9)
+mdb> finish -n
+ 233: 2 2 EXIT func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:9)
+mdb> dd
+fib(6) = 9
+Valid? no
+Call =<(6, 1)
+No solutions.
+Complete? yes
+-(6, 1) = 5
+Valid? yes
+fib(5) = 6
+Valid? no
+Call =<(5, 1)
+No solutions.
+Complete? yes
+-(5, 1) = 4
+Valid? yes
+fib(4) = 4
+Valid? no
+Call =<(4, 1)
+No solutions.
+Complete? yes
+-(4, 1) = 3
+Valid? yes
+fib(3) = 3
+Valid? yes
+-(4, 3) = 1
+Valid? yes
+fib(1) = 1
+Valid? yes
++(3, 1) = 4
+Valid? yes
+Found incorrect contour:
+fib(4) = 4
+Is this a bug? yes
+ 115: 12 4 EXIT func func_call.fib/1-0 (det) func_call.m:14 (func_call.m:20)
+mdb> quit -y
Index: tests/debugger/declarative/func_call.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/func_call.inp,v
retrieving revision 1.1
diff -u -u -r1.1 func_call.inp
--- tests/debugger/declarative/func_call.inp 1 Oct 2000 04:09:55 -0000 1.1
+++ tests/debugger/declarative/func_call.inp 29 Jan 2003 07:09:58 -0000
@@ -5,8 +5,16 @@
finish -n
dd
no
+yes
+yes
no
+yes
+yes
no
+yes
+yes
+yes
+yes
yes
yes
yes
Index: tests/debugger/declarative/func_call.m
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/func_call.m,v
retrieving revision 1.1
diff -u -u -r1.1 func_call.m
--- tests/debugger/declarative/func_call.m 1 Oct 2000 04:09:55 -0000 1.1
+++ tests/debugger/declarative/func_call.m 29 Jan 2003 06:57:13 -0000
@@ -3,7 +3,7 @@
:- import_module io.
:- pred main(io__state::di, io__state::uo) is det.
:- implementation.
-:- import_module int.
+:- import_module library_forwarding.
main -->
io__write_int(fib(6)),
Index: tests/debugger/declarative/gcf.exp2
===================================================================
RCS file: tests/debugger/declarative/gcf.exp2
diff -N tests/debugger/declarative/gcf.exp2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/gcf.exp2 29 Jan 2003 07:13:50 -0000
@@ -0,0 +1,57 @@
+ 1: 1 1 CALL pred gcf.main/2-0 (cc_multi) gcf.m:8
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> break a
+ 0: + stop interface pred gcf.a/1-0 (nondet)
+mdb> continue
+ 3: 2 2 CALL pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> finish
+ 27: 2 2 EXIT pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> dd
+a(11)
+Valid? no
+g(2)
+Valid? yes
+c(2, 11)
+Valid? yes
+f(11)
+Valid? yes
+Found incorrect contour:
+a(11)
+Is this a bug? yes
+ 27: 2 2 EXIT pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> continue
+ 30: 2 2 REDO pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> finish
+ 38: 2 2 EXIT pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> dd
+a(12)
+Valid? no
+c(2, 12)
+Valid? yes
+f(12)
+Valid? yes
+Found incorrect contour:
+a(12)
+Is this a bug? yes
+ 38: 2 2 EXIT pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> continue
+ 41: 2 2 REDO pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> finish
+ 54: 2 2 EXIT pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> dd
+a(20)
+Valid? no
+g(3)
+Valid? yes
+c(3, 20)
+Valid? yes
+f(20)
+Valid? yes
+Found incorrect contour:
+a(20)
+Is this a bug? yes
+ 54: 2 2 EXIT pred gcf.a/1-0 (nondet) gcf.m:26 (gcf.m:10)
+mdb> continue
+yes(20)
Index: tests/debugger/declarative/gcf.m
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/gcf.m,v
retrieving revision 1.1
diff -u -u -r1.1 gcf.m
--- tests/debugger/declarative/gcf.m 2 Jun 1999 07:28:55 -0000 1.1
+++ tests/debugger/declarative/gcf.m 29 Jan 2003 07:13:45 -0000
@@ -3,7 +3,7 @@
:- import_module io.
:- pred main(io__state::di, io__state::uo) is cc_multi.
:- implementation.
-:- import_module std_util, int.
+:- import_module int, std_util.
main -->
{
Index: tests/debugger/declarative/higher_order.exp2
===================================================================
RCS file: tests/debugger/declarative/higher_order.exp2
diff -N tests/debugger/declarative/higher_order.exp2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/higher_order.exp2 29 Jan 2003 07:14:30 -0000
@@ -0,0 +1,21 @@
+ 1: 1 1 CALL pred higher_order.main/2-0 (det) higher_order.m:8
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> break p
+ 0: + stop interface pred higher_order.p/2-0 (det)
+mdb> continue
+ 2: 2 2 CALL pred higher_order.p/2-0 (det) higher_order.m:15 (higher_order.m:9)
+mdb> finish
+ 11: 2 2 EXIT pred higher_order.p/2-0 (det) higher_order.m:15 (higher_order.m:9)
+mdb> dd
+p(3, 81)
+Valid? no
+q('IntroducedFrom__pred__p__16__1', 3, 81)
+Valid? yes
+Found incorrect contour:
+p(3, 81)
+Is this a bug? yes
+ 11: 2 2 EXIT pred higher_order.p/2-0 (det) higher_order.m:15 (higher_order.m:9)
+mdb> continue
+81
Index: tests/debugger/declarative/ho2.exp2
===================================================================
RCS file: tests/debugger/declarative/ho2.exp2
diff -N tests/debugger/declarative/ho2.exp2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/ho2.exp2 29 Jan 2003 07:15:18 -0000
@@ -0,0 +1,45 @@
+ 1: 1 1 CALL pred ho2.main/2-0 (det) ho2.m:8
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> break p
+ 0: + stop interface pred ho2.p/3-0 (det)
+mdb> continue
+ 2: 2 2 CALL pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:9)
+mdb> finish
+ 11: 2 2 EXIT pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:9)
+mdb> dd
+p(0, 3, 27)
+Valid? no
+q('IntroducedFrom__pred__p__22__1'(3), 3, 27)
+Valid? yes
+Found incorrect contour:
+p(0, 3, 27)
+Is this a bug? yes
+ 11: 2 2 EXIT pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:9)
+mdb> continue
+ 12: 7 2 CALL pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:10)
+mdb> finish
+ 21: 7 2 EXIT pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:10)
+mdb> dd
+p(1, 3, 27)
+Valid? no
+Found incorrect contour:
+p(1, 3, 27)
+Is this a bug? yes
+ 21: 7 2 EXIT pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:10)
+mdb> continue
+ 22: 12 2 CALL pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:11)
+mdb> finish
+ 31: 12 2 EXIT pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:11)
+mdb> dd
+p(2, 4, 64)
+Valid? no
+q('IntroducedFrom__pred__p__22__1'(4), 4, 64)
+Valid? yes
+Found incorrect contour:
+p(2, 4, 64)
+Is this a bug? yes
+ 31: 12 2 EXIT pred ho2.p/3-0 (det) ho2.m:21 (ho2.m:11)
+mdb> continue
+27, 27, 64
Index: tests/debugger/declarative/ho5.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/ho5.exp2,v
retrieving revision 1.2
diff -u -u -r1.2 ho5.exp2
--- tests/debugger/declarative/ho5.exp2 17 Jan 2003 05:57:01 -0000 1.2
+++ tests/debugger/declarative/ho5.exp2 29 Jan 2003 07:15:45 -0000
@@ -24,9 +24,9 @@
12: 3 3 EXCP pred ho5.p/2-0 (det) c2; ho5.m:18 (exception.m:NNNN)
mdb> continue
exception(univ_cons('<<function>>'))
- 19: 10 3 CALL pred ho5.p/2-0 (det) ho5.m:18 (exception.m:NNNN)
+ 175: 62 3 CALL pred ho5.p/2-0 (det) ho5.m:18 (exception.m:NNNN)
mdb> finish
- 28: 10 3 EXCP pred ho5.p/2-0 (det) c2; ho5.m:18 (exception.m:NNNN)
+ 184: 62 3 EXCP pred ho5.p/2-0 (det) c2; ho5.m:18 (exception.m:NNNN)
mdb> dd
Call p(2, _)
Throws zero
@@ -37,6 +37,6 @@
p(2, _)
zero
Is this a bug? yes
- 28: 10 3 EXCP pred ho5.p/2-0 (det) c2; ho5.m:18 (exception.m:NNNN)
+ 184: 62 3 EXCP pred ho5.p/2-0 (det) c2; ho5.m:18 (exception.m:NNNN)
mdb> continue
exception(univ_cons('<<function>>'))
Index: tests/debugger/declarative/ite_2.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/ite_2.exp,v
retrieving revision 1.2
diff -u -u -r1.2 ite_2.exp
--- tests/debugger/declarative/ite_2.exp 17 Jan 2003 05:57:01 -0000 1.2
+++ tests/debugger/declarative/ite_2.exp 29 Jan 2003 08:08:22 -0000
@@ -13,27 +13,33 @@
mdb> continue
2: 2 2 CALL pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
mdb> finish
- 9: 2 2 EXIT pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
+ 11: 2 2 EXIT pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
mdb> dd
ite(a, 1, 1)
Valid? no
a(1, 1)
Valid? yes
+Call >(1, 1)
+No solutions.
+Complete? yes
c(1, 1)
Valid? yes
Found incorrect contour:
ite(a, 1, 1)
Is this a bug? yes
- 9: 2 2 EXIT pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
+ 11: 2 2 EXIT pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
mdb> continue
- 10: 5 2 CALL pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
+ 12: 6 2 CALL pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
mdb> finish
- 23: 5 2 EXIT pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
+ 29: 6 2 EXIT pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
mdb> dd
ite(b, 1, 1)
Valid? no
b(1, 0)
Valid? yes
+Call >(0, 1)
+No solutions.
+Complete? yes
b(1, 1)
Valid? yes
Call b(1, _)
@@ -44,7 +50,7 @@
Found incorrect contour:
ite(b, 1, 1)
Is this a bug? yes
- 23: 5 2 EXIT pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
+ 29: 6 2 EXIT pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
mdb> continue
ite(a, 1, 1).
ite(b, 1, 1).
Index: tests/debugger/declarative/ite_2.exp2
===================================================================
RCS file: tests/debugger/declarative/ite_2.exp2
diff -N tests/debugger/declarative/ite_2.exp2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/ite_2.exp2 29 Jan 2003 07:45:35 -0000
@@ -0,0 +1,57 @@
+ 1: 1 1 CALL pred ite_2.main/2-0 (cc_multi) ite_2.m:8
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> break ite
+Ambiguous procedure specification. The matches are:
+0: pred ite_2.ite/3-1 (multi)
+1: pred ite_2.ite/3-0 (det)
+
+Which do you want to put a breakpoint on (0-1 or *)? *
+ 0: + stop interface pred ite_2.ite/3-1 (multi)
+ 1: + stop interface pred ite_2.ite/3-0 (det)
+mdb> continue
+ 2: 2 2 CALL pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
+mdb> finish
+ 13: 2 2 EXIT pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
+mdb> dd
+ite(a, 1, 1)
+Valid? no
+a(1, 1)
+Valid? yes
+Call >(1, 1)
+No solutions.
+Complete? yes
+c(1, 1)
+Valid? yes
+Found incorrect contour:
+ite(a, 1, 1)
+Is this a bug? yes
+ 13: 2 2 EXIT pred ite_2.ite/3-0 (det) ite_2.m:27 (ite_2.m:9)
+mdb> continue
+ 14: 7 2 CALL pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
+mdb> finish
+ 35: 7 2 EXIT pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
+mdb> dd
+ite(b, 1, 1)
+Valid? no
+b(1, 0)
+Valid? yes
+Call >(0, 1)
+No solutions.
+Complete? yes
+b(1, 1)
+Valid? yes
+Call b(1, _)
+Solutions:
+ b(1, 0)
+ b(1, 1)
+Complete? yes
+Found incorrect contour:
+ite(b, 1, 1)
+Is this a bug? yes
+ 35: 7 2 EXIT pred ite_2.ite/3-1 (multi) ite_2.m:27 (ite_2.m:10)
+mdb> continue
+ite(a, 1, 1).
+ite(b, 1, 1).
+
Index: tests/debugger/declarative/ite_2.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/ite_2.inp,v
retrieving revision 1.1
diff -u -u -r1.1 ite_2.inp
--- tests/debugger/declarative/ite_2.inp 2 May 2002 07:44:02 -0000 1.1
+++ tests/debugger/declarative/ite_2.inp 29 Jan 2003 07:45:20 -0000
@@ -9,10 +9,12 @@
yes
yes
yes
+yes
continue
finish
dd
no
+yes
yes
yes
yes
Index: tests/debugger/declarative/ite_2.m
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/ite_2.m,v
retrieving revision 1.1
diff -u -u -r1.1 ite_2.m
--- tests/debugger/declarative/ite_2.m 21 Jan 2000 02:44:30 -0000 1.1
+++ tests/debugger/declarative/ite_2.m 29 Jan 2003 07:45:28 -0000
@@ -3,7 +3,7 @@
:- import_module io.
:- pred main(io__state::di, io__state::uo) is cc_multi.
:- implementation.
-:- import_module int.
+:- import_module library_forwarding.
main -->
{ ite(a, 1, M) },
Index: tests/debugger/declarative/library_forwarding.m
===================================================================
RCS file: tests/debugger/declarative/library_forwarding.m
diff -N tests/debugger/declarative/library_forwarding.m
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/library_forwarding.m 29 Jan 2003 04:05:20 -0000
@@ -0,0 +1,43 @@
+% Procedures which just forward to the corresponding procedures
+% in the library, to avoid differences in behaviour depending
+% on whether the library was compiled with debugging enabled.
+:- module library_forwarding.
+
+:- interface.
+
+:- func int + int = int.
+:- func int * int = int.
+:- func int - int = int.
+:- func - int = int.
+
+:- func int mod int = int.
+
+:- pred int =< int is semidet.
+:- mode in =< in is semidet.
+
+:- pred int > int is semidet.
+:- mode in > in is semidet.
+
+:- pred semidet_succeed is semidet.
+:- pred semidet_fail is semidet.
+
+:- implementation.
+
+:- import_module int, std_util.
+
+X + Y = 'int__+'(X, Y).
+X * Y = 'int__*'(X, Y).
+X - Y = 'int__-'(X, Y).
+- X = 'int__-'(X).
+
+X mod Y = 'int__mod'(X, Y).
+
+X =< Y :- 'int__=<'(X, Y).
+X > Y :- 'int__>'(X, Y).
+
+semidet_succeed :-
+ std_util__semidet_succeed.
+
+semidet_fail :-
+ std_util__semidet_fail.
+
Index: tests/debugger/declarative/lpe_example.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/lpe_example.exp2,v
retrieving revision 1.8
diff -u -u -r1.8 lpe_example.exp2
--- tests/debugger/declarative/lpe_example.exp2 17 Jan 2003 05:57:01 -0000 1.8
+++ tests/debugger/declarative/lpe_example.exp2 29 Jan 2003 08:36:30 -0000
@@ -9,7 +9,7 @@
mdb> continue
3: 3 3 CALL pred lpe_example.p/2-0 (nondet)
mdb> finish
- 11: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
+ 13: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
mdb> dd
p(1, 13)
Valid? no
@@ -20,11 +20,11 @@
Found incorrect contour:
p(1, 13)
Is this a bug? yes
- 11: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
+ 13: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
mdb> continue
- 12: 3 3 REDO pred lpe_example.p/2-0 (nondet)
+ 14: 3 3 REDO pred lpe_example.p/2-0 (nondet)
mdb> finish
- 16: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
+ 20: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
mdb> dd
p(1, 23)
Valid? no
@@ -33,22 +33,22 @@
Found incorrect contour:
p(1, 23)
Is this a bug? yes
- 16: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
+ 20: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
mdb> continue
- 17: 3 3 REDO pred lpe_example.p/2-0 (nondet)
+ 21: 3 3 REDO pred lpe_example.p/2-0 (nondet)
mdb> finish
- 21: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
+ 25: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
mdb> dd
p(1, 3)
Valid? no
Found incorrect contour:
p(1, 3)
Is this a bug? yes
- 21: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
+ 25: 3 3 EXIT pred lpe_example.p/2-0 (nondet)
mdb> continue
- 22: 3 3 REDO pred lpe_example.p/2-0 (nondet)
+ 26: 3 3 REDO pred lpe_example.p/2-0 (nondet)
mdb> finish
- 23: 3 3 FAIL pred lpe_example.p/2-0 (nondet)
+ 27: 3 3 FAIL pred lpe_example.p/2-0 (nondet)
mdb> dd
Call p(1, _)
Solutions:
@@ -64,6 +64,6 @@
Found partially uncovered atom:
p(1, _)
Is this a bug? yes
- 23: 3 3 FAIL pred lpe_example.p/2-0 (nondet)
+ 27: 3 3 FAIL pred lpe_example.p/2-0 (nondet)
mdb> continue
[3, 13, 23]
Index: tests/debugger/declarative/neg_conj.exp2
===================================================================
RCS file: tests/debugger/declarative/neg_conj.exp2
diff -N tests/debugger/declarative/neg_conj.exp2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/neg_conj.exp2 29 Jan 2003 07:19:15 -0000
@@ -0,0 +1,34 @@
+ 1: 1 1 CALL pred neg_conj.main/2-0 (det) neg_conj.m:11
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> break p
+ 0: + stop interface pred neg_conj.p/1-0 (semidet)
+mdb> continue
+ 3: 2 2 CALL pred neg_conj.p/1-0 (semidet) neg_conj.m:19 (neg_conj.m:9)
+mdb> finish
+ 22: 2 2 EXIT pred neg_conj.p/1-0 (semidet) neg_conj.m:19 (neg_conj.m:9)
+mdb> dd
+p(0)
+Valid? no
+q(0, 0)
+Valid? yes
+Call r(0)
+No solutions.
+Complete? yes
+q(0, 1)
+Valid? yes
+Call r(1)
+No solutions.
+Complete? yes
+Call q(0, _)
+Solutions:
+ q(0, 0)
+ q(0, 1)
+Complete? yes
+Found incorrect contour:
+p(0)
+Is this a bug? yes
+ 22: 2 2 EXIT pred neg_conj.p/1-0 (semidet) neg_conj.m:19 (neg_conj.m:9)
+mdb> continue
+yes.
Index: tests/debugger/declarative/negation.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/negation.exp,v
retrieving revision 1.7
diff -u -u -r1.7 negation.exp
--- tests/debugger/declarative/negation.exp 17 Jan 2003 05:57:01 -0000 1.7
+++ tests/debugger/declarative/negation.exp 29 Jan 2003 08:04:56 -0000
@@ -7,7 +7,7 @@
mdb> continue
2: 2 2 CALL pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
mdb> finish
- 23: 2 2 EXIT pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
+ 31: 2 2 EXIT pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
mdb> dd
p(1, 42)
Valid? no
@@ -27,6 +27,6 @@
Found incorrect contour:
p(1, 42)
Is this a bug? yes
- 23: 2 2 EXIT pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
+ 31: 2 2 EXIT pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
mdb> continue
42
Index: tests/debugger/declarative/negation.exp2
===================================================================
RCS file: tests/debugger/declarative/negation.exp2
diff -N tests/debugger/declarative/negation.exp2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/debugger/declarative/negation.exp2 29 Jan 2003 07:47:26 -0000
@@ -0,0 +1,32 @@
+ 1: 1 1 CALL pred negation.main/2-0 (det) negation.m:13
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> break p
+ 0: + stop interface pred negation.p/2-0 (det)
+mdb> continue
+ 2: 2 2 CALL pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
+mdb> finish
+ 39: 2 2 EXIT pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
+mdb> dd
+p(1, 42)
+Valid? no
+r(1, 11)
+Valid? yes
+q(11)
+Valid? yes
+r(1, 21)
+Valid? yes
+q(21)
+Valid? yes
+Call r(1, _)
+Solutions:
+ r(1, 11)
+ r(1, 21)
+Complete? yes
+Found incorrect contour:
+p(1, 42)
+Is this a bug? yes
+ 39: 2 2 EXIT pred negation.p/2-0 (det) negation.m:29 (negation.m:14)
+mdb> continue
+42
Index: tests/debugger/declarative/negation.m
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/negation.m,v
retrieving revision 1.2
diff -u -u -r1.2 negation.m
--- tests/debugger/declarative/negation.m 3 Jan 2000 02:22:52 -0000 1.2
+++ tests/debugger/declarative/negation.m 29 Jan 2003 07:49:06 -0000
@@ -8,7 +8,7 @@
:- implementation.
-:- import_module int.
+:- import_module library_forwarding.
main(S0, S) :-
p(1, X),
Index: tests/debugger/declarative/solutions.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/solutions.exp2,v
retrieving revision 1.3
diff -u -u -r1.3 solutions.exp2
--- tests/debugger/declarative/solutions.exp2 17 Jan 2003 05:57:02 -0000 1.3
+++ tests/debugger/declarative/solutions.exp2 29 Jan 2003 07:52:25 -0000
@@ -7,7 +7,7 @@
mdb> continue
2: 2 2 CALL pred solutions.p/2-0 (det) solutions.m:15 (solutions.m:9)
mdb> finish
- 17: 2 2 EXIT pred solutions.p/2-0 (det) solutions.m:15 (solutions.m:9)
+ 29: 2 2 EXIT pred solutions.p/2-0 (det) solutions.m:15 (solutions.m:9)
mdb> dd
p(1, [1, 2, 3])
Valid? no
@@ -25,8 +25,12 @@
q(1, 2)
q(1, 3)
Complete? yes
+//(3, 2) = 1
+Valid? yes
+//(2, 2) = 1
+Valid? yes
Found incorrect contour:
solutions(q(1), [1, 2, 3])
Is this a bug? yes
- 16: 3 3 EXIT pred std_util.solutions/2-1 (det) std_util.m:NNNN (solutions.m:16)
+ 28: 3 3 EXIT pred std_util.solutions/2-1 (det) std_util.m:NNNN (solutions.m:16)
mdb> quit -y
Index: tests/debugger/declarative/solutions.inp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/solutions.inp2,v
retrieving revision 1.1
diff -u -u -r1.1 solutions.inp2
--- tests/debugger/declarative/solutions.inp2 8 Sep 2002 15:47:04 -0000 1.1
+++ tests/debugger/declarative/solutions.inp2 29 Jan 2003 07:52:18 -0000
@@ -11,4 +11,6 @@
yes
yes
yes
+yes
+yes
quit -y
Index: tests/debugger/declarative/throw.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/throw.exp2,v
retrieving revision 1.7
diff -u -u -r1.7 throw.exp2
--- tests/debugger/declarative/throw.exp2 17 Jan 2003 05:57:02 -0000 1.7
+++ tests/debugger/declarative/throw.exp2 29 Jan 2003 08:37:25 -0000
@@ -9,7 +9,7 @@
mdb> continue
3: 3 3 CALL pred throw.p/1-0 (cc_nondet) throw.m:20 (exception.m:NNNN)
mdb> finish
- 34: 3 3 EXCP pred throw.p/1-0 (cc_nondet)
+ 56: 3 3 EXCP pred throw.p/1-0 (cc_nondet)
mdb> dd
Call p(_)
Throws "Too big"
@@ -23,12 +23,12 @@
p(_)
"Too big"
Is this a bug? yes
- 34: 3 3 EXCP pred throw.p/1-0 (cc_nondet)
+ 56: 3 3 EXCP pred throw.p/1-0 (cc_nondet)
mdb> continue
exception(univ_cons("Too big"))
- 41: 11 3 CALL pred throw.q/1-0 (semidet) throw.m:48 (exception.m:NNNN)
+ 159: 54 3 CALL pred throw.q/1-0 (semidet) throw.m:48 (exception.m:NNNN)
mdb> finish
- 76: 11 3 EXCP pred throw.q/1-0 (semidet)
+ 212: 54 3 EXCP pred throw.q/1-0 (semidet)
mdb> dd
Call q(_)
Throws "Too big"
@@ -42,6 +42,6 @@
q(_)
"Too big"
Is this a bug? yes
- 76: 11 3 EXCP pred throw.q/1-0 (semidet)
+ 212: 54 3 EXCP pred throw.q/1-0 (semidet)
mdb> continue
exception(univ_cons("Too big"))
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list