[m-dev.] debugging grades and I/O tabling
Fergus Henderson
fjh at cs.mu.OZ.AU
Mon Aug 19 18:04:05 AEST 2002
On 19-Aug-2002, Zoltan Somogyi <zs at cs.mu.OZ.AU> wrote:
> On 19-Aug-2002, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > It would be very bad for code which compiles in the default grade to
> > not compile with `--debug'. So if we're going to make that an error in
> > debug grades, I think we should make it an error in all grades.
>
> That would be fine by me.
>
> > But doing that would break a lot of existing code.
>
> For small values of "break".
>
> Most broken code can be fixed by adding an annotation. Very few foreign_procs
> will have to be rewritten; for example there were none in the Mercury
> implementation itself.
I think the breakage is of a medium degree, not a small degree.
In order for users to fix it, they need to
(1) understand the meaning of the different annotations
(2) understand the C code fragement which was broken
(3) figure out which annotation is appropriate
(4) modify their source to add the annotation
Part (4) is fairly easy, but (1)-(3) impose a reasonably significant
burden on users, IMHO.
> > What's the corresponding benefit to users?
>
> Being able to retry past I/O actions *safely* in the debugger.
Isn't there some way to enable users who want it to get this benefit without
imposing the costs on those who aren't using it?
For example, leave `--trace-table-io-require' as optional,
and not implied by `--require-tracing'. Make the mdb "retry"
command check whether it might be retrying over an I/O action which
was not appropriately annotated, and if so, issue a message explaining
the need for the annotations and telling the user about the
"--trace-table-io-require" option.
That way, people who actually use this feature will learn about that
option and can enable it, but people who don't won't have their code
broken.
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.
--------------------------------------------------------------------------
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