MyNixOS website logo
Description

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++ or g++ installed, and an archiver such as ar 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
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.

Metadata

Version

0.24.1.0

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows