[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