wdv4758h / awesome-jit

A curated list of awesome JIT frameworks, libraries, software and resources

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome-JIT

Table of Contents

Libraries

Help you implement JIT

  • AsmJit - Complete x86/x64 JIT and Remote Assembler for C++
  • DynASM
  • LibJIT
  • LLVM - MCJIT
  • LLVM - ORC - Successor to 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
  • 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
  • Cranelift - A Rust powered JIT compiler for x86-64, aarch64 and s390x created by the Wasmtime team for their WASI interpreter.

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 - An extremely fast Lua Just-in-Time compiler and interpreter.
    • 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.
    • LuaJIT Remake - A LuaJIT Remake that leverages new techniques like "Copy & Patch" JIT and an interpreter generated by the semantical description of LuaJIT Bytecodes.
  • JavaScript
    • V8 - High-performance Javascript and Webassembly engine developed by google around the "Sea of Nodes" concept
    • SpiderMonkey - Firefox's Javascript and Webassembly engine using the WarpMokey JIT engine
    • JavaScriptCore - High-performance Javascript and Webassembly engine developed by Apple for WebKit. Uses the B3 backend.
    • Chakra - Microsoft's JavaScript engine. Used to be the JS engine of Explorer and the early MSEdge.
    • IV - Javascript engine written in C++ that supports ECMAScript 262 5.1.
    • BESEN - Javascript engine written in object Pascal.
    • Higgs - Javascript engine written in D. Made by Maxime Chevalier-Boisvert, the same fella who participated in YJIT cited below.
  • PHP
  • Ruby
  • Lisp
  • Smalltalk
  • Prolog
  • Racket
  • Java
  • Erlang
    • BEAMJIT
  • WebAssembly
  • 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

Bindings

  • llvmlite - A lightweight LLVM python binding for writing JIT compilers
  • pygccjit - Python bindings for libgccjit
  • gccjit - Rust bindings to 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

JIT in Database

Resources

Twitter

Other Projects (Not Designed for JIT but can be useful) -------------------------------------

About

A curated list of awesome JIT frameworks, libraries, software and resources