summaryrefslogtreecommitdiff
path: root/doc/ujit.md
blob: fe73aef1b0c2fed49969d6a0fb6a3ba6c104ac98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
MicroJIT (uJIT)
===============

MicroJIT is a lightweight, minimalistic Ruby JIT built inside the CRuby/MRI binary.
It lazily compiles code using a Basic Block Versioning (BBV) architecture and generates x86-64 code. The target use case is that of servers running
Ruby on Rails, an area where CRuby's MJIT has not yet managed to deliver speedups. We currently support only MacOS and Linux at this stage. This
project is open source and falls under the same license as CRuby.

## Installation

The uJIT `ruby` binary can be built with either GCC or Clang.  We recommend enabling debug symbols so that assertions are enabled

```
autoconf
./configure cppflags=-DRUBY_DEBUG --prefix=$HOME/.rubies/ruby-microjit
make -j16 install
```

Once uJIT is built, you can either use `./miniruby` from within your build directory, or switch to the uJIT version of `ruby`
by using the `chruby` tool:

```
chruby ruby-microjit
```

## Source Code Organization

## Contributing

If you are interested in contributing to this project, please contact Maxime Chevalier [(@Love2Code) via twitter](https://twitter.com/Love2Code).