wdv4758h/awesome-jit

A curated list of awesome JIT frameworks, libraries, software and resources
======================================== Awesome-JIT ======================================== .. contents:: Table of Contents Libraries ======================================== Help you implement JIT ------------------------------ * `AsmJit `_ - Complete x86/x64 JIT and Remote Assembler for C++ * `DynASM `_ * `LibJIT `_ * `LLVM - MCJIT `_ * `GCC - libgccjit `_ * `GNU lightning `_ - a library that generates assembly language code at run-time * `Xbyak `_ - JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++ * `sljit `_ - a stack-less platform independent JIT compiler * `QBE `_ - written in C, similar to LLVM but much smaller * `MIR `_ - a new JIT backend in C being developed by a Redhat GCC maintainer * `NanoJIT `_ - a small JIT engine originally written by Adobe for Flash * `nj `_ - a JIT engine written in C++ based on `Eclipse OMR `_. Eclipse OMR is used in IBM's Java implementation, but the JIT engine is generic Comes with JIT support ------------------------------ * Python - `Numba `_ - NumPy aware dynamic Python compiler using LLVM Programming Languages Implementation ======================================== * `Julia `_ * Python - `PyPy `_ - `Pyston `_ - performance-oriented Python implementation built using LLVM and modern JIT techniques - `Pyjion `_ - JIT for Python based upon CoreCLR * Lua - `LuaJIT `_ - `MoonJIT `_ - Just-In-Time Compiler for the Lua Programming language. Fork of LuaJIT to continue development - `Ravi `_ - a derivative/dialect of Lua 5.3 with limited optional static typing and an LLVM powered JIT compiler - `RaptorJIT `_ - a fork of LuaJIT focused on predictably high performance. * JavaScript - `V8 `_ - `SpiderMonkey `_ * PHP - `HHVM `_ - `HippyVM `_ * Ruby - `Topaz `_ * Lisp - `CLISP `_ - `Pixie `_ * Smalltalk - `GNU Smalltalk `_ - `RSqueak `_ * Prolog - `Pyrolog `_ * `Racket `_ * Java - `HotSpot `_ - `Dalvik `_ - `Avian `_ - A lightweight alternative to Java - `Jikes RVM `_ - Research Virtual Machine - `Maxine VM `_ - Metacircular Research Virtual Machine * Erlang - BEAMJIT * WebAssembly - `wasm-jit `_ * LLVM IR - `Sulong `_ - an interpreter for LLVM IR written in Java using the Truffle language implementation framework and Graal as a just-in-time (JIT) compiler * SOM (Simple Object Machine) - `RPySOM `_ - The Simple Object Machine Smalltalk implemented in RPython - `RTruffleSOM `_ - combining ideas from Truffle and TruffleSOM with RPython's metatracing * `.NET `_ * `ZetaVM `_ * Ethereum - `EVM JIT `_ Bindings ======================================== * `llvmlite `_ - A lightweight LLVM python binding for writing JIT compilers * `pygccjit `_ - Python bindings for libgccjit Tools ======================================== * `jitpy `_ - Library to embed PyPy into CPython * `RPython Toolchain `_ - framework for producing implementations of dynamic languages * `Truffle `_ - Language Implementation Framework * `JITWatch `_ - Log analyser and visualiser for the HotSpot JIT compiler Papers ======================================== * [2003] `A Brief History of Just-In-Time `_ * [2010] `OCamlJIT 2.0 - Faster Objective Caml `_ * [2015] `Pycket: A Tracing JIT For a Functional Language `_ * [2015] `Making an Embedded DBMS JIT-friendly `_ JIT in Database ======================================== * `PostgreSQL `_ - ``src/backend/jit`` * SQlite - `SQPyte `_ Resources ======================================== Twitter ------------------------------ * `@LuaJIT `_ * `@pypyproject `_

Repo Not Found