
Hi, 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. Thanks Tom Davie -- What is the internet? It's the largest equivalence class in the reflexive transitive symmetric closure of the relationship "can be reached by an IP packet from". -- Seth Breidbart

Thomas Davie
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 Beyond situations like this, I'm not sure. Regards, Malcolm

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

On 9 Dec 2004, at 13:52, Malcolm Wallace wrote:
Thomas Davie
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
Blargh.. repeating 1's obviously not 1,2,3,4.... Bob -- Computer Science is as much about computers as astronomy is about telescopes -- Edsgar Dijkstra
participants (3)
-
Malcolm Wallace
-
Thomas Davie
-
Thomas Davie