Aleksey Demakov's Projects
Libjit
Libjit is a reusable JIT-compiler library. It started off as a part of the DotGNU Portable.NET project and was used as the backend for its JIT engine. But the aim of libjit is to provide generic JIT functionality independent of any particular bytecode, language, or runtime. Therefore currently libjit is a separate project on its own right.
The official libjit homepage is here:
http://www.gnu.org/software/libjit/Apart from Portable.NET these independent open-source projects also use (or had used) libjit:
- ILDJIT - yet another CIL bytecode virtual machine.
- Ludicrous JIT compiler for Ruby.
Additionally libjit is used in-house by BBVA, here is a testimonial from them:
We, at BBVA (http://www.bbva.com) are using libjit for the run-time optimization of dynamic structures in the field of financial derivatives valuation.
We chose libjit because its features were very well adapted to our needs, and it was easy to integrate as a shared library in Microsoft Windows, one of our primary development platforms. It is seamlessly liberating us from the compilation-time vs. run-time choice when we need both performance and flexibility.
Libjit (as well as the whole Portable.NET project) was started by Rhys Weatherley. In the true open source way it contains contributions from many people. Currenly I am the libjit maintainer.
The latest stable libjit release can be found here (although it is severely out of date so its use is discouraged):
http://ftp.gnu.org/old-gnu/dotgnu/libjit/libjit-0.1.2.tar.gzThe latest source code snapshot is available with the following command:
git clone git://git.savannah.gnu.org/libjit.git
The libjit documentation may be built from the source tree. Onine HTML documentation is avaialble as well.