[m-rev.] for review: fix termination analysis bug
Fergus Henderson
fjh at cs.mu.OZ.AU
Fri Oct 3 12:27:12 AEST 2003
On 03-Oct-2003, Julien Fischer <juliensf at students.cs.mu.OZ.AU> wrote:
>
> Fix a bug that caused the termination analyser to abort when using
> the `num-data-elems' norm whilst analysing code that (de)constructs
> existentially typed data types.
>
> compiler/term_util.m:
> When building the weight table add any type_infos to the list
> of non-recursive arguments otherwise term_util.functor_norm/9 will
> throw an exception when processing an existentially typed data item.
> When calculating the weight do not add arguments that correspond
> to type_info related variables.
Hmm... my intuition is that termination analysis probably ought to take
the sizes of type_info variables into account, otherwise it won't be
able to infer termination of any procedure which recursively
deconstructs types, e.g. io__write_univ.
So I'm not sure that this is the best fix in the long term.
But it does at least look like an improvement on the status quo.
I suggest adding an XXX comment about the above point.
Otherwise, this looks fine.
--
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-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