Am Montag, 27. März 2006 20:56 schrieb Wolfgang Thaller: > > C -> adjustor -> stub -> Haskell -> stub -> adjustor -> C > > > > It could be the case that the adjustor tail-jumps to the stub, but > > this is not > > guaranteed to be the case for all platforms. > > Hmmm, I thought it was. > [...] > All of the implementations in Adjustor.c *except* for the IA-64 one > go to some lengths to ensure that a tail-calll is used: > > C -> adjustor -> stub -> Haskell -> stub -> (maybe some static code) > -> C > > I think this confusion should be fixed...
Even as the author of some parts of Adjustor.c and some parts of Hugs' FFI implementation I have to admit that it isn't clear to me at all if tail-calls are used everywhere. %-) And even if this is currently the case: Can we really guarantee this for all eternity for every strange ABI people will come up with? I'm not so sure about this, therefore I'd recommend against "self-destruction", as handy as it admittedly is. I'd be happy to be convinced of the opposite... Cheers, S. _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users