[m-rev.] diff: bootstrapping in term size profiling grades

Zoltan Somogyi zs at csse.unimelb.edu.au
Mon Jan 12 12:46:02 AEDT 2009


Make the compiler bootstrap again in term size profiling grades.

compiler/llds_out.m:
	Don't output a stray & that introduces a C syntax error. This code
	was invoked only in term size profiling grades.

library/thread.semaphore.m:
	Replace the use of a C macro that isn't defined in term size profiling
	grades with a macro that *is* defined.

runtime/mercury_term_size.c:
	Handle the dummy type_ctor_rep added recently.

trace/mercury_trace_vars.c:
	Update the code that prints the sizes of the terms bound to variables
	(which is enabled only in term size profiling grades) to handle the
	changes made when I added user event attributes.

tests/debugger/tailrec1.exp2:
	Add a new expected output for this case that also prints the variables
	added by the term size profiling transformation.

tests/debugger/term_size_words.{m,exp}:
	Update this test case for the old breakup of std_util.m and the changes
	in the printing of floats.

Zoltan.

cvs diff: Diffing .
cvs diff: Diffing analysis
cvs diff: Diffing bindist
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/doc
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing boehm_gc/libatomic_ops-1.2
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/doc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/ibmc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/icc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/msftc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/sunc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/tests
cvs diff: Diffing boehm_gc/tests
cvs diff: Diffing boehm_gc/windows-untested
cvs diff: Diffing boehm_gc/windows-untested/vc60
cvs diff: Diffing boehm_gc/windows-untested/vc70
cvs diff: Diffing boehm_gc/windows-untested/vc71
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
Index: compiler/llds_out.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/llds_out.m,v
retrieving revision 1.328
diff -u -b -r1.328 llds_out.m
--- compiler/llds_out.m	26 Nov 2008 02:53:45 -0000	1.328
+++ compiler/llds_out.m	21 Dec 2008 04:27:09 -0000
@@ -5339,7 +5339,6 @@
         MaybeOffset = yes(Offset),
         io.write_string("((", !IO),
         output_llds_type_cast(data_ptr, !IO),
-        io.write_string("&", !IO),
         output_data_addr(DataAddr, !IO),
         io.write_string(") + ", !IO),
         io.write_int(Offset, !IO),
