[m-rev.] for review: printing of I/O actions in the declarative debugger
Zoltan Somogyi
zs at cs.mu.OZ.AU
Wed Oct 30 12:56:56 AEDT 2002
Make it easier to print and browse I/O actions in the declarative debugger.
browser/browser_info.m:
Add a new component to the debugger's permanent state to record the
user's preference as to how many I/O actions can be printed with each
atom. If an atom has this many I/O actions or fewer, they are printed.
If it has more, only a notice about too many I/O actions to show is
printed, and the user has to look up the others manually.
browser/browse.m:
Update the help message and the printing of the current settings
accordingly.
browser/parse.m:
Add a new general browser command, "num_io_actions <n>", that allows
the user to set the value of this new parameter.
browser/declarative_user.m:
Delete the old, undocumented command "io <action_num>". Replace with
two new command forms, "print io <from_action_num>[-<to_action_num>]"
and "browse io <action_num>". "browse io" does what the old "io"
command did, but using this to print many I/O actions is clumsy;
that's what "print io" is for.
For symmetry, also add "print <from_arg_num>[-<to_arg_num>]".
Respect the new, user-configurable limit on the number of I/O actions
printed with each atom.
tests/debugger/declarative/tabled_read_decl.{inp,exp}:
Add some tests of the new functionality.
Zoltan.
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
Index: browser/browse.m
===================================================================
RCS file: /home/mercury1/repository/mercury/browser/browse.m,v
retrieving revision 1.31
diff -u -b -r1.31 browse.m
--- browser/browse.m 22 Oct 2002 16:06:35 -0000 1.31
+++ browser/browse.m 28 Oct 2002 14:19:57 -0000
@@ -452,8 +452,8 @@
"\th -- help\n",
"\n",
"-- settings:\n",
-"-- size; depth; path; format (flat raw_pretty verbose pretty); width; ",
-"lines\n",
+"-- size <n>; depth <n>; path <n>; width <n>; lines <n>; num_io_actions <n>;\n",
+"-- format <flat,raw_pretty,verbose,pretty>; ",
"-- Paths can be Unix-style or SICStus-style: /2/3/1 or ^2^3^1\n",
"\n"],
HelpMessage) },
@@ -1050,6 +1050,10 @@
{ browser_info__get_format(Info, print, no, PrintFormat) },
write_string_debugger(Debugger, "Print format is "),
print_format_debugger(Debugger, PrintFormat),
+ nl_debugger(Debugger),
+ write_string_debugger(Debugger, "Number of I/O actions printed is: "),
+ write_int_debugger(Debugger,
+ get_num_printed_io_actions(Info ^ state)),
nl_debugger(Debugger).
:- pred string_to_path(string, path).
Index: browser/browser_info.m
===================================================================
RCS file: /home/mercury1/repository/mercury/browser/browser_info.m,v
retrieving revision 1.9
diff -u -b -r1.9 browser_info.m
--- browser/browser_info.m 16 Apr 2002 13:54:29 -0000 1.9
+++ browser/browser_info.m 28 Oct 2002 14:17:38 -0000
@@ -97,7 +97,8 @@
; size(int)
; format(portray_format)
; width(int)
- ; lines(int).
+ ; lines(int)
+ ; num_io_actions(int).
% Initialise a new browser_info. The optional portray_format
% overrides the default format.
@@ -118,6 +119,9 @@
portray_format, format_params).
:- mode browser_info__get_format_params(in, in, in, out) is det.
+:- func browser_info__get_num_printed_io_actions(browser_persistent_state)
+ = int.
+
%---------------------------------------------------------------------------%
% An abstract data type that holds persistent browser settings.
@@ -271,7 +275,8 @@
---> browser_persistent_state(
print_params :: caller_params,
browse_params :: caller_params,
- print_all_params :: caller_params
+ print_all_params :: caller_params,
+ num_printed_io_actions :: int
).
:- type caller_params
@@ -305,7 +310,8 @@
caller_type_print_defaults(Print),
caller_type_browse_defaults(Browse),
caller_type_print_all_defaults(PrintAll),
- State = browser_persistent_state(Print, Browse, PrintAll).
+ State = browser_persistent_state(Print, Browse, PrintAll,
+ num_printed_io_actions_default).
:- pred caller_type_print_defaults(caller_params).
:- mode caller_type_print_defaults(out) is det.
@@ -340,6 +346,10 @@
Pretty = format_params(3, 10, 80, 2),
Params = caller_params(DefaultFormat, Flat, RawPretty, Verbose, Pretty).
+:- func num_printed_io_actions_default = int.
+
+num_printed_io_actions_default = 20.
+
browser_info__set_param(MaybeCallerType, F0, Pr0, V0, NPr0, Setting, State0,
State) :-
affected_caller_types(MaybeCallerType, P, B, A),
@@ -348,6 +358,9 @@
browser_info__set_param(P0, B0, A0, F0, Pr0, V0, NPr0, Setting, State0,
State) :-
+ ( Setting = num_io_actions(NumIoActions) ->
+ State = State0 ^ num_printed_io_actions := NumIoActions
+ ;
default_all_yes(P0, B0, A0, P, B, A),
default_all_yes(F0, Pr0, V0, NPr0, F, Pr, V, NPr),
PParams0 = State0 ^ print_params,
@@ -356,7 +369,9 @@
maybe_set_param(P, F, Pr, V, NPr, Setting, PParams0, PParams),
maybe_set_param(B, F, Pr, V, NPr, Setting, BParams0, BParams),
maybe_set_param(A, F, Pr, V, NPr, Setting, AParams0, AParams),
- State = browser_persistent_state(PParams, BParams, AParams).
+ State = browser_persistent_state(PParams, BParams, AParams,
+ State0 ^ num_printed_io_actions)
+ ).
:- pred affected_caller_types(maybe(browse_caller_type)::in,
bool::out, bool::out, bool::out) is det.
@@ -423,9 +438,7 @@
maybe_set_param(no, _, _, _, _, _, Params, Params).
maybe_set_param(yes, F, Pr, V, NPr, Setting, Params0, Params) :-
- (
- Setting = format(NewFormat)
- ->
+ ( Setting = format(NewFormat) ->
Params = Params0 ^ default_format := NewFormat
;
Format0 = Params0 ^ default_format,
@@ -451,6 +464,8 @@
error("maybe_set_param_2: cannot set format here").
maybe_set_param_2(yes, width(W), Params, Params ^ width := W).
maybe_set_param_2(yes, lines(L), Params, Params ^ lines := L).
+maybe_set_param_2(yes, num_io_actions(_), _, _) :-
+ error("maybe_set_param_2: num_io_actions").
:- pred get_caller_params(browser_persistent_state, browse_caller_type,
caller_params).
@@ -467,6 +482,9 @@
get_caller_format_params(Params, raw_pretty, Params ^ raw_pretty_params).
get_caller_format_params(Params, verbose, Params ^ verbose_params).
get_caller_format_params(Params, pretty, Params ^ pretty_params).
+
+browser_info__get_num_printed_io_actions(State) =
+ State ^ num_printed_io_actions.
%---------------------------------------------------------------------------%
Index: browser/declarative_user.m
===================================================================
RCS file: /home/mercury1/repository/mercury/browser/declarative_user.m,v
retrieving revision 1.22
diff -u -b -r1.22 declarative_user.m
--- browser/declarative_user.m 16 Oct 2002 03:15:20 -0000 1.22
+++ browser/declarative_user.m 29 Oct 2002 22:17:08 -0000
@@ -123,6 +123,12 @@
{ User = User2 }
)
;
+ { Command = print_arg(From, To) },
+ { edt_node_trace_atom(Question, TraceAtom) },
+ print_atom_arguments(TraceAtom, From, To, User1),
+ query_user_2([Question | Questions], Skipped, Response,
+ User1, User)
+ ;
{ Command = browse_io(ActionNum) },
{ edt_node_io_actions(Question, IoActions) },
% We don't have code yet to trace a marked I/O action.
@@ -131,6 +137,12 @@
query_user_2([Question | Questions], Skipped, Response,
User2, User)
;
+ { Command = print_io(From, To) },
+ { edt_node_io_actions(Question, IoActions) },
+ print_chosen_io_actions(IoActions, From, To, User1),
+ query_user_2([Question | Questions], Skipped, Response,
+ User1, User)
+ ;
{ Command = pd },
{ Response = exit_diagnosis(Node) },
{ User = User1 }
@@ -205,6 +217,29 @@
{ User = User0 }
).
+:- pred print_chosen_io_actions(list(io_action)::in, int::in, int::in,
+ user_state::in, io__state::di, io__state::uo) is cc_multi.
+
+print_chosen_io_actions(Atom, From, To, User0) -->
+ print_chosen_io_action(Atom, From, User0, OK),
+ ( { OK = yes, From + 1 =< To } ->
+ print_chosen_io_actions(Atom, From + 1, To, User0)
+ ;
+ []
+ ).
+
+:- pred print_chosen_io_action(list(io_action)::in, int::in, user_state::in,
+ bool::out, io__state::di, io__state::uo) is cc_multi.
+
+print_chosen_io_action(IoActions, ActionNum, User0, OK) -->
+ ( { list__index1(IoActions, ActionNum, IoAction) } ->
+ print_io_action(User0, IoAction),
+ { OK = yes }
+ ;
+ io__write_string("No such IO action.\n"),
+ { OK = no }
+ ).
+
:- pred browse_io_action(io_action::in, maybe(term_path)::out,
user_state::in, user_state::out, io__state::di, io__state::uo)
is cc_multi.
@@ -246,6 +281,35 @@
{ User = User0 }
).
+:- pred print_atom_arguments(trace_atom::in, int::in, int::in, user_state::in,
+ io__state::di, io__state::uo) is cc_multi.
+
+print_atom_arguments(Atom, From, To, User0) -->
+ print_atom_argument(Atom, From, User0, OK),
+ ( { OK = yes, From + 1 =< To } ->
+ print_atom_arguments(Atom, From + 1, To, User0)
+ ;
+ []
+ ).
+
+:- pred print_atom_argument(trace_atom::in, int::in, user_state::in, bool::out,
+ io__state::di, io__state::uo) is cc_multi.
+
+print_atom_argument(Atom, ArgNum, User0, OK) -->
+ { Atom = atom(_, _, Args0) },
+ { maybe_filter_headvars(chosen_head_vars_presentation, Args0, Args) },
+ (
+ { list__index1(Args, ArgNum, ArgInfo) },
+ { ArgInfo = arg_info(_, _, MaybeArg) },
+ { MaybeArg = yes(Arg) }
+ ->
+ print(univ_value(Arg), User0 ^ outstr, print, User0 ^ browser),
+ { OK = yes }
+ ;
+ io__write_string(User0 ^ outstr, "Invalid argument number\n"),
+ { OK = no }
+ ).
+
:- pred maybe_convert_dirs_to_path(maybe(list(dir)), maybe(term_path)).
:- mode maybe_convert_dirs_to_path(in, out) is det.
@@ -274,6 +338,10 @@
% answering.
; browse_io(int) % Browse the nth IO action before
% answering.
+ ; print_arg(int, int) % Print the nth to the mth arguments
+ % before answering.
+ ; print_io(int, int) % Print the nth to the mth IO actions
+ % before answering.
; pd % Commence procedural debugging from
% this point.
; abort % Abort this diagnosis session.
@@ -293,6 +361,9 @@
"\ts\tskip\t\tskip this question\n",
"\tr\trestart\t\task the skipped questions again\n",
"\tb <n>\tbrowse <n>\tbrowse the nth argument of the atom\n",
+ "\tb io <n>\tbrowse io <n>\tbrowse the atom's nth I/O action\n",
+ "\tp <n>\tprint <n>\tprint the nth argument of the atom\n",
+ "\tp io <n>\tprint io <n>\tprint the atom's nth I/O action\n",
"\t\tpd\t\tcommence procedural debugging from this point\n",
"\ta\tabort\t\t",
"abort this diagnosis session and return to mdb\n",
@@ -351,7 +422,6 @@
cmd_handler("no", one_word_cmd(no)).
cmd_handler("in", one_word_cmd(inadmissible)).
cmd_handler("inadmissible", one_word_cmd(inadmissible)).
-cmd_handler("io", browse_io_cmd).
cmd_handler("s", one_word_cmd(skip)).
cmd_handler("skip", one_word_cmd(skip)).
cmd_handler("r", one_word_cmd(restart)).
@@ -364,6 +434,8 @@
cmd_handler("help", one_word_cmd(help)).
cmd_handler("b", browse_arg_cmd).
cmd_handler("browse", browse_arg_cmd).
+cmd_handler("p", print_arg_cmd).
+cmd_handler("print", print_arg_cmd).
:- func one_word_cmd(user_command::in, list(string)::in) = (user_command::out)
is semidet.
@@ -374,11 +446,38 @@
browse_arg_cmd([Arg]) = browse_arg(ArgNum) :-
string__to_int(Arg, ArgNum).
+browse_arg_cmd(["io", Arg]) = browse_io(ArgNum) :-
+ string__to_int(Arg, ArgNum).
-:- func browse_io_cmd(list(string)::in) = (user_command::out) is semidet.
+:- func print_arg_cmd(list(string)::in) = (user_command::out) is semidet.
-browse_io_cmd([Arg]) = browse_io(ArgNum) :-
- string__to_int(Arg, ArgNum).
+print_arg_cmd([Arg]) = print_arg(From, To) :-
+ string_to_range(Arg, From, To).
+print_arg_cmd(["io", Arg]) = print_io(From, To) :-
+ string_to_range(Arg, From, To).
+
+:- pred string_to_range(string::in, int::out, int::out) is semidet.
+
+string_to_range(Arg, From, To) :-
+ ( string__to_int(Arg, Num) ->
+ From = Num,
+ To = Num
+ ;
+ [FirstStr, SecondStr] = string__words(is_dash, Arg),
+ string__to_int(FirstStr, First),
+ string__to_int(SecondStr, Second),
+ ( First =< Second ->
+ From = First,
+ To = Second
+ ;
+ From = Second,
+ To = First
+ )
+ ).
+
+:- pred is_dash(char::in) is semidet.
+
+is_dash('-').
%-----------------------------------------------------------------------------%
@@ -529,8 +628,8 @@
io__write_int(User ^ outstr, NumIoActions),
io__write_string(User ^ outstr, " io actions:")
),
- % XXX the 6 should be configurable
- ( { NumIoActions < 6 } ->
+ { NumPrinted = get_num_printed_io_actions(User ^ browser) },
+ ( { NumIoActions =< NumPrinted } ->
io__nl(User ^ outstr),
list__foldl(print_io_action(User), IoActions)
;
Index: browser/parse.m
===================================================================
RCS file: /home/mercury1/repository/mercury/browser/parse.m,v
retrieving revision 1.14
diff -u -b -r1.14 parse.m
--- browser/parse.m 3 Jul 2002 08:25:03 -0000 1.14
+++ browser/parse.m 28 Oct 2002 14:16:43 -0000
@@ -39,6 +39,7 @@
% "clipx" num
% "clipy" num
% "format" fmt
+% "num_io_actions" num
%
% numlist:
% num
@@ -343,6 +344,9 @@
; Tok = name("lines") ->
Toks = [num(Y)],
Setting = lines(Y)
+ ; Tok = name("num_io_actions") ->
+ Toks = [num(Y)],
+ Setting = num_io_actions(Y)
; Tok = name("format") ->
Toks = [Fmt],
( Fmt = name("flat") ->
@@ -364,6 +368,7 @@
:- pred show_command(command, io__state, io__state).
:- mode show_command(in, di, uo) is det.
+
show_command(ls(Path)) -->
io__write_string("ls "),
show_path(Path),
@@ -407,6 +412,7 @@
:- pred show_path(path, io__state, io__state).
:- mode show_path(in, di, uo) is det.
+
show_path(root_rel(Dirs)) -->
io__write_string("/"),
show_dirs(Dirs).
@@ -415,6 +421,7 @@
:- pred show_dirs(list(dir), io__state, io__state).
:- mode show_dirs(in, di, uo) is det.
+
show_dirs([]) -->
io__nl.
show_dirs([child_num(Num) | Dirs]) -->
@@ -431,6 +438,7 @@
:- pred show_setting(setting, io__state, io__state).
:- mode show_setting(in, di, uo) is det.
+
show_setting(depth(Depth)) -->
io__write_string("depth "),
io__write_int(Depth),
@@ -451,9 +459,14 @@
io__write_string("format "),
show_format(Fmt),
io__nl.
+show_setting(num_io_actions(N)) -->
+ io__write_string("num_io_actions "),
+ io__write_int(N),
+ io__nl.
:- pred show_format(portray_format, io__state, io__state).
:- mode show_format(in, di, uo) is det.
+
show_format(flat) -->
io__write_string("flat").
show_format(raw_pretty) -->
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
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
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
cvs diff: Diffing tests
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
cvs diff: Diffing tests/debugger/declarative
Index: tests/debugger/declarative/tabled_read_decl.exp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/tabled_read_decl.exp,v
retrieving revision 1.4
diff -u -b -r1.4 tabled_read_decl.exp
--- tests/debugger/declarative/tabled_read_decl.exp 22 Oct 2002 04:36:23 -0000 1.4
+++ tests/debugger/declarative/tabled_read_decl.exp 29 Oct 2002 22:15:01 -0000
@@ -22,6 +22,49 @@
read_char_code('<<c_pointer>>', 50)
read_char_code('<<c_pointer>>', 51)
read_char_code('<<c_pointer>>', 10)
+Valid? print 1-2
+'<<c_pointer>>'
+1123
+test('<<c_pointer>>', 1123, _, state('<<c_pointer>>'))
+4 io actions:
+read_char_code('<<c_pointer>>', 49)
+read_char_code('<<c_pointer>>', 50)
+read_char_code('<<c_pointer>>', 51)
+read_char_code('<<c_pointer>>', 10)
+Valid? p io 1-2
+read_char_code('<<c_pointer>>', 49)
+read_char_code('<<c_pointer>>', 50)
+test('<<c_pointer>>', 1123, _, state('<<c_pointer>>'))
+4 io actions:
+read_char_code('<<c_pointer>>', 49)
+read_char_code('<<c_pointer>>', 50)
+read_char_code('<<c_pointer>>', 51)
+read_char_code('<<c_pointer>>', 10)
+Valid? print io 2-1
+read_char_code('<<c_pointer>>', 49)
+read_char_code('<<c_pointer>>', 50)
+test('<<c_pointer>>', 1123, _, state('<<c_pointer>>'))
+4 io actions:
+read_char_code('<<c_pointer>>', 49)
+read_char_code('<<c_pointer>>', 50)
+read_char_code('<<c_pointer>>', 51)
+read_char_code('<<c_pointer>>', 10)
+Valid? browse io 4
+browser> print
+read_char_code('<<c_pointer>>', 10)
+browser> set num_io_actions 3
+browser> quit
+test('<<c_pointer>>', 1123, _, state('<<c_pointer>>'))
+4 io actions: too many to show
+Valid? browse 1
+browser> set num_io_actions 10
+browser> quit
+test('<<c_pointer>>', 1123, _, state('<<c_pointer>>'))
+4 io actions:
+read_char_code('<<c_pointer>>', 49)
+read_char_code('<<c_pointer>>', 50)
+read_char_code('<<c_pointer>>', 51)
+read_char_code('<<c_pointer>>', 10)
Valid? no
test_2('<<c_pointer>>', 1, 1123, _, state('<<c_pointer>>'))
4 io actions:
Index: tests/debugger/declarative/tabled_read_decl.inp
===================================================================
RCS file: /home/mercury1/repository/tests/debugger/declarative/tabled_read_decl.inp,v
retrieving revision 1.2
diff -u -b -r1.2 tabled_read_decl.inp
--- tests/debugger/declarative/tabled_read_decl.inp 22 Oct 2002 04:36:24 -0000 1.2
+++ tests/debugger/declarative/tabled_read_decl.inp 29 Oct 2002 11:03:15 -0000
@@ -8,6 +8,16 @@
finish -n
print
dd
+print 1-2
+p io 1-2
+print io 2-1
+browse io 4
+print
+set num_io_actions 3
+quit
+browse 1
+set num_io_actions 10
+quit
no
yes
yes
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