GNU Jitter - Summary
This software is part of the GNU Project.
GNU Jitter is a software automatically generating a portable, very efficient
language virtual machine with performance close to native code, starting from a
relatively high-level specification provided by the user.
The VM state may include registers, stacks or a combination of both along with
any runtime structure defined by user code; whenever possible the generator
attempts to map such state data structures into hardware machine registers.
The specification contains some C code associated to every VM instruction; the
generator takes care of combining such small blocks of C into a whole body of
code with low—usually zero—dispatching and branching overhead.
The generated code includes a simple C API to dynamically emit and execute VM
code, an optional self-contained driver program for running VM routines from
text files, and development features such as disassembling and profiling. The
Jitter runtime also features efficient support for conditional branching
operations difficult to implement using just C such as value tag checking, as
required by dynamically typed languages, and overflow checking.
The generated C code is heavily conditionalised and can be configured to run
using different dispatching techniques, of varying sophistication; the most
efficient dispatching techniques rely on some architecture-specific—but not
VM-specific—assembly support already included in this software; every
dispatching model but one also relies on GNU C extensions.
As a fallback case, in the interest of portability, one dispatching technique is
provided, switch dispatching, requiring nothing more than standard C.
Configuration parameters are transparent with respect to the VM semantics and
even the C API: a VM routine will always behave in the same way independently
from the dispatching technique and other configuration parameters, the only
observable difference being execution speed.
A new garbage collector featuring precise pointer finding is in preparation.
Garbage collection is compatible with Jittery VMs but optional; alternatives
such as the the Boehm-Demers-Weiser garbage collection are also supported.
Registration Date: Fri 17 Dec 2021 01:45:30 PM UTC
License: GNU General Public License v3 or later
Development Status: 4 - Beta
Powered by Savane 3.14-d582.
Corresponding source code