I am not sure if I understand correctly. So this is a scheme running on a scheme. You need e.g. Chicken to compile/minify it and then run it via Gambit.... Why? Why would I do, except of learning puroposes of course, do such thing. I clearly am missing something.
the code is very cryptic: for example the go source: https://github.com/udem-dlteam/ribbit/blob/main/src/host/go/...
the C one has better comments, I imagine that's the reference implementation? https://github.com/udem-dlteam/ribbit/blob/main/src/host/c/r...
Wow Marc! I see all your fun projects all the time and I feel sad I have so little time to play with them!
I will make sure to dive into the internals of this during my vacation, though.
Very cool. For someone with moderate compilers & POSIX experience but no scheme experience why does it take 5 hours to bootstrap from POSIX?
4k does this mean I can do arduino development with it?
Very interesting!
I hate to be pedantic here but I see the term TCO thrown around all the time. The Scheme standard requires that unbounded tail call functions can run in constant space.
This is a semantic difference, not an optimization. Turning off optimizations should never cause your program to crash.