I really like languages that store their runtime stack on the heap, such as Smalltalk.
You can write code as if you have tail call optimisation, but you still have normal stack traces for debugging.
miniblog.
Related Posts
The Self programming language, the optimisation techniques they pioneered, and the emergent design principles: https://youtube.com/watch?v=3ka4KY7TMTU
(Stanford talk by one of the creators)
Applying different profile guided optimisation techniques to the rust compiler:
I've never seen a JIT with an "eject" option.
If I'm happy with the steady-state performance of my system, I'd rather disable the JIT and lose additional optimisation in favour of removing the tracing overhead. Do any languages offer this?
