/b9

An educational JS virtual machine based on Eclipse OMR

Primary LanguageC++Apache License 2.0Apache-2.0

Welcome to base9!

Build Status Coverage Status

Base9 is an educational language runtime and programming language! We’re using it to show people how to use Eclipse OMR to build their own language runtime with a Just in Time (JIT) Compiler! The base9 front-end language is a simple subset of JavaScript. For more information, visit the base9 website.

Build your own Language Runtime

If you'd like to build your own language runtime, visit our guide on Building a Language Runtime!

Getting started

This page contains some basic instructions to get you started. For more detailed instructions, go to:

1. Requirements

To get started with base9 using the Ninja build system, you'll need the following:

  • git
  • build-essential
  • nodejs (Minimum version 4.5.0)
  • npm
  • esprima
  • cmake (Minimum version 3.2.0)
  • ninja

2. Clone the repository and get the submodules

git clone --recursive https://github.com/b9org/b9.git

3. Install Esprima

cd b9 \
&& npm install esprima

4. Build base9

mkdir build \
&& cd build \
&& cmake -GNinja -DCMAKE_BUILD_TYPE=Debug .. \
&& ninja

5. Run Hello World!

In the build directory, run:

./b9run/b9run ./test/hello.b9mod

6. Test base9

You can run the full base9 test suite with:

ninja test