Eve development diary

We put up a development diary for our work on the Eve language. The first post is a rough overview of the last nine months of development as reconstructed from github and slack, starting with the original demo at Strange Loop. In the future we will run more detailed posts once per month.

The original motivation came from reading an old comment on LtU bemoaning the fact that there is very little record of the development of todays languages and the thoughts processes behind them. Hopefully this will be useful to future readers.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Constraint solvers

I found this retrospective very interesting. The choice of datalog and bloom to get away from lexical scoping and hierarchical data was very interesting. And what I found most intriguing was your repeated revelations on the utility of constraint solvers, and their potential use for incremental evaluation.

Solvers ftw.

Our use of solvers is one of the most exciting things to me about our runtime. It just opens up so many interesting opportunities. For example, we're writing the runtime in such a way that a solver can be swapped out at the granularity of a single rule. This means you can optimize different parts of the program based on what they do just by plugging a different propagator in. e.g. our join solver isn't going to be very good at matrix multiplication, so we could swap it out for a different evaluation strategy. There's a ton of stuff to explore with the solvers and I imagine we'll see some really powerful things fall out of it; everything from program generation and verification to constraint UI.

The best part of all of this though, was how much simpler using a solver made the system. As Jamie mentioned in the post, the entire runtime is < 1500 lines of code and is fairly straightforward to understand.

Less-than signs

It looks like you tried to use a less-than sign (<) without escaping it as &lt; for HTML.

Good catch, thanks!

Good catch, thanks!