Releases: jeremyschlatter/chime
v0.4.0
This is the first version that can correctly run every REPL example shown in the spec.
Still lots of work to do to make it nice to use. It may still behave incorrectly in some cases. But it's good enough to start using as a tool to explore Bel.
Almost Feature-Complete
Another draft release. We're getting close to the point where the interpreter can execute every example listed in Paul Graham's language guide and examples file.
It's still slow, lacks good runtime error messages, and likely deviates from the reference implementation in many ways. But it's probably close to or already past the point where some people will find it useful, so here it is.
Minimum Viable Programs
The interpreter is now good enough that I can use it to solve the first couple Advent of Code puzzles.
It is quite slow, missing language features, has poor runtime error messages (though pretty good parsing error messages!), and is likely buggy. But it can run small programs! I particularly liked writing this one, even though I had to wait a few minutes for it to run.
Changes since v0.1.0 include:
- more language features implemented
- I/O now works
- it's faster (still slow, but better than before)
- minor CLI UX improvements
Early Draft
This release contains a Bel REPL that implements roughly half of the Bel spec. Some expressions are slow to evaluate, and many Bel features are not yet implemented. But if you'd like to play around with evaluating some simple expressions, you can do that.
Notably, this release is far enough along that you can run Paul Graham's Bel interpreter, which is itself written in Bel. It is available in global scope as bel
:
> (join 'a 'b)
(a . b)
> (bel '(join 'a 'b))
(a . b)
The bel
function runs quite slowly for now and doesn't work on a lot of inputs, but running it at all has been quite fun!
The REPL itself is in decent shape. It has line editing, input history, and multi-line input.
To get a sense of what has been implemented so far, you can look at the tests (which are quite straightforward).