<commit_before>What it is?
===========

It is a [neko vm](http://nekovm.org) with LLVM based JIT.

Doesn't neko vm already have a JIT?
-----------------------------------

Yes, it has. But it works only on x86 architecture and most of modern computers run 64bit OSes.
But also we think LLVM has so much optimizations built in that JIT based on it can be much faster.

Any proof?
----------

Not yet, we haven't got to that stage yet. Stay tuned though.

What do I need to compile it?
=============================

First of all, it can be done only on Linux at this stage.
Using LLVM on Windows is more pain than we would want to experience right now.

Prerequisites:

1. gcc/g++ compiler.
2. LLVM, obviously.
  It can be downloaded from [llvm site](http://llvm.org/) or
  on Debian based systems (like Ubuntu) with

    $ sudo aptitude install llvm-dev

3. ruby/rake, again, on Debian/Ubuntu

    sudo aptitude install rake

4. git, to get sources

That's it. Just do

    $ git clone git://github.com/vava/neko_llvm_jit.git
    $ cd neko_llvm_jit
    $ rake

It'll compile neko and run tests.

Why C++?
========

Two reasons.

* I like it better.
* LLVM C API is undocumented and lacking behind.
* There's a way to convert from C++ to C (through clang), if you the huge need will arise.

Why rake?
=========

It's easy to use but it probably will have to be replaced by Makefiles as project will mature.<commit_msg>Another way to format code<commit_after>What it is?
===========

It is a [neko vm](http://nekovm.org) with LLVM based JIT.

Doesn't neko vm already have a JIT?
-----------------------------------

Yes, it has. But it works only on x86 architecture and most of modern computers run 64bit OSes.
But also we think LLVM has so much optimizations built in that JIT based on it can be much faster.

Any proof?
----------

Not yet, we haven't got to that stage yet. Stay tuned though.

What do I need to compile it?
=============================

First of all, it can be done only on Linux at this stage.
Using LLVM on Windows is more pain than we would want to experience right now.

Prerequisites:

1. gcc/g++ compiler.
2. LLVM, obviously.
  It can be downloaded from [llvm site](http://llvm.org/) or
  on Debian based systems (like Ubuntu) with

<pre><code>$ sudo aptitude install llvm-dev</code></pre>

3. ruby/rake, again, on Debian/Ubuntu

<pre><code>sudo aptitude install rake</code></pre>

4. git, to get sources

That's it. Just do

    $ git clone git://github.com/vava/neko_llvm_jit.git
    $ cd neko_llvm_jit
    $ rake

It'll compile neko and run tests.

Other important questions.
==========================

Why C++?
--------

Two reasons.

* I like it better.
* LLVM C API is undocumented and lacking behind.
* There's a way to convert from C++ to C (through clang), if you the huge need will arise.

Why rake?
---------

It's easy to use but it probably will have to be replaced by Makefiles as project will mature.
{'fraction_non_alphanumeric': 0.14649898028552005, 'fraction_numerical': 0.005438477226376614, 'mean_word_length': 2.998641304347826, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1149673', 'n_tokens_mistral': 938, 'n_tokens_neox': 874, 'n_words': 439}