So https://github.com/yogthos/jolt now runs all of SCI's pure Clojure and the only things stubbed are SCI's host interface for the reader, loader, and JVM proxy modules which is the layer jolt implements itself now. I've also found that Jank seems to have the most comprehensive tests for Clojure API surface. Porting those over covered majority of the gaps.
That looks great! I don't know anything about Janet, and maybe I'm asking something silly now, but would this allow you to run Clojure code on embedded devices like Raspberry PI?
yeah that's my hope, Janet is a very light runtime, and I intentionally left an option to compile jolt using mutable data structures, so technically it should fit in a small footprint like Pi no problem
another nice thing with Janet is that even though it's compact, its fairly batteries included having stuff like http server available, so this could end up being a really light weight runtime that can do some useful things, I'm hoping to bolt on tools deps support on top of Janet package manager, and then see if I can get Selmer to compile 🙂
That's really cool!
should be fun if it works out, a really small Clojure runtime with nrepl could be fantastic for all sorts of automation too, you could drive something like this with it too then https://www.dexterindustries.com/brickpi/
This is exciting! I like that SCI and Janet are both quite mature, so it makes for a great combination.
that was my thinking as well, the pieces are already there, so it's just a matter of putting them together, and Janet is similar enough to Clojure syntactically so that you can reuse a lot of the existing compiler work
I've also started making specification tests that might be generally handy, these focus on documenting the full contract for the language https://github.com/yogthos/jolt/tree/main/test/spec
and also added an ebnf grammar for good measure, I think it would be really useful to have a formal spec of what constitutes portable Clojure so that there are clear and well defined behaviors across dialects https://github.com/yogthos/jolt/blob/main/doc/grammar.ebnf
See also https://github.com/jank-lang/clojure-test-suite for a behavioral test suite across dialects
Ah I see you mentioned that above
yup, that thing is a life saver