An open API service indexing awesome lists of open source software.

https://github.com/kit-ty-kate/labrys

A toy language based on LLVM that implements the System Fω type-system
https://github.com/kit-ty-kate/labrys

compiler language llvm ocaml programming-language type-system

Last synced: 10 days ago
JSON representation

A toy language based on LLVM that implements the System Fω type-system

Awesome Lists containing this project

README

        

Labrys is a toy language based on LLVM that implements the System Fω type-system.

Labrys logo

### Features

* Effects
* Checked exceptions (via effects)
* LLVM backend
* Higher-order polymorphism

### Runtime requirements

* A C compiler: `cc` is used by default

### Build-time requirements

* The latest OPAM and the latest OCaml (https://opam.ocaml.org/)
* Ott (for building documentation only)
* Rubber (for building documentation only)

### Installation

```
$ opam pin add labrys .
```

### Usage

Examples of the syntax or features can be seen in the `examples` directory

To compile an example you have to use the following command:

```
$ labrys build-program examples/Hello.sfw
```

Just replace `Hello` by the name of the module you want to compile (such as `NativeFact` or `Fact`)

Then you can execute the resulting program with:

```
$ ./a.out
```

To know more about the compiler options, use the `--help` argument like:

```
$ labrys --help
$ labrys build-program --help
```

Enjoy !