Re: Cycles

Thomas Davie <[email protected]> Thu, 9 Dec 2004 14:00:49 +0000
Newsgroups gmane.comp.lang.haskell.hat
Message-ID <[email protected]>
> Thomas Davie <[email protected]> writes:
>
>>    I was just wondering if anyone had a 'definitive' list of where it 
>> is
>> possible to get a cycle in an ART.  Has anyone looked at where it is
>> theoretically possible to get a cycle and what code causes it?  Or, if
>> not, does anyone have a list simply from the experience of writing the
>> SExp cycle detection code.  I'm having a few problems deciphering
>> exactly what it is looking for.
>
> Thorsten Brehm, the author of the cycle-detection code, would be
> the best person to ask.  Unfortunately, his Master's Thesis about
> the implementation of the Hat tools does not mention the subject of
> cycles at all.
>
> One obvious source of a cycle in the trace would be genuinely
> circular code:
>
>     let xs = 1:xs in xs

I'm not sure if this would produce a cycle in the ART file - obviously 
it produces an infinite computation, but would it not come out to

1 AtomConstructor ':'
2 ExpValueApp '1' 1 3
3 ExpValueApp '2' 1 4
4 ExpValueApp '3' 1 5

(obviously mega simplified...)

Thanks

Bob