[m-dev.] diff: Fix bug in missing answer analysis

Mark Anthony BROWN dougl at cs.mu.OZ.AU
Fri Jan 21 13:40:42 AEDT 2000


Estimated hours taken: 25 (mostly hand checking the test results)

Fix a bug in the front end which was causing some questions
to be missed.  Reorganize the expected test results, as suggested
after the last commit.

browser/declarative_debugger.m:
	Fix a bug in missing answer children/4.

tests/debugger/declarative/Mmakefile:
tests/debugger/declarative/aadebug.m:
tests/debugger/declarative/aadebug.inp:
tests/debugger/declarative/aadebug.exp:
	New test case.

tests/debugger/declarative/family.m:
tests/debugger/declarative/higher_order.m:
tests/debugger/declarative/ite_2.m:
tests/debugger/declarative/solutions.m:
	New test cases for unimplemented features.  These tests are
	not yet enabled.

tests/debugger/declarative/*.exp:
tests/debugger/declarative/*.exp2:
	Swap the .exp files for the .exp2 files.  This is to be
	consistent with the other test directories, where the .exp files
	contain normal output and the .exp2 files contain output in
	debug grades.

tests/debugger/declarative/*.inp:
tests/debugger/declarative/*.exp:
tests/debugger/declarative/*.exp2:
	Use `register --quiet' to make the output of the test cases
	more predictable.

tests/debugger/declarative/gcf.exp2:
tests/debugger/declarative/neg_conj.exp2:
tests/debugger/declarative/negation.exp2:
tests/debugger/declarative/oracle_db.exp2:
tests/debugger/declarative/queens.exp2:
tests/debugger/declarative/small.exp2:
	Remove these expected results, since using `register --quiet'
	makes them the same as the .exp versions.

? tests/debugger/declarative/aadebug.m
? tests/debugger/declarative/family.m
? tests/debugger/declarative/higher_order.m
? tests/debugger/declarative/ite_2.m
? tests/debugger/declarative/solutions.m
? tests/debugger/declarative/aadebug.inp
? tests/debugger/declarative/aadebug.exp
Index: browser/declarative_debugger.m
===================================================================
RCS file: /home/mercury1/repository/mercury/browser/declarative_debugger.m,v
retrieving revision 1.8
diff -u -r1.8 declarative_debugger.m
--- browser/declarative_debugger.m	2000/01/06 05:15:02	1.8
+++ browser/declarative_debugger.m	2000/01/21 02:09:37
@@ -381,11 +381,12 @@
 		;
 			call_node_from_id(Store, Call, call(Prec, _, _))
 		),
-		wrong_answer_children(Store, Prec, [dynamic(NodeId) | Ns0], Ns)
+		missing_answer_children(Store, Prec, [dynamic(NodeId) | Ns0],
+				Ns)
 	;
 		Node = redo(_, Exit),
 		exit_node_from_id(Store, Exit, exit(Prec, _, _, _)),
-		wrong_answer_children(Store, Prec, Ns0, Ns)
+		missing_answer_children(Store, Prec, Ns0, Ns)
 	;
 		Node = fail(_, Call),
 		call_node_from_id(Store, Call, call(Back, Answer, _)),
@@ -422,9 +423,10 @@
 		cond_node_from_id(Store, Cond, cond(Back, _, _)),
 		missing_answer_children(Store, Back, Ns1, Ns)
 	;
-		Node = neg_succ(_, Neg),
-		neg_node_from_id(Store, Neg, neg(Prec, _, _)),
-		missing_answer_children(Store, Prec, Ns0, Ns)
+		Node = neg_succ(Prec, Neg),
+		missing_answer_children(Store, Prec, Ns0, Ns1),
+		neg_node_from_id(Store, Neg, neg(Back, _, _)),
+		missing_answer_children(Store, Back, Ns1, Ns)
 	;
 		Node = neg_fail(Prec, Neg),
 		wrong_answer_children(Store, Prec, Ns0, Ns1),
Index: tests/debugger/declarative/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/Mmakefile,v
retrieving revision 1.9
diff -u -r1.9 Mmakefile
--- tests/debugger/declarative/Mmakefile	2000/01/06 05:15:03	1.9
+++ tests/debugger/declarative/Mmakefile	2000/01/21 02:11:08
@@ -17,6 +17,7 @@
 #-----------------------------------------------------------------------------#
 
 DECLARATIVE_PROGS=		\
+	aadebug			\
 	app			\
 	big			\
 	gcf			\
@@ -32,7 +33,8 @@
 NONWORKING_DECLARATIVE_PROGS=	\
 	family			\
 	higher_order		\
-	ite_2
+	ite_2			\
+	solutions
 
 
 MCFLAGS = --trace deep --trace-decl
@@ -67,6 +69,9 @@
 
 #-----------------------------------------------------------------------------#
 
+aadebug.out: aadebug aadebug.inp
+	$(MDB) ./aadebug < aadebug.inp > aadebug.out 2>&1
+
 app.out: app app.inp
 	$(MDB) ./app < app.inp > app.out 2>&1
 
@@ -108,6 +113,9 @@
 
 small.out: small small.inp
 	$(MDB) ./small < small.inp > small.out 2>&1
+
+solutions.out: solutions solutions.inp
+	$(MDB) ./solutions < solutions.inp > solutions.out 2>&1
 
 #-----------------------------------------------------------------------------#
 
Index: tests/debugger/declarative/app.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/app.exp,v
retrieving revision 1.3
diff -u -r1.3 app.exp
--- tests/debugger/declarative/app.exp	2000/01/06 05:15:03	1.3
+++ tests/debugger/declarative/app.exp	2000/01/21 02:11:09
@@ -1,9 +1,8 @@
        1:      1  1 CALL pred app:main/2-0 (det) app.m:10
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break app
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3206 procedures.
  0: + stop  interface pred app:app/3-0 (det)
 mdb> continue
        2:      2  2 CALL pred app:app/3-0 (det) app.m:26 (app.m:13)
@@ -37,9 +36,9 @@
       19:      2  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:13)
 mdb> continue
 append([1, 2, 3, 4, 5], [6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8]).
-      24:    347  2 CALL pred app:app/3-0 (det) app.m:26 (app.m:18)
+      20:      8  2 CALL pred app:app/3-0 (det) app.m:26 (app.m:18)
 mdb> finish -n
-      71:    347  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
+      67:      8  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
 mdb> dd
 atom("app", [univ([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5] : list:list(int)), univ([6, 7, 8] : list:list(int)), univ([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8] : list:list(int)), univ(int : private_builtin:type_info(int))])
 Valid? no
@@ -63,6 +62,6 @@
 Valid? no
 Incorrect node found:
 wrong_answer(atom("app", [univ([3, 4, 5] : list:list(int)), univ([6, 7, 8] : list:list(int)), univ([3, 4, 5, 6, 7, 8] : list:list(int)), univ(int : private_builtin:type_info(int))]))
-      71:    347  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
+      67:      8  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
 mdb> continue
 append([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5], [6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8]).
Index: tests/debugger/declarative/app.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/app.exp2,v
retrieving revision 1.1
diff -u -r1.1 app.exp2
--- tests/debugger/declarative/app.exp2	2000/01/06 05:15:03	1.1
+++ tests/debugger/declarative/app.exp2	2000/01/21 02:11:10
@@ -1,9 +1,8 @@
        1:      1  1 CALL pred app:main/2-0 (det) app.m:10
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break app
-Registering debuggable procedures... done.
-There is one debuggable module, with 5 procedures.
  0: + stop  interface pred app:app/3-0 (det)
 mdb> continue
        2:      2  2 CALL pred app:app/3-0 (det) app.m:26 (app.m:13)
@@ -37,9 +36,9 @@
       19:      2  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:13)
 mdb> continue
 append([1, 2, 3, 4, 5], [6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8]).
-      20:      8  2 CALL pred app:app/3-0 (det) app.m:26 (app.m:18)
+      24:    347  2 CALL pred app:app/3-0 (det) app.m:26 (app.m:18)
 mdb> finish -n
-      67:      8  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
+      71:    347  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
 mdb> dd
 atom("app", [univ([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5] : list:list(int)), univ([6, 7, 8] : list:list(int)), univ([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8] : list:list(int)), univ(int : private_builtin:type_info(int))])
 Valid? no
@@ -63,6 +62,6 @@
 Valid? no
 Incorrect node found:
 wrong_answer(atom("app", [univ([3, 4, 5] : list:list(int)), univ([6, 7, 8] : list:list(int)), univ([3, 4, 5, 6, 7, 8] : list:list(int)), univ(int : private_builtin:type_info(int))]))
-      67:      8  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
+      71:    347  2 EXIT pred app:app/3-0 (det) app.m:26 (app.m:18)
 mdb> continue
 append([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5], [6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8]).
Index: tests/debugger/declarative/app.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/app.inp,v
retrieving revision 1.2
diff -u -r1.2 app.inp
--- tests/debugger/declarative/app.inp	2000/01/03 02:22:51	1.2
+++ tests/debugger/declarative/app.inp	2000/01/21 02:11:11
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break app
 continue
 continue
Index: tests/debugger/declarative/big.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/big.exp,v
retrieving revision 1.1
diff -u -r1.1 big.exp
--- tests/debugger/declarative/big.exp	2000/01/06 05:15:03	1.1
+++ tests/debugger/declarative/big.exp	2000/01/21 02:11:12
@@ -1,14 +1,13 @@
        1:      1  1 CALL pred big:main/2-0 (det) big.m:9
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break p
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3210 procedures.
  0: + stop  interface pred big:p/1-0 (nondet)
 mdb> continue
        3:      2  2 CALL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      28:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      26:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-12 : int)])
 Valid? no
@@ -27,11 +26,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-12 : int)]))
-      28:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      26:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      29:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      27:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      35:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      33:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-14 : int)])
 Valid? no
@@ -41,11 +40,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-14 : int)]))
-      35:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      33:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      36:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      34:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      71:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      65:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-20 : int)])
 Valid? no
@@ -65,11 +64,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-20 : int)]))
-      71:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      65:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      72:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      66:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      78:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      72:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-22 : int)])
 Valid? no
@@ -79,11 +78,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-22 : int)]))
-      78:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      72:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      79:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      73:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-     115:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     109:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(2 : int)])
 Valid? no
@@ -93,6 +92,8 @@
 Valid? yes
 atom("f", [univ(-1 : int), univ(2 : int)])
 Valid? yes
+atom("g", [univ(6 : int), univ(-10 : int)])
+Valid? yes
 atom("g", [univ(7 : int), univ(-11 : int)])
 Valid? yes
 Call atom("c", [univ(2 : int)])
@@ -102,11 +103,11 @@
 Complete? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(2 : int)]))
-     115:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     109:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-     116:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     110:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-     143:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     137:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 Call atom("p", [])
 Solutions:
@@ -116,6 +117,25 @@
 	atom("p", [univ(-22 : int)])
 	atom("p", [univ(2 : int)])
 Complete? no
+atom("c", [univ(0 : int), univ(3 : int)])
+Valid? yes
+atom("d", [univ(3 : int), univ(9 : int)])
+Valid? yes
+Call atom("c", [univ(0 : int)])
+Solutions:
+	atom("c", [univ(0 : int), univ(2 : int)])
+	atom("c", [univ(0 : int), univ(3 : int)])
+Complete? yes
+Call atom("e", [univ(1 : int)])
+Solutions:
+	atom("e", [univ(1 : int), univ(10 : int)])
+	atom("e", [univ(1 : int), univ(11 : int)])
+Complete? yes
+Call atom("b", [univ(0 : int)])
+Solutions:
+	atom("b", [univ(0 : int), univ(0 : int)])
+	atom("b", [univ(0 : int), univ(1 : int)])
+Complete? yes
 atom("g", [univ(10 : int), univ(-2 : int)])
 Valid? yes
 atom("f", [univ(-2 : int), univ(4 : int)])
@@ -124,13 +144,8 @@
 Valid? yes
 atom("g", [univ(9 : int), univ(99 : int)])
 Valid? yes
-Call atom("b", [univ(0 : int)])
-Solutions:
-	atom("b", [univ(0 : int), univ(0 : int)])
-	atom("b", [univ(0 : int), univ(1 : int)])
-Complete? yes
 Incorrect node found:
 missing_answer(atom("p", []), [atom("p", [univ(-12 : int)]), atom("p", [univ(-14 : int)]), atom("p", [univ(-20 : int)]), atom("p", [univ(-22 : int)]), atom("p", [univ(2 : int)])])
-     143:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     137:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
 no.
Index: tests/debugger/declarative/big.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/big.exp2,v
retrieving revision 1.1
diff -u -r1.1 big.exp2
--- tests/debugger/declarative/big.exp2	2000/01/06 05:15:03	1.1
+++ tests/debugger/declarative/big.exp2	2000/01/21 02:11:13
@@ -1,14 +1,13 @@
        1:      1  1 CALL pred big:main/2-0 (det) big.m:9
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break p
-Registering debuggable procedures... done.
-There is one debuggable module, with 9 procedures.
  0: + stop  interface pred big:p/1-0 (nondet)
 mdb> continue
        3:      2  2 CALL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      26:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      28:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-12 : int)])
 Valid? no
@@ -27,11 +26,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-12 : int)]))
-      26:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      28:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      27:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      29:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      33:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      35:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-14 : int)])
 Valid? no
@@ -41,11 +40,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-14 : int)]))
-      33:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      35:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      34:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      36:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      65:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      71:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-20 : int)])
 Valid? no
@@ -65,11 +64,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-20 : int)]))
-      65:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      71:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      66:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      72:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-      72:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      78:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(-22 : int)])
 Valid? no
@@ -79,11 +78,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(-22 : int)]))
-      72:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      78:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-      73:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+      79:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-     109:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     115:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 atom("p", [univ(2 : int)])
 Valid? no
@@ -93,6 +92,8 @@
 Valid? yes
 atom("f", [univ(-1 : int), univ(2 : int)])
 Valid? yes
+atom("g", [univ(6 : int), univ(-10 : int)])
+Valid? yes
 atom("g", [univ(7 : int), univ(-11 : int)])
 Valid? yes
 Call atom("c", [univ(2 : int)])
@@ -102,11 +103,11 @@
 Complete? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(2 : int)]))
-     109:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     115:      2  2 EXIT pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
-     110:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     116:      2  2 REDO pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> finish
-     137:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     143:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> dd
 Call atom("p", [])
 Solutions:
@@ -116,6 +117,25 @@
 	atom("p", [univ(-22 : int)])
 	atom("p", [univ(2 : int)])
 Complete? no
+atom("c", [univ(0 : int), univ(3 : int)])
+Valid? yes
+atom("d", [univ(3 : int), univ(9 : int)])
+Valid? yes
+Call atom("c", [univ(0 : int)])
+Solutions:
+	atom("c", [univ(0 : int), univ(2 : int)])
+	atom("c", [univ(0 : int), univ(3 : int)])
+Complete? yes
+Call atom("e", [univ(1 : int)])
+Solutions:
+	atom("e", [univ(1 : int), univ(10 : int)])
+	atom("e", [univ(1 : int), univ(11 : int)])
+Complete? yes
+Call atom("b", [univ(0 : int)])
+Solutions:
+	atom("b", [univ(0 : int), univ(0 : int)])
+	atom("b", [univ(0 : int), univ(1 : int)])
+Complete? yes
 atom("g", [univ(10 : int), univ(-2 : int)])
 Valid? yes
 atom("f", [univ(-2 : int), univ(4 : int)])
@@ -124,13 +144,8 @@
 Valid? yes
 atom("g", [univ(9 : int), univ(99 : int)])
 Valid? yes
-Call atom("b", [univ(0 : int)])
-Solutions:
-	atom("b", [univ(0 : int), univ(0 : int)])
-	atom("b", [univ(0 : int), univ(1 : int)])
-Complete? yes
 Incorrect node found:
 missing_answer(atom("p", []), [atom("p", [univ(-12 : int)]), atom("p", [univ(-14 : int)]), atom("p", [univ(-20 : int)]), atom("p", [univ(-22 : int)]), atom("p", [univ(2 : int)])])
-     137:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
+     143:      2  2 FAIL pred big:p/1-0 (nondet) big.m:23 (big.m:11)
 mdb> continue
 no.
Index: tests/debugger/declarative/big.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/big.inp,v
retrieving revision 1.1
diff -u -r1.1 big.inp
--- tests/debugger/declarative/big.inp	2000/01/06 05:15:04	1.1
+++ tests/debugger/declarative/big.inp	2000/01/21 02:11:13
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break p
 continue
 finish
@@ -41,10 +42,15 @@
 yes
 yes
 yes
+yes
 continue
 finish
 dd
 no
+yes
+yes
+yes
+yes
 yes
 yes
 yes
Index: tests/debugger/declarative/gcf.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/gcf.exp,v
retrieving revision 1.3
diff -u -r1.3 gcf.exp
--- tests/debugger/declarative/gcf.exp	2000/01/06 05:15:04	1.3
+++ tests/debugger/declarative/gcf.exp	2000/01/21 02:11:13
@@ -1,9 +1,8 @@
        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
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3206 procedures.
  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)
Index: tests/debugger/declarative/gcf.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/gcf.inp,v
retrieving revision 1.2
diff -u -r1.2 gcf.inp
--- tests/debugger/declarative/gcf.inp	2000/01/03 02:22:52	1.2
+++ tests/debugger/declarative/gcf.inp	2000/01/21 02:11:14
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break a
 continue
 finish
Index: tests/debugger/declarative/if_then_else.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/if_then_else.exp,v
retrieving revision 1.3
diff -u -r1.3 if_then_else.exp
--- tests/debugger/declarative/if_then_else.exp	2000/01/06 05:15:04	1.3
+++ tests/debugger/declarative/if_then_else.exp	2000/01/21 02:11:14
@@ -1,9 +1,8 @@
        1:      1  1 CALL pred if_then_else:main/2-0 (det) if_then_else.m:7
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break ite
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3206 procedures.
  0: + stop  interface pred if_then_else:ite/2-0 (det)
 mdb> continue
        2:      2  2 CALL pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:8)
@@ -21,9 +20,9 @@
        9:      2  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:8)
 mdb> continue
 ite(0, 1).
-      16:    261  2 CALL pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
+      10:      5  2 CALL pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
 mdb> finish
-      23:    261  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
+      17:      5  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
 mdb> dd
 atom("ite", [univ(1 : int), univ(0 : int)])
 Valid? no
@@ -32,6 +31,6 @@
 Complete? yes
 Incorrect node found:
 wrong_answer(atom("ite", [univ(1 : int), univ(0 : int)]))
-      23:    261  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
+      17:      5  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
 mdb> continue
 ite(1, 0).
Index: tests/debugger/declarative/if_then_else.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/if_then_else.exp2,v
retrieving revision 1.1
diff -u -r1.1 if_then_else.exp2
--- tests/debugger/declarative/if_then_else.exp2	2000/01/06 05:15:04	1.1
+++ tests/debugger/declarative/if_then_else.exp2	2000/01/21 02:11:14
@@ -1,9 +1,8 @@
        1:      1  1 CALL pred if_then_else:main/2-0 (det) if_then_else.m:7
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break ite
-Registering debuggable procedures... done.
-There is one debuggable module, with 5 procedures.
  0: + stop  interface pred if_then_else:ite/2-0 (det)
 mdb> continue
        2:      2  2 CALL pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:8)
@@ -21,9 +20,9 @@
        9:      2  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:8)
 mdb> continue
 ite(0, 1).
-      10:      5  2 CALL pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
+      16:    261  2 CALL pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
 mdb> finish
-      17:      5  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
+      23:    261  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
 mdb> dd
 atom("ite", [univ(1 : int), univ(0 : int)])
 Valid? no
@@ -32,6 +31,6 @@
 Complete? yes
 Incorrect node found:
 wrong_answer(atom("ite", [univ(1 : int), univ(0 : int)]))
-      17:      5  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
+      23:    261  2 EXIT pred if_then_else:ite/2-0 (det) if_then_else.m:22 (if_then_else.m:12)
 mdb> continue
 ite(1, 0).
Index: tests/debugger/declarative/if_then_else.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/if_then_else.inp,v
retrieving revision 1.2
diff -u -r1.2 if_then_else.inp
--- tests/debugger/declarative/if_then_else.inp	2000/01/03 02:22:52	1.2
+++ tests/debugger/declarative/if_then_else.inp	2000/01/21 02:11:14
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break ite
 continue
 finish
Index: tests/debugger/declarative/lpe_example.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/lpe_example.exp,v
retrieving revision 1.1
diff -u -r1.1 lpe_example.exp
--- tests/debugger/declarative/lpe_example.exp	2000/01/06 05:15:05	1.1
+++ tests/debugger/declarative/lpe_example.exp	2000/01/21 02:11:15
@@ -1,14 +1,13 @@
        1:      1  1 CALL pred lpe_example:main/2-0 (det) lpe_example.m:8
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break p
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3205 procedures.
  0: + stop  interface pred lpe_example:p/2-0 (nondet)
 mdb> continue
-       3:      3  3 CALL pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+       2:      2  2 CALL pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> finish
-      11:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      10:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> dd
 atom("p", [univ(1 : int), univ(13 : int)])
 Valid? no
@@ -18,11 +17,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(1 : int), univ(13 : int)]))
-      11:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      10:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> continue
-      12:      3  3 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      11:      2  2 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> finish
-      16:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      15:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> dd
 atom("p", [univ(1 : int), univ(23 : int)])
 Valid? no
@@ -30,21 +29,21 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(1 : int), univ(23 : int)]))
-      16:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      15:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> continue
-      17:      3  3 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      16:      2  2 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> finish
-      21:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      20:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> dd
 atom("p", [univ(1 : int), univ(3 : int)])
 Valid? no
 Incorrect node found:
 wrong_answer(atom("p", [univ(1 : int), univ(3 : int)]))
-      21:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      20:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> continue
-      22:      3  3 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      21:      2  2 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> finish
-      23:      3  3 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      22:      2  2 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> dd
 Call atom("p", [univ(1 : int)])
 Solutions:
@@ -52,8 +51,13 @@
 	atom("p", [univ(1 : int), univ(23 : int)])
 	atom("p", [univ(1 : int), univ(3 : int)])
 Complete? no
+Call atom("r", [univ(3 : int)])
+Solutions:
+	atom("r", [univ(3 : int), univ(13 : int)])
+	atom("r", [univ(3 : int), univ(23 : int)])
+Complete? yes
 Incorrect node found:
 missing_answer(atom("p", [univ(1 : int)]), [atom("p", [univ(1 : int), univ(13 : int)]), atom("p", [univ(1 : int), univ(23 : int)]), atom("p", [univ(1 : int), univ(3 : int)])])
-      23:      3  3 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:592)
+      22:      2  2 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17
 mdb> continue
 [3, 13, 23]
Index: tests/debugger/declarative/lpe_example.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/lpe_example.exp2,v
retrieving revision 1.1
diff -u -r1.1 lpe_example.exp2
--- tests/debugger/declarative/lpe_example.exp2	2000/01/06 05:15:05	1.1
+++ tests/debugger/declarative/lpe_example.exp2	2000/01/21 02:11:21
@@ -1,14 +1,13 @@
        1:      1  1 CALL pred lpe_example:main/2-0 (det) lpe_example.m:8
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break p
-Registering debuggable procedures... done.
-There is one debuggable module, with 4 procedures.
  0: + stop  interface pred lpe_example:p/2-0 (nondet)
 mdb> continue
-       2:      2  2 CALL pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+       3:      3  3 CALL pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> finish
-      10:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      11:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> dd
 atom("p", [univ(1 : int), univ(13 : int)])
 Valid? no
@@ -18,11 +17,11 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(1 : int), univ(13 : int)]))
-      10:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      11:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> continue
-      11:      2  2 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      12:      3  3 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> finish
-      15:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      16:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> dd
 atom("p", [univ(1 : int), univ(23 : int)])
 Valid? no
@@ -30,21 +29,21 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("p", [univ(1 : int), univ(23 : int)]))
-      15:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      16:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> continue
-      16:      2  2 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      17:      3  3 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> finish
-      20:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      21:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> dd
 atom("p", [univ(1 : int), univ(3 : int)])
 Valid? no
 Incorrect node found:
 wrong_answer(atom("p", [univ(1 : int), univ(3 : int)]))
-      20:      2  2 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      21:      3  3 EXIT pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> continue
-      21:      2  2 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      22:      3  3 REDO pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> finish
-      22:      2  2 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      23:      3  3 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> dd
 Call atom("p", [univ(1 : int)])
 Solutions:
@@ -52,8 +51,13 @@
 	atom("p", [univ(1 : int), univ(23 : int)])
 	atom("p", [univ(1 : int), univ(3 : int)])
 Complete? no
+Call atom("r", [univ(3 : int)])
+Solutions:
+	atom("r", [univ(3 : int), univ(13 : int)])
+	atom("r", [univ(3 : int), univ(23 : int)])
+Complete? yes
 Incorrect node found:
 missing_answer(atom("p", [univ(1 : int)]), [atom("p", [univ(1 : int), univ(13 : int)]), atom("p", [univ(1 : int), univ(23 : int)]), atom("p", [univ(1 : int), univ(3 : int)])])
-      22:      2  2 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17
+      23:      3  3 FAIL pred lpe_example:p/2-0 (nondet) lpe_example.m:17 (std_util.m:590)
 mdb> continue
 [3, 13, 23]
Index: tests/debugger/declarative/lpe_example.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/lpe_example.inp,v
retrieving revision 1.1
diff -u -r1.1 lpe_example.inp
--- tests/debugger/declarative/lpe_example.inp	2000/01/06 05:15:05	1.1
+++ tests/debugger/declarative/lpe_example.inp	2000/01/21 02:11:21
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break p
 continue
 finish
@@ -19,4 +20,5 @@
 finish
 dd
 no
+yes
 continue
Index: tests/debugger/declarative/neg_conj.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/neg_conj.exp,v
retrieving revision 1.1
diff -u -r1.1 neg_conj.exp
--- tests/debugger/declarative/neg_conj.exp	2000/01/06 05:15:06	1.1
+++ tests/debugger/declarative/neg_conj.exp	2000/01/21 02:11:21
@@ -1,9 +1,8 @@
        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
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3205 procedures.
  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)
Index: tests/debugger/declarative/neg_conj.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/neg_conj.inp,v
retrieving revision 1.1
diff -u -r1.1 neg_conj.inp
--- tests/debugger/declarative/neg_conj.inp	2000/01/06 05:15:06	1.1
+++ tests/debugger/declarative/neg_conj.inp	2000/01/21 02:11:21
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break p
 continue
 finish
Index: tests/debugger/declarative/negation.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/negation.exp,v
retrieving revision 1.1
diff -u -r1.1 negation.exp
--- tests/debugger/declarative/negation.exp	2000/01/06 05:15:07	1.1
+++ tests/debugger/declarative/negation.exp	2000/01/21 02:11:21
@@ -1,9 +1,8 @@
        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
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3205 procedures.
  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)
Index: tests/debugger/declarative/negation.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/negation.inp,v
retrieving revision 1.1
diff -u -r1.1 negation.inp
--- tests/debugger/declarative/negation.inp	2000/01/06 05:15:07	1.1
+++ tests/debugger/declarative/negation.inp	2000/01/21 02:11:21
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break p
 continue
 finish
Index: tests/debugger/declarative/oracle_db.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/oracle_db.exp,v
retrieving revision 1.3
diff -u -r1.3 oracle_db.exp
--- tests/debugger/declarative/oracle_db.exp	2000/01/06 05:15:07	1.3
+++ tests/debugger/declarative/oracle_db.exp	2000/01/21 02:11:21
@@ -1,9 +1,8 @@
        1:      1  1 CALL pred oracle_db:main/2-0 (det) oracle_db.m:12
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break a
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3204 procedures.
  0: + stop  interface pred oracle_db:a/3-0 (semidet)
 mdb> continue
        3:      2  2 CALL pred oracle_db:a/3-0 (semidet) oracle_db.m:19 (oracle_db.m:9)
Index: tests/debugger/declarative/oracle_db.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/oracle_db.inp,v
retrieving revision 1.2
diff -u -r1.2 oracle_db.inp
--- tests/debugger/declarative/oracle_db.inp	2000/01/03 02:22:53	1.2
+++ tests/debugger/declarative/oracle_db.inp	2000/01/21 02:11:21
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break a
 continue
 finish
Index: tests/debugger/declarative/propositional.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/propositional.exp,v
retrieving revision 1.3
diff -u -r1.3 propositional.exp
--- tests/debugger/declarative/propositional.exp	2000/01/06 05:15:07	1.3
+++ tests/debugger/declarative/propositional.exp	2000/01/21 02:11:21
@@ -1,16 +1,15 @@
        1:      1  1 CALL pred propositional:main/2-0 (det) propositional.m:13
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break a
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3211 procedures.
  0: + stop  interface pred propositional:a/0-0 (semidet)
 mdb> break b
  1: + stop  interface pred propositional:b/0-0 (semidet)
 mdb> continue
        3:      2  2 CALL pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
 mdb> finish
-      15:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
+      11:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
 mdb> dd
 atom("a", [])
 Valid? no
@@ -18,11 +17,11 @@
 Valid? no
 Incorrect node found:
 wrong_answer(atom("c", []))
-      15:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
+      11:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
 mdb> continue
-      16:    203  2 CALL pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
+      12:      5  2 CALL pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
 mdb> finish
-      30:    203  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
+      22:      5  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
 mdb> dd
 atom("b", [])
 Valid? no
@@ -32,6 +31,6 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("f", []))
-      30:    203  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
+      22:      5  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
 mdb> continue
 yes
Index: tests/debugger/declarative/propositional.exp2
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/propositional.exp2,v
retrieving revision 1.1
diff -u -r1.1 propositional.exp2
--- tests/debugger/declarative/propositional.exp2	2000/01/06 05:15:07	1.1
+++ tests/debugger/declarative/propositional.exp2	2000/01/21 02:11:21
@@ -1,16 +1,15 @@
        1:      1  1 CALL pred propositional:main/2-0 (det) propositional.m:13
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break a
-Registering debuggable procedures... done.
-There is one debuggable module, with 10 procedures.
  0: + stop  interface pred propositional:a/0-0 (semidet)
 mdb> break b
  1: + stop  interface pred propositional:b/0-0 (semidet)
 mdb> continue
        3:      2  2 CALL pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
 mdb> finish
-      11:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
+      15:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
 mdb> dd
 atom("a", [])
 Valid? no
@@ -18,11 +17,11 @@
 Valid? no
 Incorrect node found:
 wrong_answer(atom("c", []))
-      11:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
+      15:      2  2 EXIT pred propositional:a/0-0 (semidet) propositional.m:27 (propositional.m:10)
 mdb> continue
-      12:      5  2 CALL pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
+      16:    203  2 CALL pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
 mdb> finish
-      22:      5  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
+      30:    203  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
 mdb> dd
 atom("b", [])
 Valid? no
@@ -32,6 +31,6 @@
 Valid? yes
 Incorrect node found:
 wrong_answer(atom("f", []))
-      22:      5  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
+      30:    203  2 EXIT pred propositional:b/0-0 (semidet) propositional.m:29 (propositional.m:10)
 mdb> continue
 yes
Index: tests/debugger/declarative/propositional.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/propositional.inp,v
retrieving revision 1.2
diff -u -r1.2 propositional.inp
--- tests/debugger/declarative/propositional.inp	2000/01/03 02:22:53	1.2
+++ tests/debugger/declarative/propositional.inp	2000/01/21 02:11:21
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break a
 break b
 continue
Index: tests/debugger/declarative/queens.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/queens.exp,v
retrieving revision 1.3
diff -u -r1.3 queens.exp
--- tests/debugger/declarative/queens.exp	2000/01/06 05:15:08	1.3
+++ tests/debugger/declarative/queens.exp	2000/01/21 02:11:21
@@ -1,11 +1,10 @@
        1:      1  1 CALL pred queens:main/2-0 (cc_multi) queens.m:17
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> dd
 mdb: declarative debugging is only available from EXIT or FAIL events.
 mdb> break queen
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3210 procedures.
  0: + stop  interface pred queens:queen/2-0 (nondet)
 mdb> continue
        5:      3  2 CALL pred queens:queen/2-0 (nondet) queens.m:41 (queens.m:15)
@@ -18,20 +17,42 @@
 Call atom("qperm", [univ([1, 2, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
 Solutions:
 Complete? no
-atom("qdelete", [univ(4 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([1, 2, 3, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+atom("qdelete", [univ(1 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([2, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
 Valid? yes
-atom("qdelete", [univ(5 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([1, 2, 3, 4] : list:list(int)), univ(int : private_builtin:type_info(int))])
+atom("qdelete", [univ(2 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([1, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
 Valid? yes
-Call atom("qdelete", [univ([1, 2, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Call atom("qperm", [univ([1, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
 Solutions:
-	atom("qdelete", [univ(1 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([2, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
-	atom("qdelete", [univ(2 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([1, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
-	atom("qdelete", [univ(3 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([1, 2, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
-	atom("qdelete", [univ(4 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([1, 2, 3, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
-	atom("qdelete", [univ(5 : int), univ([1, 2, 3, 4, 5] : list:list(int)), univ([1, 2, 3, 4] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Complete? no
+atom("qdelete", [univ(1 : int), univ([1, 3, 4, 5] : list:list(int)), univ([3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Valid? yes
+atom("qdelete", [univ(3 : int), univ([1, 3, 4, 5] : list:list(int)), univ([1, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Valid? yes
+Call atom("qperm", [univ([1, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Solutions:
+Complete? no
+atom("qdelete", [univ(1 : int), univ([1, 4, 5] : list:list(int)), univ([4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Valid? yes
+atom("qdelete", [univ(4 : int), univ([1, 4, 5] : list:list(int)), univ([1, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Valid? yes
+Call atom("qperm", [univ([1, 5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Solutions:
+Complete? no
+atom("qdelete", [univ(1 : int), univ([1, 5] : list:list(int)), univ([5] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Valid? yes
+atom("qdelete", [univ(5 : int), univ([1, 5] : list:list(int)), univ([1] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Valid? yes
+Call atom("qperm", [univ([1] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Solutions:
+Complete? no
+atom("qdelete", [univ(1 : int), univ([1] : list:list(int)), univ([] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Valid? yes
+Call atom("qdelete", [univ([1] : list:list(int)), univ(int : private_builtin:type_info(int))])
+Solutions:
+	atom("qdelete", [univ(1 : int), univ([1] : list:list(int)), univ([] : list:list(int)), univ(int : private_builtin:type_info(int))])
 Complete? yes
 Incorrect node found:
-missing_answer(atom("qperm", [univ([1, 2, 3, 4, 5] : list:list(int)), univ(int : private_builtin:type_info(int))]), [])
+missing_answer(atom("qperm", [univ([1] : list:list(int)), univ(int : private_builtin:type_info(int))]), [])
      161:      3  2 FAIL pred queens:queen/2-0 (nondet) queens.m:41 (queens.m:15)
 mdb> continue
 No solution
Index: tests/debugger/declarative/queens.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/queens.inp,v
retrieving revision 1.2
diff -u -r1.2 queens.inp
--- tests/debugger/declarative/queens.inp	2000/01/03 02:22:53	1.2
+++ tests/debugger/declarative/queens.inp	2000/01/21 02:11:21
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 dd
 break queen
 continue
@@ -7,6 +8,17 @@
 no
 no
 yes
+yes
+no
+yes
+yes
+no
+yes
+yes
+no
+yes
+yes
+no
 yes
 yes
 continue
Index: tests/debugger/declarative/small.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/small.exp,v
retrieving revision 1.1
diff -u -r1.1 small.exp
--- tests/debugger/declarative/small.exp	2000/01/06 05:15:08	1.1
+++ tests/debugger/declarative/small.exp	2000/01/21 02:11:21
@@ -1,9 +1,8 @@
        1:      1  1 CALL pred small:main/2-0 (det) small.m:7
 mdb> echo on
 Command echo enabled.
+mdb> register --quiet
 mdb> break p
-Registering debuggable procedures... done.
-There are 67 debuggable modules, with a total of 3203 procedures.
  0: + stop  interface pred small:p/1-0 (det)
 mdb> continue
        2:      2  2 CALL pred small:p/1-0 (det) small.m:14 (small.m:8)
Index: tests/debugger/declarative/small.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/small.inp,v
retrieving revision 1.1
diff -u -r1.1 small.inp
--- tests/debugger/declarative/small.inp	2000/01/06 05:15:08	1.1
+++ tests/debugger/declarative/small.inp	2000/01/21 02:11:21
@@ -1,4 +1,5 @@
 echo on
+register --quiet
 break p
 continue
 finish
-- 
Mark Brown, PhD student            )O+  |  "Another of Fortran's breakthroughs
(m.brown at cs.mu.oz.au)                   |  was the GOTO statement, which was...
Dept. of Computer Science and Software  |  uniquely simple and understandable"
Engineering, University of Melbourne    |              -- IEEE, 1994
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list