Shouldn't be terribly hard to make it good though. Some time ago, I added a JIT REPL in a few afternoons with Claude, ending up with roughly the same performance as their compiler, and with it working reliably with all the libraries I tested. But since they don't want LLM contributions in Crystal, I just left it as an interesting experiment and started working on my own language instead.
I'm doing this because it interests me and I'm learning, but it does feel quixotic at times.
Seems like you're slightly more ambitious with the features (linear typing, refinement typing are way beyond what I dream about). I'm focusing more on a small practical application language with ruby-like aesthetics.
I wanted Hanki to be a general-purpose language that could be used with minimal compromises as a scripting language, a configuration language and a reasonably high-performing application / server-side language. I wanted a good REPL, arbitrary precision arithmetics by default, reasonable safety features (effects, strong typing, concurrency via message-passing actors, erlang-like supervising) and excellent readability for human reviewing.
I wanted to include features that force AI agents into a style, so the linter is included as part of the checker and every linter complaint is an error.
The implementation is currently 300K+ lines of Rust, about 60Kloc of Hanki.
I still have about a hundred beads tickets to go through before I'm happy enough about this that I dare to publish it. And seems like every solved task gets 2 follow-ups :)
This is super interesting, I really like it. Actor concurrency with effects is not as broadly implemented as it should be.
[1] https://march-lang.org/docs/capability-audit/#auditing-a-com...
[2] https://march-lang.org/docs/capabilities/#io-permission-caps
Is your source code online? I can't find it.