Higgs is a Just-In-Time (JIT) compiler for JavaScript targeting the x86-64 platform. I am developing this compiler as part of my Ph.D. research work. It is a platform to explore new ideas in the realms of profiling, compilation and dynamic programming language optimization. Higgs is a research project, but my goal is for it to become mature enough to be useful in real-world applications as well.

The Higgs compiler is Open Source (BSD licensed). For those of you who would like to take a look at the source code, it is available in a public GitHub repository. There is also a Quickstart guide with installation instruction on the Higgs Wiki. The Higgs interpreter and JIT compiler are written in the D programming language. Most of the runtime and standard libraries are written in JavaScript and compiled by Higgs itself. I frequently blog about the workings and development of Higgs.

Some notable features of Higgs include:

A self-hosted runtime written in extended JavaScript

Lazy/incremental JIT compilation

Context-driven versioning of basic blocks

A Foreign Function Interface (FFI) system to interface with C code

An interactive shell (REPL) with access to low-level primitives.

A simple module system and a set of useful libraries.

Programs used to test the workings and performance of the Higgs VM include most of the SunSpider and V8 benchmark suites as well as a selection of benchmarks from the language benchmarks game. I’m interested in finding computationally-heavy JavaScript benchmarks that can run outside of a browser and haven’t been extensively optimized for in other JavaScript engines. If you would like to contribute code you’ve found or written yourself, please contact me.