You are correct Noha, but please play down the impressed part, we have not reached the
goal yet.
1. I did not implement the proper full scale one where we actually can
(In case of knowing that no continuation have been stored, get proper tail calls)
The reason is that 1. It contains a significant overhead, 2. I'm yet a little ignorant
about the inner workings of guile fluids. But in principle, one add meta information
to the fluids so that one can know that it's safe to overwrite the old fluid.
2. The one I implemented was simply pushing things on the dynstack located
on the heap. This still saves a lot of memory because the function stack was
handled more optimal because we used the tail call mechanism. The trick was to
be able to unwind automatically in a correct way when we issue a return.
3. Although I coded a version that should mix well with continuations, I haven't tested
it yet.
/Stefan