[m-dev.] IO tabling
Julien Fischer
juliensf at cs.mu.OZ.AU
Fri Jul 22 17:34:18 AEST 2005
On Fri, 22 Jul 2005, Ian MacLarty wrote:
> On Fri, 22 Jul 2005, Julien Fischer wrote:
>
> >
> > On Fri, 22 Jul 2005, Ian MacLarty wrote:
> >
> > > On Fri, 22 Jul 2005, Julien Fischer wrote:
> > >
> > > >
> > > > I've been using the declarative debugger on a problem
> > > > with exception analysis and a couple of aspects of IO tabling
> > > > have been proving irritating.
> > > >
> > > > 1) When the debugger thinks there are too many IO actions it won't
> > > > show me them (is 28 really that many?). There doesn't seem to
> > > > be a way to browse the IO action in this case. Would it be possible
> > > > to add a show_io or table_io show command that would display
> > > > a single, specified IO action (or a range thereof.)
> > > >
> > >
> > > There is such a command. "print io <from io action>-<to io action>"
> > > will display a range of IO actions.
> >
> > Ah, that's what it is.
> >
> > What's the difference between 'print action' and 'print io' in the
> > procedural debugger? The latter doesn't seem to work.
> >
>
> I don't think there is a "print io" command in the procedural debugger.
>
You're correct, there isn't. I was confused by the fact that the help
system in the procedural debugger shows both the pd and dd commands.
> > > I agree though that more sophisticated browsing and filtering would be useful.
> > >
> > Likewise.
> >
> >
> > > > 2) It would be good if the debugger could be told to turn on IO
> > > > tabling at the boundaries of specified modules. For example,
> > > > something like:
> > > >
> > > > table_io add_module exception_analysis
> > > >
> > > > would cause the debugger to turn on IO tabling everytime the compiler
> > > > entered the exception_analysis module, and turn it off again when
> > > > leaving that module.
> > > >
> > >
> > > I'm not sure that would be very useful or safe. To be safe IO tabling should
> > > be turned on for ALL calls in the search space. Otherwise there is no
> > > way to guarentee that the results will be the same when the code is reexecuted
> > > by the declarative debugger.
> > >
> >
> > IO tabling is useful in the procedural debugger as well though, and
> > that is where I think this capability would be useful. The user guide
> > should probably mention that turning it on and off is unsafe for the
> > declarative debugger, particulary in light of section 7.8 of the user
> > guide.
> >
>
> But you might still want to do retries accross module boundaries
> in the procedural debugger. I think what you want is the ability to filter IO actions
> by module when printing them.
That, plus the ability to use subterm dependency tracking on them.
> I don't see any need to limit IO tabling to particular
> modules, since IO tabling seems to be pretty efficient even when there are millions
> of IO actions.
>
In that case, I think the user guide section on IO tabling should be
updated.
Julien.
--------------------------------------------------------------------------
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