Skip to content

lhmouse/asteria

Repository files navigation

The Asteria Programming Language

Compiler Category
GCC 7 🥇Primary
Clang 11 🥈Secondary

asteria

Asteria is a procedural, dynamically typed programming language that is highly inspired by JavaScript but has been designed to address its issues.

How to Build

First, you need to install some dependencies and an appropriate compiler, which can be done with

# For Debian, Ubuntu, Linux Mint:
# There is usually an outdated version of meson in the system APT source. Do
# not use it; instead, install the latest one from pip.
sudo apt-get install ninja-build python3 python3-pip pkgconf g++  \
        libpcre2-dev libssl-dev zlib1g-dev libedit-dev uuid-dev
sudo pip3 install meson
# For MSYS2 on Windows:
# The `iconv_open()` etc. functions are provided by libiconv. Only the MSYS
# shell is supported. Do not try building in the MINGW64 or UCRT64 shell.
pacman -S meson gcc pkgconf pcre2-devel openssl-devel zlib-devel  \
        libiconv-devel libedit-devel libutil-linux-devel
# For macOS:
# The `gcc` command actually denotes Clang, so ask for a specific version
# explicitly.
brew install meson pkgconf gcc@10 pcre2 openssl@3 zlib libedit
export CXX='g++-10'

Then we can build as usual

meson setup build_debug
meson compile -Cbuild_debug

Finally we launch the REPL, as

./build_debug/asteria

README

If you need only the library and don't want to build the REPL, you may omit libedit from the dependencies above, and pass -Denable-repl=false to meson.

License

BSD 3-Clause License