This is an automated archive made by the Lemmit Bot.
The original was posted on /r/rust by /u/maplant on 2024-11-04 18:54:35+00:00.
A little over a year ago I started working on an interpreter for R6RS Scheme designed to fit nicely into async Rust projects, specifically ones that use Tokio (for now). It’s largely incomplete and I haven’t worked on it a while, but it feels novel enough that it felt like a shame to not release it or announce it anywhere. I’m sure I’ll get back to finishing it eventually.
Basically, you can think of it as a version of Scheme that let’s you use Tokio/async Rust features: spawn tasks, await futures, etc. Or, alternatively, you can think of it as a version of async Rust where all values are GC’d, all futures are shared, and the syntax is uh, Scheme.
Again, it’s super incomplete. There’s basically nothing there for actually getting work done. But the bones feel strong. Today I spent some time implementing async functions as Scheme builtins: await
, sleep
, spawn
and join
and it was incredibly painless. Also tail calls work fine.
Anyway, I hope someone finds this at least interesting, maybe as a starting off point for their own project.