Ribbit Scheme bootstraps with Posix shell while supporting TCO, call/cc and GC

by feeleyon 4/20/22, 1:39 PMwith 16 comments
by chonglion 4/22/22, 10:20 PM

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.

by paineson 4/21/22, 6:59 AM

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.

by latenightcodingon 4/23/22, 1:48 AM

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...

by bjolion 4/23/22, 8:40 AM

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.

by n8taon 4/23/22, 6:45 AM

Very cool. For someone with moderate compilers & POSIX experience but no scheme experience why does it take 5 hours to bootstrap from POSIX?

by tmalyon 4/23/22, 12:35 AM

4k does this mean I can do arduino development with it?

by pmarreckon 4/23/22, 3:13 AM

Very interesting!