cvs diff: Diffing compiler/notes
cvs diff: Diffing debian
cvs diff: Diffing debian/patches
cvs diff: Diffing deep_profiler
cvs diff: Diffing deep_profiler/notes
cvs diff: Diffing doc
cvs diff: Diffing extras
cvs diff: Diffing extras/base64
cvs diff: Diffing extras/cgi
cvs diff: Diffing extras/complex_numbers
cvs diff: Diffing extras/complex_numbers/samples
cvs diff: Diffing extras/complex_numbers/tests
cvs diff: Diffing extras/concurrency
cvs diff: Diffing extras/curs
cvs diff: Diffing extras/curs/samples
cvs diff: Diffing extras/curses
cvs diff: Diffing extras/curses/sample
cvs diff: Diffing extras/dynamic_linking
cvs diff: Diffing extras/error
cvs diff: Diffing extras/fixed
cvs diff: Diffing extras/gator
cvs diff: Diffing extras/gator/generations
cvs diff: Diffing extras/gator/generations/1
cvs diff: Diffing extras/graphics
cvs diff: Diffing extras/graphics/easyx
cvs diff: Diffing extras/graphics/easyx/samples
cvs diff: Diffing extras/graphics/mercury_allegro
cvs diff: Diffing extras/graphics/mercury_allegro/examples
cvs diff: Diffing extras/graphics/mercury_allegro/samples
cvs diff: Diffing extras/graphics/mercury_allegro/samples/demo
cvs diff: Diffing extras/graphics/mercury_allegro/samples/mandel
cvs diff: Diffing extras/graphics/mercury_allegro/samples/pendulum2
cvs diff: Diffing extras/graphics/mercury_allegro/samples/speed
cvs diff: Diffing extras/graphics/mercury_glut
cvs diff: Diffing extras/graphics/mercury_opengl
cvs diff: Diffing extras/graphics/mercury_tcltk
cvs diff: Diffing extras/graphics/samples
cvs diff: Diffing extras/graphics/samples/calc
cvs diff: Diffing extras/graphics/samples/gears
cvs diff: Diffing extras/graphics/samples/maze
cvs diff: Diffing extras/graphics/samples/pent
cvs diff: Diffing extras/lazy_evaluation
cvs diff: Diffing extras/lex
cvs diff: Diffing extras/lex/samples
cvs diff: Diffing extras/lex/tests
cvs diff: Diffing extras/log4m
cvs diff: Diffing extras/logged_output
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/moose/tests
cvs diff: Diffing extras/mopenssl
cvs diff: Diffing extras/morphine
cvs diff: Diffing extras/morphine/non-regression-tests
cvs diff: Diffing extras/morphine/scripts
cvs diff: Diffing extras/morphine/source
cvs diff: Diffing extras/net
cvs diff: Diffing extras/odbc
cvs diff: Diffing extras/posix
cvs diff: Diffing extras/posix/samples
cvs diff: Diffing extras/quickcheck
cvs diff: Diffing extras/quickcheck/tutes
cvs diff: Diffing extras/references
cvs diff: Diffing extras/references/samples
cvs diff: Diffing extras/references/tests
cvs diff: Diffing extras/solver_types
cvs diff: Diffing extras/solver_types/library
cvs diff: Diffing extras/trailed_update
cvs diff: Diffing extras/trailed_update/samples
cvs diff: Diffing extras/trailed_update/tests
cvs diff: Diffing extras/windows_installer_generator
cvs diff: Diffing extras/windows_installer_generator/sample
cvs diff: Diffing extras/windows_installer_generator/sample/images
cvs diff: Diffing extras/xml
cvs diff: Diffing extras/xml/samples
cvs diff: Diffing extras/xml_stylesheets
cvs diff: Diffing java
cvs diff: Diffing java/runtime
cvs diff: Diffing library
Index: library/thread.semaphore.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/library/thread.semaphore.m,v
retrieving revision 1.14
diff -u -b -r1.14 thread.semaphore.m
--- library/thread.semaphore.m	24 Oct 2007 00:50:00 -0000	1.14
+++ library/thread.semaphore.m	22 Dec 2008 00:41:37 -0000
@@ -114,7 +114,7 @@
     MR_Word         sem_mem;
     ML_Semaphore    *sem;
 
