[clean-list] htoclean "cycle in spine detected"
tneukom@swissonline.ch
tneukom@swissonline.ch
Tue, 13 Apr 2004 08:46:11 +0200
>'cycle in spine' normally means that the runtime system detected an
>infinite reduction,
>that is a non-terminating evualation. In this case it is actually
>indicating that your
>stack has been clobbered (there is no way for you to have known this).
>This is due to
>the code that has been generated for your ccall in cleansdlPumpEvents
>which only has the
>*World as parameter, this is a special type and in this case is not
>treated correctly by
>the code generator. If you replace the generated code in events.icl by
>something like:
>
>implementation module events
>
>import StdEnv
>
>
>cleansdlPumpEvents :: !*World -> *World
>cleansdlPumpEvents w
> # o = cleansdlPumpEvents 42
> | o == o
> = w
>where
> cleansdlPumpEvents :: !*Int -> *Int
> cleansdlPumpEvents a0 = code {
> ccall cleansdlPumpEvents ":V:I"
> }
>
>then your code will work correctly. I'm sure John van Groningen, the
>Clean runtime and
>code generation wizard can provide a more detailed explanation if you
>need it.
>
>Regards,
>
>Diederik van Arkel
>
>
>
Hi
The cleansdlPumpEvents function pops an Integer from the Stack which it didn't get, right? Is there a chance to get the World parameter into the ccall function in the next Clean version?
Cheer Tobias