Home

Awesome

<h1>oktac <img src='https://git.sr.ht/~mikelma/oktac/blob/main/assets/okta-ottis.png' width='70'></h1>

The compiler of the okta programming language. For more information please visit the official website, and to quickly get okta running refer to the getting started section.

Currently, okta only supports the following platform and architecture combinations:

DISCLAIMER: This project, as well as the okta language itself, it's in a very early development state, expect bugs and frequent breaking changes.

How to build

There are two ways to compile oktac from source: using docker, or using cargo (the traditional way), chose the most combinient method for you.

The instructions for both methods assume the repository is cloned and that the working directory is set to the cloned repository:

git clone https://git.sr.ht/~mikelma/oktac
cd oktac

Using docker

First of all, check if the following dependencies are present in your host machine:

Next, execute the following command to build the docker container with the build environment:

docker build -t oktac-build .

The last step is to run the docker container as the following:

docker run --rm -it -v "$(pwd)":/home/rust/src oktac-build:latest

After some minutes, the building process should finish, providing an oktac static binary in the current directory.

Using cargo

The first step is to install the following dependencies (if not already present):

The next step is to build the compiler using rust's cargo. Note that the --release flag isn't mandatory, however it is strongly recommended, as if this flag isn't provided the debug version of oktac will be built instead.

cargo build --release

The output binary shoud be located in the target/release/oktac path.

How to use

This section covers the most common use cases of oktac, for more information run oktac --help.

Compiling okta programs

Useful debugging options

Language reference

The language's reference is also provided with the compiler's source code. The reference can be found in docs/reference.md inside this repo, or online here. You can also convert the reference to a pretty PDF using pandoc and wkhtmltopdf:

pandoc --pdf-engine=wkhtmltopdf --css docs/style.css docs/reference.md -o reference.pdf

Contributing

If you want to contribute or found a bug, please take a look at the contributing section of the okta website.

License

Oktac is distributed under the terms of the GLPv3 license. See LICENSE for more details.

Special thanks