[m-rev.] for review: resets and statistics for tabling

Julien Fischer juliensf at cs.mu.OZ.AU
Fri Jun 16 14:52:03 AEST 2006


On Thu, 8 Jun 2006, Zoltan Somogyi wrote:

> +The @samp{allow_reset} attribute asks the compiler
> +to define a predicate that, when called, resets the memo table.
> +The name of this predicate will be ``table_reset_for'',
> +followed by the name of the tabled predicate, followed by its arity,
> +and (if the predicate has more than one mode) by the mode number
> +(the first declared mode is mode 0, the second is mode 1, and so on).
> +These three or four components are separated by underscores.
> +The reset predicate takes a di/uo pair of I/O states as arguments.
> +The presence of these I/O state arguments in the reset predicate,
> +and the fact that tabled predicates cannot have unique arguments
> +together imply that a memo table cannot be reset
> +while a call using that memo table is active.

I think that is worth mentioning that predicates with unique modes cannot be
tabled separtely, not just as part of the description of the allow_reset
attribute.  In particular this should also mention that this that predicates
with mostly-unique modes cannot be tabled either.  (I'm not sure what the
situation with modes involving inst any is, although we don't seem to
support tabling them either.)

Julien.

--------------------------------------------------------------------------
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