Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/karmakrafts/manganese

LLVM based bootstrap compiler for the Ferrous programming language.
https://github.com/karmakrafts/manganese

bootstrap-compiler compiler compilers ferrous java java-21 java-preview lld lldb llvm lwjgl lwjgl3 programming-language remotery

Last synced: 3 months ago
JSON representation

LLVM based bootstrap compiler for the Ferrous programming language.

Awesome Lists containing this project

README

        

# Manganese

Bootstrap compiler backend for the Ferrous programming language written in Java.
This is a temporary compiler implementation used for self-hosting and thus it
only supports LLVM as its backend. **Other backends will not be supported**.

### Running
You can run the Manganese compiler by simply running the following command:

```shell
java -jar manganese-.jar [options]
```

If you need a list of all available options, run the compiler with the `-?` option.

### Embedding

If you want to embed this compiler into your own project, you can simply
use the provided Maven artifact in your build system of choice. The following
examples demonstrate the usage in Gradle and under Maven respectively:

```groovy
repositories {
maven { url = 'https://maven.covers1624.net' }
}
dependencies {
implementation group: 'io.karma.ferrous.manganese', name: 'manganese', version: 'VERSION', classifier: 'slim'
}
```

```xml



covers-maven
Covers Maven
https://maven.covers1624.net




io.karma.ferrous.manganese
manganese
VERSION

```

You can obtain the latest version from the provided repository batch at the top of the page.

### Building

In order to build the compiler, you can simply run the following command after
cloning the repository:

```shell
./gradlew build --info --no-daemon
```

or the following if you are using `cmd` under Windows:

```shell
gradlew build --info --no-daemon
```

This will produce three different `JAR` files under `build/libs` in the
project directory. The `slim` version can be used for development/embedding
since it does not contain all the shadowed dependencies.