-    MR_incr_hp(sem_mem,
+    MR_alloc_heap(sem_mem,
         MR_round_up(sizeof(ML_Semaphore), sizeof(MR_Word)));
     sem = (ML_Semaphore *) sem_mem;
     sem->count = Count;
cvs diff: Diffing mdbcomp
cvs diff: Diffing profiler
cvs diff: Diffing robdd
cvs diff: Diffing runtime
Index: runtime/mercury_term_size.c
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/runtime/mercury_term_size.c,v
retrieving revision 1.7
diff -u -b -r1.7 mercury_term_size.c
--- runtime/mercury_term_size.c	20 Aug 2007 03:36:15 -0000	1.7
+++ runtime/mercury_term_size.c	10 Jan 2009 16:19:46 -0000
@@ -331,6 +331,15 @@
 #endif
             return 1;
 
+        case MR_TYPECTOR_REP_DUMMY:
+#ifdef MR_DEBUG_TERM_SIZES
+            if (MR_heapdebug && MR_lld_print_enabled) {
+                printf("MR_term_size: dummy %p\n",
+                    (void *) term);
+            }
+#endif
+            return 0;
+
         case MR_TYPECTOR_REP_VOID:
             MR_fatal_error("MR_term_size: VOID");
 
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/standalone_c
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/solver_types
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
cvs diff: Diffing slice
cvs diff: Diffing ssdb
cvs diff: Diffing tests
cvs diff: Diffing tests/analysis
cvs diff: Diffing tests/analysis/ctgc
cvs diff: Diffing tests/analysis/excp
cvs diff: Diffing tests/analysis/ext
cvs diff: Diffing tests/analysis/sharing
cvs diff: Diffing tests/analysis/table
cvs diff: Diffing tests/analysis/trail
cvs diff: Diffing tests/analysis/unused_args
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
Index: tests/debugger/tailrec1.exp2
===================================================================
RCS file: tests/debugger/tailrec1.exp2
diff -N tests/debugger/tailrec1.exp2
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tests/debugger/tailrec1.exp2	11 Jan 2009 00:29:10 -0000
@@ -0,0 +1,129 @@
+      E1:     C1 CALL pred tailrec1.main/2-0 (det) tailrec1.m:17
+mdb> echo on
+Command echo enabled.
+mdb> register --quiet
+mdb> table_io allow
+mdb> table_io start
+I/O tabling started.
+mdb> context none
+Contexts will not be printed.
+mdb> break tailrec1_read_line
+ 0: + stop  interface pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> continue
+      E2:     C2 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+      E3:     C2 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> print *
+       Stream (arg 1)         	stream(0, input, text, file("tailrec1.data"))
+       Line (arg 2)           	"This"
+mdb> stack
+   0       pred tailrec1.tailrec1_read_line/4-0 (det)
+   1       pred tailrec1.tailrec1_read_strings/5-0 (det)
+   2       pred tailrec1.main/2-0 (det)
+mdb> stack -d
+   0      E2      C2    3 pred tailrec1.tailrec1_read_line/4-0 (det) (empty)
+   1      E4      C3    2 pred tailrec1.tailrec1_read_strings/5-0 (det) c1;
+   2      E1      C1    1 pred tailrec1.main/2-0 (det) c3;s2-2;c3;
+mdb> continue
+      E5:     C4 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+      E6:     C4 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> stack
+   0       pred tailrec1.tailrec1_read_line/4-0 (det)
+   1    2x pred tailrec1.tailrec1_read_strings/5-0 (det)
+   3       pred tailrec1.main/2-0 (det)
+mdb> stack -d
+   0      E5      C4    4 pred tailrec1.tailrec1_read_line/4-0 (det) (empty)
+   1      E7      C5    3 pred tailrec1.tailrec1_read_strings/5-0 (det) c1;
+   3      E1      C1    1 pred tailrec1.main/2-0 (det) c3;s2-2;c3;
+mdb> continue
+      E8:     C6 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+      E9:     C6 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> continue
+     E10:     C7 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+     E11:     C7 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> step
+     E12:     C8 COND pred tailrec1.tailrec1_read_strings/5-0 (det) c2;?;
+mdb> step
+     E13:     C8 ELSE pred tailrec1.tailrec1_read_strings/5-0 (det) c2;e;
+mdb> step
+     E14:     C9 TAIL pred tailrec1.tailrec1_read_strings/5-0 (det) c2;e;c8;
+mdb> print *
+       Stream (arg 1)         	stream(0, input, text, file("tailrec1.data"))
+       STATE_VARIABLE_Words_0 (arg 2)	["a", "is", "This"]
+       FinalSizeVar25         	8
+       KnownSize              	2
+       STATE_VARIABLE_Words_1 	["list", "a", "is", "This"]
+       SizeVar23              	6
+       Word                   	"list"
+mdb> continue
+     E15:    C10 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+     E16:    C10 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> continue
+     E17:    C11 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+     E18:    C11 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> print *
+       Stream (arg 1)         	stream(0, input, text, file("tailrec1.data"))
+       Line (arg 2)           	"words"
+mdb> retry -f
+     E17:    C11 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> stack
+   0       pred tailrec1.tailrec1_read_line/4-0 (det)
+   1    6x pred tailrec1.tailrec1_read_strings/5-0 (det)
+   7       pred tailrec1.main/2-0 (det)
+mdb> stack -d
+   0     E17     C11    8 pred tailrec1.tailrec1_read_line/4-0 (det) (empty)
+   1     E19     C12    7 pred tailrec1.tailrec1_read_strings/5-0 (det) c1;
+   7      E1      C1    1 pred tailrec1.main/2-0 (det) c3;s2-2;c3;
+mdb> finish
+     E18:    C11 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> print *
+       Stream (arg 1)         	stream(0, input, text, file("tailrec1.data"))
+       Line (arg 2)           	"words"
+mdb> level 1
+Ancestor level set to 1:
+   1  pred tailrec1.tailrec1_read_strings/5-0 (det)
+mdb> print *
+       Stream (arg 1)         	stream(0, input, text, file("tailrec1.data"))
+       STATE_VARIABLE_Words_0 (arg 2)	["of", "list", "a", "is", "This"]
+mdb> level 2
+The stack frame of that call has been reused.
+mdb> retry -f 3
+cannot retry a call whose stack frame has been reused
+mdb> retry -f 1
+     E19:    C12 CALL pred tailrec1.tailrec1_read_strings/5-0 (det)
+mdb> stack
+   0    6x pred tailrec1.tailrec1_read_strings/5-0 (det)
+   6       pred tailrec1.main/2-0 (det)
+mdb> stack -d
+   0     E19     C12    7 pred tailrec1.tailrec1_read_strings/5-0 (det) (empty)
+   6      E1      C1    1 pred tailrec1.main/2-0 (det) c3;s2-2;c3;
+mdb> continue
+     E17:    C11 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+     E18:    C11 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> continue
+     E20:    C13 CALL pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> finish
+     E21:    C13 EXIT pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> step
+     E22:    C14 COND pred tailrec1.tailrec1_read_strings/5-0 (det) c2;?;
+mdb> next
+     E23:    C14 THEN pred tailrec1.tailrec1_read_strings/5-0 (det) c2;t;
+mdb> next 3
+Due to the reuse of stack frames by tail recursive procedures,
+this command is a no-op from this port.
+mdb> delete *
+ 0: E stop  interface pred tailrec1.tailrec1_read_line/4-0 (det)
+mdb> continue
+words
+of
+list
+a
+is
+This
+6
Index: tests/debugger/term_size_words.exp
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/debugger/term_size_words.exp,v
retrieving revision 1.2
diff -u -b -r1.2 term_size_words.exp
--- tests/debugger/term_size_words.exp	26 Jan 2005 13:52:45 -0000	1.2
+++ tests/debugger/term_size_words.exp	11 Jan 2009 00:43:23 -0000
@@ -1,4 +1,4 @@
-      E1:     C1 CALL pred term_size_words.main/2-0 (det) term_size_words.m:18
+      E1:     C1 CALL pred term_size_words.main/2-0 (det) term_size_words.m:23
 mdb> echo on
 Command echo enabled.
 mdb> register --quiet
@@ -27,10 +27,10 @@
 mdb> print *
        IntList (arg 1)        	[1, 2, 3]
        DoubleIntList (arg 2)  	[1, 2, 3, 1, 2, 3]
-       FloatList (arg 3)      	[1.00000000000000, 2.00000000000000, 3.00000000000000]
-       PairList (arg 4)       	[-(1, 1.00000000000000), -(2, 2.00000000000000), -(3, 3.00000000000000)]
+       FloatList (arg 3)      	[1.0, 2.0, 3.0]
+       PairList (arg 4)       	[1 - 1.0, 2 - 2.0, 3 - 3.0]
        UnivList (arg 5)       	[univ_cons(1), univ_cons(2), univ_cons(3)]
-       Univ (arg 6)           	univ_cons(node(node(leaf, 2, -/2, leaf), 1, -(1.00000000000000, "one"), leaf))
+       Univ (arg 6)           	univ_cons(node(node(leaf, 2, -/2, leaf), 1, -(1.0, "one"), leaf))
 mdb> term_size *
 IntList                   6
 DoubleIntList            12
@@ -43,7 +43,7 @@
 ["a", "bb", "ccc"]
 node(leaf, "one", 1, node(leaf, "two", 2, leaf))
 [1, 2, 3, 1, 2, 3]
-[1.00000000000000, 2.00000000000000, 3.00000000000000]
-[1 - 1.00000000000000, 2 - 2.00000000000000, 3 - 3.00000000000000]
+[1.0, 2.0, 3.0]
+[1 - 1.0, 2 - 2.0, 3 - 3.0]
 [univ_cons(1), univ_cons(2), univ_cons(3)]
-univ_cons(node(node(leaf, 2, 2.00000000000000 - "two", leaf), 1, 1.00000000000000 - "one", leaf))
+univ_cons(node(node(leaf, 2, 2.0 - "two", leaf), 1, 1.0 - "one", leaf))
Index: tests/debugger/term_size_words.m
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/debugger/term_size_words.m,v
retrieving revision 1.1
diff -u -b -r1.1 term_size_words.m
--- tests/debugger/term_size_words.m	20 Oct 2003 07:29:41 -0000	1.1
+++ tests/debugger/term_size_words.m	11 Jan 2009 00:39:24 -0000
@@ -1,15 +1,20 @@
+% vim: ts=4 sw=4 et ft=mercury
+
 :- module term_size_words.
 
 :- interface.
 
 :- import_module io.
 
-:- pred main(io__state, io__state).
-:- mode main(di, uo) is det.
+:- pred main(io::di, io::uo) is det.
 
 :- implementation.
 
-:- import_module std_util, list, int, float.
+:- import_module float.
+:- import_module int.
+:- import_module list.
+:- import_module pair.
+:- import_module univ.
 
 :- type tree(K, V)
 	--->	leaf
@@ -18,22 +23,22 @@
 main(!IO) :-
 	static(IntList, StringList, Tree),
 	dynamic(IntList, DoubleIntList, FloatList, PairList, UnivList, Univ),
-	io__write(IntList, !IO),
-	io__nl(!IO),
-	io__write(StringList, !IO),
-	io__nl(!IO),
-	io__write(Tree, !IO),
-	io__nl(!IO),
-	io__write(DoubleIntList, !IO),
-	io__nl(!IO),
-	io__write(FloatList, !IO),
-	io__nl(!IO),
-	io__write(PairList, !IO),
-	io__nl(!IO),
-	io__write(UnivList, !IO),
-	io__nl(!IO),
-	io__write(Univ, !IO),
-	io__nl(!IO).
+    io.write(IntList, !IO),
+    io.nl(!IO),
+    io.write(StringList, !IO),
+    io.nl(!IO),
+    io.write(Tree, !IO),
+    io.nl(!IO),
+    io.write(DoubleIntList, !IO),
+    io.nl(!IO),
+    io.write(FloatList, !IO),
+    io.nl(!IO),
+    io.write(PairList, !IO),
+    io.nl(!IO),
+    io.write(UnivList, !IO),
+    io.nl(!IO),
+    io.write(Univ, !IO),
+    io.nl(!IO).
 
 % Return some static terms.
 
@@ -51,10 +56,10 @@
 	list(pair(int, float))::out, list(univ)::out, univ::out) is det.
 
 dynamic(IntList, DoubleIntList, FloatList, PairList, UnivList, Univ) :-
