Ribbit: A portable, compact and extensible R4RS Scheme implementation
github.com
github.com
One of the original author of Ribbit here, glad to see it is still getting attention. Léonard and Marc took the project much further than I imagined.
As a fun fact, the project started as a riff of Justine Tunney's famous https://justine.lol/sectorlisp/.
For the interested, my new favorite project from Marc's team is https://github.com/udem-dlteam/pnut
One of our goals was to reduce as much as possible a R4RS compliant REPL, because it is quite reasonably sized and doesn't support macros (we managed to fit it in 6.5KB!). We considered R7RS, but it was a bit too ambitious for a first goal. We plan on supporting R7RS eventually !
If you want to read more, section 4 of "A R4RS Compliant REPL in 7 KB" explains our rationale behind the choice of R4RS :
I'm pretty sure we had support for JS, C, Python from the beginning as well. Then Scheme, posix shell, assembly came along for the ride.
> I'm unsure how support was kept throughout the versions but I know a much larger set of languages now support the runtime, at least for a subset of the features
One thing that really helped is CI testing! All the RVMs (the 16 targets) are now fully tested at each PR (https://github.com/udem-dlteam/ribbit/actions)
I'm really happy to see that the project is getting some attention! We made a lot of progress since the last post on HN (https://news.ycombinator.com/item?id=31096771). We are now fully R4RS compliant, support 16 different target languages with a sort of FFI with all of them.
We are currently working on flonum/bignum support and a guide for adding your own RVM (new host) so that you can run scheme in your favourite language. It should be coming soon!
I'll stay up to answer any questions about Ribbit!