[m-rev.] for review: .decldebug
Zoltan Somogyi
zs at cs.mu.OZ.AU
Tue Aug 20 16:39:56 AEST 2002
On 19-Aug-2002, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > - Add a new grade component, called something like .decl or .decldebug,
> > [... for declarative debugging ...]
>
> I think that is a good idea.
>
> I prefer the latter name.
For review by anyone.
I modified all the files that mercury_grade.h says should be modified when
adding a new grade, except mercury_compile.m, because I don't see anything
in there that needs to be modified. Anyone know why it is included in the list
in mercury_grade.h?
Zoltan.
------------------------------------------------------------------------
Add a new grade component, .decldebug. It is as proposed on mercury-developers,
minus the implications about I/O tabling. Those will come later.
compiler/options.m:
Add a new option, --decl-debug, that switches on declarative debugging.
compiler/trace_params.m:
The procedure that converts strings representing trace levels to trace
levels themselves now has an extra argument, which gives the value of
the --decl-debug option. If set, it raises the minimum trace level,
and turn explicitly specifying trace levels `shallow' and `deep'
into errors (since they are not sufficient for declarative debugging).
compiler/handle_options.m:
Pass the value of the --decl-debug option to trace_params, and handle
the errors that may result. Handle the implications of --decl-debug.
runtime/mercury_conf_params.h:
Document MR_DECL_DEBUG, which is defined iff the grade is a .decldebug
grade.
runtime/mercury_grade.h:
Take MR_DECL_DEBUG into account when computing the grade component
related to debugging.
scripts/init_grade.sh-subr:
scripts/parse_grade_options.sh-subr:
scripts/final_grade.sh-subr:
scripts/canonical_grade.sh-subr:
scripts/mgnuc.in:
scripts/ml.in:
Add a new shell variable, decl_debug, to represent the value of
MR_DECL_DEBUG, and handle it as appropriate.
cvs diff: Diffing .
cvs diff: Diffing bench
cvs diff: Diffing bench/progs
cvs diff: Diffing bench/progs/compress
cvs diff: Diffing bench/progs/icfp2000
cvs diff: Diffing bench/progs/icfp2001
cvs diff: Diffing bench/progs/nuc
cvs diff: Diffing bench/progs/ray
cvs diff: Diffing bench/progs/tree234
cvs diff: Diffing bindist
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/doc
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing boehm_gc/tests
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
Index: compiler/handle_options.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/handle_options.m,v
retrieving revision 1.147
diff -u -b -r1.147 handle_options.m
--- compiler/handle_options.m 2002/08/12 02:07:07 1.147
+++ compiler/handle_options.m 2002/08/20 06:31:43
@@ -169,8 +169,8 @@
{ TagsMethod0 = string(TagsMethodStr) },
{ convert_tags_method(TagsMethodStr, TagsMethod) }
->
- { map__lookup(OptionTable,
- fact_table_hash_percent_full, PercentFull) },
+ { map__lookup(OptionTable, fact_table_hash_percent_full,
+ PercentFull) },
(
{ PercentFull = int(Percent) },
{ Percent >= 1 },
@@ -185,12 +185,17 @@
{ map__lookup(OptionTable, trace, Trace) },
{ map__lookup(OptionTable, require_tracing,
RequireTracingOpt) },
+ { map__lookup(OptionTable, decl_debug,
+ DeclDebugOpt) },
(
{ Trace = string(TraceStr) },
{ RequireTracingOpt = bool(RequireTracing) },
+ { DeclDebugOpt = bool(DeclDebug) },
{ convert_trace_level(TraceStr, RequireTracing,
- TraceLevel) }
+ DeclDebug, MaybeTraceLevel) }
->
+ (
+ { MaybeTraceLevel = yes(TraceLevel) },
{ map__lookup(OptionTable, suppress_trace,
Suppress) },
(
@@ -227,8 +232,12 @@
;
{ Error = yes("Invalid argument to option `--suppress-trace'.") }
)
+ ;
+ { MaybeTraceLevel = no },
+ { Error = yes("Specified trace level compatible with grade") }
+ )
;
- { Error = yes("Invalid argument to option `--trace'\n\t(must be `minimum', `shallow', `deep', or `default').") }
+ { Error = yes("Invalid argument to option `--trace'\n\t(must be `minimum', `shallow', `deep', `decl', `rep' or `default').") }
)
;
{ Error = yes("Invalid argument to option `--termination-norm'\n\t(must be `simple', `total' or `num-data-elems').") }
@@ -596,6 +605,10 @@
Error = no
},
+ % --decl-debug is an extension of --debug
+ option_implies(decl_debug, require_tracing, bool(yes)),
+ option_implies(decl_debug, stack_trace, bool(yes)),
+
% The `.debug' grade (i.e. --stack-trace plus --require-tracing)
% implies --use-trail, except with --use-minimal-model, which is
% not compatible with --use-trail.
@@ -1512,12 +1525,18 @@
grade_component_table("picreg", pic, [pic_reg - bool(yes)]).
% Debugging/Tracing components
+grade_component_table("decldebug", trace,
+ [stack_trace - bool(yes), require_tracing - bool(yes),
+ decl_debug - bool(yes)]).
grade_component_table("debug", trace,
- [stack_trace - bool(yes), require_tracing - bool(yes)]).
+ [stack_trace - bool(yes), require_tracing - bool(yes),
+ decl_debug - bool(no)]).
grade_component_table("trace", trace,
- [stack_trace - bool(no), require_tracing - bool(yes)]).
+ [stack_trace - bool(no), require_tracing - bool(yes),
+ decl_debug - bool(no)]).
grade_component_table("strce", trace,
- [stack_trace - bool(yes), require_tracing - bool(no)]).
+ [stack_trace - bool(yes), require_tracing - bool(no),
+ decl_debug - bool(no)]).
:- pred reset_grade_options(option_table, option_table).
:- mode reset_grade_options(in, out) is det.
@@ -1550,6 +1569,7 @@
grade_start_values(pic_reg - bool(no)).
grade_start_values(stack_trace - bool(no)).
grade_start_values(require_tracing - bool(no)).
+grade_start_values(decl_debug - bool(no)).
:- pred split_grade_string(string, list(string)).
:- mode split_grade_string(in, out) is semidet.
Index: compiler/options.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/options.m,v
retrieving revision 1.382
diff -u -b -r1.382 options.m
--- compiler/options.m 2002/08/08 06:25:45 1.382
+++ compiler/options.m 2002/08/19 10:52:13
@@ -175,6 +175,7 @@
; debug
; stack_trace
; require_tracing
+ ; decl_debug
% (b) Profiling
; profiling % profile_time + profile_calls
@@ -750,8 +751,9 @@
% Optional feature compilation model options:
% (a) Debuggging
debug - bool_special,
- require_tracing - bool(no),
stack_trace - bool(no),
+ require_tracing - bool(no),
+ decl_debug - bool(no),
% (b) Profiling
profiling - bool_special,
time_profiling - special,
@@ -1319,6 +1321,7 @@
% not very useful and would probably only confuse people.
% long_option("stack-trace", stack_trace).
% long_option("require-tracing", require_tracing).
+long_option("decl-debug", decl_debug).
% (b) profiling
long_option("profiling", profiling).
long_option("time-profiling", time_profiling).
@@ -2651,6 +2654,12 @@
write_tabbed_lines([
"--debug\t\t\t\t(grade modifier: `.debug')",
"\tEnable Mercury-level debugging.",
+ "\tSee the Debugging chapter of the Mercury User's Guide",
+ "\tfor details.",
+ "\tThis option is not yet supported for the `--high-level-code'",
+ "\tback-ends.",
+ "--decl-debug\t\t\t\t(grade modifier: `.decldebug')",
+ "\tEnable declarative debugging.",
"\tSee the Debugging chapter of the Mercury User's Guide",
"\tfor details.",
"\tThis option is not yet supported for the `--high-level-code'",
Index: compiler/trace_params.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/trace_params.m,v
retrieving revision 1.10
diff -u -b -r1.10 trace_params.m
--- compiler/trace_params.m 2002/07/30 08:25:12 1.10
+++ compiler/trace_params.m 2002/08/19 11:12:15
@@ -37,13 +37,24 @@
:- import_module hlds__hlds_pred.
:- import_module ll_backend__llds. % XXX for trace_port
-:- import_module bool.
+:- import_module bool, std_util.
:- type trace_level.
:- type trace_suppress_items.
- % The bool should be the setting of the `require_tracing' option.
-:- pred convert_trace_level(string::in, bool::in, trace_level::out) is semidet.
+ % The string should be the value of the --trace-level option;
+ % two bools should be the values of the `--require-tracing' and
+ % `--decl-debug' grade options.
+ %
+ % If the string is an acceptable trace level in the specified kinds of
+ % grades, return yes wrapper around the trace level.
+ %
+ % If the string is an known trace level that happens not to be
+ % acceptable in the specified kinds of grades, return no.
+ %
+ % If the string is not known trace level, fail.
+:- pred convert_trace_level(string::in, bool::in, bool::in,
+ maybe(trace_level)::out) is semidet.
:- pred convert_trace_suppress(string::in, trace_suppress_items::out)
is semidet.
@@ -102,14 +113,18 @@
trace_level_none = none.
-convert_trace_level("minimum", no, none).
-convert_trace_level("minimum", yes, shallow).
-convert_trace_level("shallow", _, shallow).
-convert_trace_level("deep", _, deep).
-convert_trace_level("decl", _, decl).
-convert_trace_level("rep", _, decl_rep).
-convert_trace_level("default", no, none).
-convert_trace_level("default", yes, deep).
+convert_trace_level("minimum", no, no, yes(none)).
+convert_trace_level("minimum", yes, no, yes(shallow)).
+convert_trace_level("minimum", _, yes, yes(decl)).
+convert_trace_level("shallow", _, no, yes(shallow)).
+convert_trace_level("shallow", _, yes, no).
+convert_trace_level("deep", _, no, yes(deep)).
+convert_trace_level("deep", _, yes, no).
+convert_trace_level("decl", _, _, yes(decl)).
+convert_trace_level("rep", _, _, yes(decl_rep)).
+convert_trace_level("default", no, no, yes(none)).
+convert_trace_level("default", yes, no, yes(deep)).
+convert_trace_level("default", _, yes, yes(decl)).
eff_trace_level(PredInfo, ProcInfo, TraceLevel) = EffTraceLevel :-
(
cvs diff: Diffing compiler/notes
cvs diff: Diffing debian
cvs diff: Diffing deep_profiler
cvs diff: Diffing deep_profiler/notes
cvs diff: Diffing doc
cvs diff: Diffing extras
cvs diff: Diffing extras/aditi
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/graphics
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/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/logged_output
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/morphine
cvs diff: Diffing extras/morphine/non-regression-tests
cvs diff: Diffing extras/morphine/scripts
cvs diff: Diffing extras/morphine/source
cvs diff: Diffing extras/odbc
cvs diff: Diffing extras/posix
cvs diff: Diffing extras/quickcheck
cvs diff: Diffing extras/quickcheck/tutes
cvs diff: Diffing extras/references
cvs diff: Diffing extras/references/samples
cvs diff: Diffing extras/references/tests
cvs diff: Diffing extras/stream
cvs diff: Diffing extras/trailed_update
cvs diff: Diffing extras/trailed_update/samples
cvs diff: Diffing extras/trailed_update/tests
cvs diff: Diffing extras/xml
cvs diff: Diffing extras/xml/samples
cvs diff: Diffing java
cvs diff: Diffing java/library
cvs diff: Diffing java/runtime
cvs diff: Diffing library
cvs diff: Diffing profiler
cvs diff: Diffing robdd
cvs diff: Diffing runtime
Index: runtime/mercury_conf_param.h
===================================================================
RCS file: /home/mercury1/repository/mercury/runtime/mercury_conf_param.h,v
retrieving revision 1.63
diff -u -b -r1.63 mercury_conf_param.h
--- runtime/mercury_conf_param.h 2002/08/16 07:45:29 1.63
+++ runtime/mercury_conf_param.h 2002/08/19 10:45:15
@@ -147,6 +147,15 @@
** Note that MR_REQUIRE_TRACING is talking about execution tracing,
** not stack tracing; these are two independently configurable features.
**
+** MR_DECL_DEBUG
+** Require that all Mercury procedures linked in should be compiled
+** with a trace level that supports declarative debugging. This effect
+** is achieved by including MR_DECL_DEBUG in the mangled grade
+** (see mercury_grade.h).
+**
+** Setting MR_DECL_DEBUG requires MR_REQUIRE_TRACING and MR_STACK_TRACE
+** to be set also.
+**
** MR_LOWLEVEL_DEBUG
** Enables various low-level debugging stuff,
** that was in the distant past used to debug
Index: runtime/mercury_grade.h
===================================================================
RCS file: /home/mercury1/repository/mercury/runtime/mercury_grade.h,v
retrieving revision 1.38
diff -u -b -r1.38 mercury_grade.h
--- runtime/mercury_grade.h 2002/08/16 07:45:05 1.38
+++ runtime/mercury_grade.h 2002/08/20 04:08:55
@@ -254,18 +254,28 @@
** Hence we consider it effectively binary incompatible.
** Similar considerations apply to procedure call tracing.
*/
-#if defined(MR_STACK_TRACE)
+#if defined(MR_DECL_DEBUG)
+ #define MR_GRADE_PART_12 MR_PASTE2(MR_GRADE_PART_11, _decldebug)
+ #if ! defined(MR_STACK_TRACE)
+ #error "declarative debugging require stack traces"
+ #endif
+ #if ! defined(MR_REQUIRE_TRACING)
+ #error "declarative debugging require execution tracing"
+ #endif
+#else
+ #if defined(MR_STACK_TRACE)
#if defined(MR_REQUIRE_TRACING)
#define MR_GRADE_PART_12 MR_PASTE2(MR_GRADE_PART_11, _debug)
#else
#define MR_GRADE_PART_12 MR_PASTE2(MR_GRADE_PART_11, _strce)
#endif
-#else
+ #else
#if defined(MR_REQUIRE_TRACING)
#define MR_GRADE_PART_12 MR_PASTE2(MR_GRADE_PART_11, _trace)
#else
#define MR_GRADE_PART_12 MR_GRADE_PART_11
#endif
+ #endif
#endif
#define MR_GRADE MR_GRADE_PART_12
@@ -415,17 +425,21 @@
** Hence we consider it effectively binary incompatible.
** Similar considerations apply to procedure call tracing.
*/
-#if defined(MR_STACK_TRACE)
+#if defined(MR_DECL_DEBUG)
+ #define MR_GRADE_OPT_PART_12 MR_GRADE_OPT_PART_11 ".decldebug"
+#else
+ #if defined(MR_STACK_TRACE)
#if defined(MR_REQUIRE_TRACING)
#define MR_GRADE_OPT_PART_12 MR_GRADE_OPT_PART_11 ".debug"
#else
#define MR_GRADE_OPT_PART_12 MR_GRADE_OPT_PART_11 ".strce"
#endif
-#else
+ #else
#if defined(MR_REQUIRE_TRACING)
#define MR_GRADE_OPT_PART_12 MR_GRADE_OPT_PART_11 ".trace"
#else
#define MR_GRADE_OPT_PART_12 MR_GRADE_OPT_PART_11
+ #endif
#endif
#endif
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
Index: scripts/canonical_grade.sh-subr
===================================================================
RCS file: /home/mercury1/repository/mercury/scripts/canonical_grade.sh-subr,v
retrieving revision 1.4
diff -u -b -r1.4 canonical_grade.sh-subr
--- scripts/canonical_grade.sh-subr 2001/12/18 05:44:17 1.4
+++ scripts/canonical_grade.sh-subr 2002/08/19 10:36:56
@@ -106,9 +106,13 @@
# false) ;;
# esac
-case $stack_trace,$require_tracing in
- true,true) GRADE="$GRADE.debug" ;;
- false,true) GRADE="$GRADE.trace" ;;
- true,false) GRADE="$GRADE.strce" ;;
- false,false) ;;
+case $stack_trace,$require_tracing,$decl_debug in
+ true,true,true) GRADE="$GRADE.decldebug" ;;
+ true,true,false) GRADE="$GRADE.debug" ;;
+ false,true,false) GRADE="$GRADE.trace" ;;
+ true,false,false) GRADE="$GRADE.strce" ;;
+ false,false,false) ;;
+ *) echo "$progname: error: invalid combination of debugging options." 1>&2
+ exit 1
+ ;;
esac
Index: scripts/final_grade_options.sh-subr
===================================================================
RCS file: /home/mercury1/repository/mercury/scripts/final_grade_options.sh-subr,v
retrieving revision 1.7
diff -u -b -r1.7 final_grade_options.sh-subr
--- scripts/final_grade_options.sh-subr 2001/01/29 01:55:08 1.7
+++ scripts/final_grade_options.sh-subr 2002/08/19 10:37:19
@@ -39,6 +39,15 @@
esac
#
+# --decl-debug implies --debug
+#
+case $decl_debug in true)
+ require_tracing=true
+ stack_trace=true
+ ;;
+esac
+
+#
# --target asm, IL or Java implies --high-level-code
#
case $target in asm|il|java)
Index: scripts/init_grade_options.sh-subr
===================================================================
RCS file: /home/mercury1/repository/mercury/scripts/init_grade_options.sh-subr,v
retrieving revision 1.18
diff -u -b -r1.18 init_grade_options.sh-subr
--- scripts/init_grade_options.sh-subr 2001/05/31 06:00:20 1.18
+++ scripts/init_grade_options.sh-subr 2002/08/19 10:37:34
@@ -42,6 +42,7 @@
--pic-reg
--no-stack-trace
--debug
+ --decl-debug
See the documentation in the \"Invocation\" section
of the Mercury User's Guide."
@@ -69,6 +70,7 @@
pic_reg=false
stack_trace=false
require_tracing=false
+decl_debug=false
case $# in
0) set - --grade "$DEFAULT_GRADE" ;;
Index: scripts/mgnuc.in
===================================================================
RCS file: /home/mercury1/repository/mercury/scripts/mgnuc.in,v
retrieving revision 1.87
diff -u -b -r1.87 mgnuc.in
--- scripts/mgnuc.in 2002/05/30 12:55:23 1.87
+++ scripts/mgnuc.in 2002/08/19 10:48:04
@@ -376,6 +376,11 @@
false) TRACE_OPTS="" ;;
esac
+case $decl_debug in
+ true) DECL_DEBUG_OPTS="-DMR_DECL_DEBUG" ;;
+ false) DECL_DEBUG_OPTS="" ;;
+esac
+
GCC_OPTS="$NEST_OPTS $ASM_OPTS $GOTO_OPTS $REG_OPTS"
# check that special grades are only used with gcc
@@ -529,7 +534,8 @@
ALL_CC_OPTS="$MERC_ALL_C_INCL_DIRS $ANSI_OPTS $CHECK_OPTS $OPT_OPTS \
$HLC_OPTS $HLD_OPTS $GCC_OPTS $GC_OPTS $DEFINE_OPTS \
- $TRACE_OPTS $STACK_TRACE_OPTS $LLDEBUG_OPTS $C_DEBUG_OPTS \
+ $STACK_TRACE_OPTS $TRACE_OPTS $DECL_DEBUG_OPTS \
+ $LLDEBUG_OPTS $C_DEBUG_OPTS \
$PROF_TIME_OPTS $PROF_CALLS_OPTS $PROF_MEMORY_OPTS \
$PROF_DEEP_OPTS $INLINE_ALLOC_OPTS $TRAIL_OPTS \
$RESERVE_TAG_OPTS $MINIMAL_MODEL_OPTS \
Index: scripts/ml.in
===================================================================
RCS file: /home/mercury1/repository/mercury/scripts/ml.in,v
retrieving revision 1.96
diff -u -b -r1.96 ml.in
--- scripts/ml.in 2002/04/29 08:22:05 1.96
+++ scripts/ml.in 2002/08/19 10:49:36
@@ -90,7 +90,8 @@
MAYBE_STATIC_OPT=""
-# --require-tracing (which is implied by --debug) implies --trace
+# --require-tracing (which is implied by --debug and by --decl-debug)
+# implies --trace
case $require_tracing in
true) trace=true ;;
false) ;;
Index: scripts/parse_grade_options.sh-subr
===================================================================
RCS file: /home/mercury1/repository/mercury/scripts/parse_grade_options.sh-subr,v
retrieving revision 1.23
diff -u -b -r1.23 parse_grade_options.sh-subr
--- scripts/parse_grade_options.sh-subr 2001/05/31 06:00:20 1.23
+++ scripts/parse_grade_options.sh-subr 2002/08/19 10:58:32
@@ -164,6 +164,11 @@
stack_trace=false
require_tracing=false ;;
+ --decl-debug)
+ decl_debug=true ;;
+ --no-decl-debug)
+ decl_debug=false ;;
+
-s|--grade)
shift
grade="$1";
@@ -193,6 +198,7 @@
pic_reg=false
stack_trace=false
require_tracing=false
+ decl_debug=false
grade_pieces=`echo $grade | tr '.' ' '`
for grade_piece in $grade_pieces
@@ -393,6 +399,12 @@
stack_trace=true
require_tracing=true
;;
+ decldebug)
+ stack_trace=true
+ require_tracing=true
+ decl_debug=true
+ ;;
+
*)
echo "$0: unknown grade component" \
"\`$grade_piece'" 1>&2
cvs diff: Diffing tests
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
cvs diff: Diffing tests/debugger/declarative
cvs diff: Diffing tests/dppd
cvs diff: Diffing tests/general
cvs diff: Diffing tests/general/accumulator
cvs diff: Diffing tests/general/structure_reuse
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/recompilation
cvs diff: Diffing tests/tabling
cvs diff: Diffing tests/term
cvs diff: Diffing tests/valid
cvs diff: Diffing tests/warnings
cvs diff: Diffing tools
cvs diff: Diffing trace
cvs diff: Diffing util
cvs diff: Diffing vim
cvs diff: Diffing vim/after
cvs diff: Diffing vim/ftplugin
cvs diff: Diffing vim/syntax
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at 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