Skip to content

mludevid/arena

Repository files navigation

Arena

This is the code base for the Arena compiler.

Arena is a natively compiled functional programming language, that is being developed with the intend to benchmark and compare automatic garbage collection algorithms.

The documentation of the language can be found here.

Installation

To build the project you will need a rust compiler. The easiest way to install it on Linux is to use the rustup tool:

$ curl https://sh.rustup.rs -sSf | sh

You also need a working installation of the LLVM toolchain. It is important to make sure that version 10 is installed. To install it on Ubuntu 20.04 LTS you can simply run:

$ sudo apt install llvm-10

You also need compilation tools from build-essential and the Zlib library. If they are missing on your Ubuntu machine, you can install both packages with the commands:

$ sudo apt install build-essential
$ sudo apt install zlib1g-dev

You should be ready to build the project:

$ ./build.sh

This will call cargo build to build the project which generates a debug version of the compiler at ./target/debug/arena. The compiler is then automatically copied to the root directory of the project. This is needed, because the compiler is going to search for the arena libraries directory in the lib folder and the libarena.a comiler library in the same folder as the compiler itself. The testing framework (test.py) also requires the compiler to be in the root directory.

If the building process does not automatically find the LLVM utilities you may have to indicate the location of the installation. If you followed this guide it should be located in /usr/bin. Therefore you can build the project with:

$ LLVM_SYS_100_PREFIX=/usr/bin cargo b

For a release version of the compiler use:

$ ./build.sh -r

The compilation will take longer but the compiler will work faster.

If you want to be able to use the compiler from anywhere on your sistem you can use the installation script which automatically creates a symbolic link in the /usr/bin folder to the compiler so that your shell can find it from anywhere.

$ ./install.sh

To delete this symbolk link you can use the uninstall script:

$ ./uninstall.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published