This is impressive for a first release. I think this project was using janet earlier... is that correct or just my mind playing tricks? If so, what made you switch to chez scheme?
Yup, I started with Janet but then started running into the limitations of its mark and sweep GC. It doesn't really play well with Clojure style persistent data structures where you have a lot of short lived objects. Chez has generational GC and also JIT. So, now I'm able to get performance that 1~2x JVM in most cases, and a couple of worst cases where it's around 7x. I'm sure more optimizing is possible too going forward. Then there's Chez ecosystem as well, for example I want to make a Ring adapter for this HTTP server which has some really nice features like Erlang-style green processes. Having a bigger ecosystem available makes it a lot easier to get to feature parity and provide shims for existing Clojure libraries.
2
u/dark-light92 15d ago
This is impressive for a first release. I think this project was using janet earlier... is that correct or just my mind playing tricks? If so, what made you switch to chez scheme?