-	list__append(IntList, IntList, DoubleIntList),
-	FloatList = list__map(float, IntList),
-	PairList = list__map(pair_float, IntList),
-	UnivList = list__map(convert_type_to_univ, IntList),
+    list.append(IntList, IntList, DoubleIntList),
+    FloatList = list.map(float, IntList),
+    PairList = list.map(pair_float, IntList),
+    UnivList = list.map(convert_type_to_univ, IntList),
 	Univ = convert_type_to_univ(
 		node(node(leaf, 2, 2.0 - "two", leaf), 1, 1.0 - "one", leaf)).
 
cvs diff: Diffing tests/debugger/declarative
cvs diff: Diffing tests/dppd
cvs diff: Diffing tests/general
cvs diff: Diffing tests/general/accumulator
cvs diff: Diffing tests/general/string_format
cvs diff: Diffing tests/general/structure_reuse
cvs diff: Diffing tests/grade_subdirs
cvs diff: Diffing tests/hard_coded
cvs diff: Diffing tests/hard_coded/exceptions
cvs diff: Diffing tests/hard_coded/purity
cvs diff: Diffing tests/hard_coded/sub-modules
cvs diff: Diffing tests/hard_coded/typeclasses
cvs diff: Diffing tests/invalid
cvs diff: Diffing tests/invalid/purity
cvs diff: Diffing tests/misc_tests
cvs diff: Diffing tests/mmc_make
cvs diff: Diffing tests/mmc_make/lib
cvs diff: Diffing tests/par_conj
cvs diff: Diffing tests/recompilation
cvs diff: Diffing tests/stm
cvs diff: Diffing tests/stm/orig
cvs diff: Diffing tests/stm/orig/stm-compiler
cvs diff: Diffing tests/stm/orig/stm-compiler/test1
cvs diff: Diffing tests/stm/orig/stm-compiler/test10
cvs diff: Diffing tests/stm/orig/stm-compiler/test2
cvs diff: Diffing tests/stm/orig/stm-compiler/test3
cvs diff: Diffing tests/stm/orig/stm-compiler/test4
cvs diff: Diffing tests/stm/orig/stm-compiler/test5
cvs diff: Diffing tests/stm/orig/stm-compiler/test6
cvs diff: Diffing tests/stm/orig/stm-compiler/test7
cvs diff: Diffing tests/stm/orig/stm-compiler/test8
cvs diff: Diffing tests/stm/orig/stm-compiler/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/stmqueue
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test10
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test11
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test9
cvs diff: Diffing tests/tabling
cvs diff: Diffing tests/term
cvs diff: Diffing tests/trailing
cvs diff: Diffing tests/valid
cvs diff: Diffing tests/warnings
cvs diff: Diffing tools
cvs diff: Diffing trace
Index: trace/mercury_trace_vars.c
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/trace/mercury_trace_vars.c,v
retrieving revision 1.82
diff -u -b -r1.82 mercury_trace_vars.c
--- trace/mercury_trace_vars.c	5 Dec 2008 07:18:07 -0000	1.82
+++ trace/mercury_trace_vars.c	21 Dec 2008 14:00:01 -0000
@@ -1524,13 +1524,15 @@
 
         do {
             fprintf(out, "%20s: %6u\n",
-                MR_point.MR_point_vars[var_num].MR_var_fullname,
+                MR_point.MR_point_vars[var_num].MR_value_var.MR_var_fullname,
                 MR_term_size(MR_point.MR_point_vars[var_num].MR_value_type,
                     MR_point.MR_point_vars[var_num].MR_value_value));
             var_num++;
         } while (var_num < MR_point.MR_point_var_count &&
+            MR_point.MR_point_vars[var_num].MR_value_kind
+                == MR_VALUE_PROG_VAR &&
             MR_streq(var_spec.MR_var_spec_name,
-                MR_point.MR_point_vars[var_num].MR_var_fullname));
+                MR_point.MR_point_vars[var_num].MR_value_var.MR_var_fullname));
     } else {
         fprintf(out, "%20s: %6u\n", name, type_info, value);
     }
@@ -1554,11 +1556,14 @@
     }
 
     for (var_num = 0; var_num < MR_point.MR_point_var_count; var_num++) {
+        if (MR_point.MR_point_vars[var_num].MR_value_kind == MR_VALUE_PROG_VAR)
+        {
         fprintf(out, "%-20s %6u\n",
-            MR_point.MR_point_vars[var_num].MR_var_fullname,
+                MR_point.MR_point_vars[var_num].MR_value_var.MR_var_fullname,
             MR_term_size(MR_point.MR_point_vars[var_num].MR_value_type,
                 MR_point.MR_point_vars[var_num].MR_value_value));
     }
+    }
 
     return NULL;
 #endif
cvs diff: Diffing util
cvs diff: Diffing vim
cvs diff: Diffing vim/after
cvs diff: Diffing vim/ftplugin
cvs diff: Diffing vim/syntax
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list