clojit clojure compiler & vm

Resources

Very little we do is original, so here is a list of resources that helped us.

There are many more resources that can not all be mentioned here, but we want to thank everybody who has worked, commented or donated to these projects. Thank you.

Luajit

This fantasic project is our closest ancestor, and without it, we would be nowhere near where we are today. Our architecture will be very similar, a (hopefully) fast interpreter combined with a single tracing JIT.

On a more detailed level, we also look at LuaJit, for example our Bytecode is very much inspired by LuaJit's Bytecode.

There is a lot left to develop and a lot left to learn from LuaJit.

wingolog

The blogger Andy Wingo has many posts on JIT compilers and other useful matter. We regularly consult this blog for overviews of the current state of the art in JIT compilers and the details of the Guile VM.

Here is a short list of useful links:

lambdachine

Thomas Schilling had a very similar idea to ours, look at LuaJit and implement a functional language with that architecture. Specially useful is reading his PhD Thesis, that covers the architecture and implementation of lambdachine in some detail.

Here is a short list of useful links:

Servo Project

While the Servo Project is a web browser engine rather then a virtual machine, they still face some of the same problems that we do. These problems are mostly related on how to integrate a garbage collector with the Rust language.

Self Language

The Self language is where JIT compilers grew up. The early research is still relevant to everything we do. Especially the PhD theses of Craig Chambers and Urs Hölzle written during that research program in the early 1990s. They still are a fantastic read.

(Note: If you have troubles finding the some papers, contact us.)