Hacker News new | ask | show | jobs
by syvon 634 days ago
Hi!

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

2 comments

Why R4RS? Was that just the standard at the time? I know R6RS is kind of huge and difficult, but R7RS seems pretty reasonably sized.
Hi! One of the authors of Ribbit here (@leo-ard).

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 :

https://arxiv.org/pdf/2310.13589

6.5K ! you could fit that on some microcontrollers
I can't answer as to why the current version is R4RS specifically. The original version Marc and I wrote was running a subset of R4RS. We tried to minimize the code as much as possible (hitting the 4K mark), so it's very possible we just wanted to get everything out of the way (it has been a while)
Good to see it has moved so much from just JavaScript being the main target. I like the small scheme portable idea a lot. For those requiring just a minimal scheme this works.
IIRC (might be wrong here) we had full support for JS, C, Python and Scheme from the start. As it evolved 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.
> IIRC (might be wrong here) we had full support for JS, C, Python and Scheme from the start

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)