Zeolite is a statically-typed, general-purpose programming language.
Zeolite is an experimental general-purpose programming language. See Zeolite on GitHub for more details.
The installation process is still a bit rough, and therefore must be done in a few stages:
Ensure that you have a C++ compiler such as
clang++
org++
installed, and an archiver such asar
installed, all callable from a shell.Install the binaries using
cabal
. After this step, the compiler itself is installed, but it cannot actually create executables from source code.
cabal install zeolite-lang
Execute the setup binary that gets installed by
cabal
. This will give you a series of prompts to verify the binaries above. It will then automatically build the supporting libraries.
# By default, setup is interactive.
zeolite-setup
# To choose the c++ and ar binaries non-interactively, include them as args.
zeolite-setup /usr/bin/clang++ /usr/bin/ar
# Or just choose the 1st match for each.
zeolite-setup 1 1
# Use -j n before other options to execute n steps at a time in parallel.
zeolite-setup -j 4
(Optional) As a sanity check, compile and run
example/hello
. Please create an issue on GitHub if you encounter any errors.
ZEOLITE_PATH=$(zeolite --get-path)
zeolite -p "$ZEOLITE_PATH/example/hello" -I lib/util --fast HelloDemo hello-demo.0rx
$ZEOLITE_PATH/example/hello/HelloDemo
The code examples are located in $ZEOLITE_PATH/example
. You should not normally need to use $ZEOLITE_PATH
outside of running the included tests and examples.
Testing of Possible Traces
This module does not have an executable code. Instead, it is just meant for sanity-checking of zeolite
's collection of possible trace contexts.
To compile:
ZEOLITE_PATH=$(zeolite --get-path)
zeolite -p $ZEOLITE_PATH -r tests/traces
Note that there will be warnings about unreachable code.
You can then examine zeolite -p $ZEOLITE_PATH --show-traces tests/traces
to see what trace contexts zeolite
picked up during compilation. Every line that is commented with TRACED
should have an entry in --show-traces
.