OxL Reference

Building from source

You need Ubuntu 24.04 (or another Linux x86-64 with the same packages), git and about 10 GB of free space. The script installs the build and test dependencies (LLVM 18, clang, lld, lldb, gtest, io_uring, nghttp2, OpenSSL, SQLite, PostgreSQL, protobuf, Node.js):

sh
git clone https://github.com/DesCaldnd/OxwaldLink.git && cd OxwaldLink
scripts/install_deps.sh
apt-get install -y ccache

cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
      -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
cmake --build build -j4
export PATH=$PWD/build/tools/oxl:$PATH
oxl --version

The build produces build/tools/oxl/oxl and the static runtime library build/runtime/liboxlrt.a; the paths to the standard library sources and the runtime are compiled into the binary, so oxl from the build tree works as long as the sources stay in place.

Variants: -DCMAKE_BUILD_TYPE=Release (optimized compiler), -DOXL_SANITIZE=address,undefined (sanitizers), -DOXL_FUZZ=ON (fuzzing).

Checking#

sh
cd build && ctest -j1 --timeout 1800 -E 'docsite|vscode'
ctest -R 'docsite_unit|examples_projects'

The conformance suite runs with scripts/run_conformance.py, described in conformance/README.md. The ORM tests need PostgreSQL: export OXL_PG_DSN="$(scripts/pg_start.sh)".

The documentation site and PDF from source#

sh
oxl doc --site
oxl doc --site-check
oxl doc --serve --port 8080
oxl doc --build-server
oxl doc --pdf -o oxl.pdf

The VS Code extension and the grammar#

sh
(cd tools/vscode && npm install && npx vsce package --allow-missing-repository --skip-license)   # oxl-lang-*.vsix
code --install-extension tools/vscode/oxl-lang-*.vsix
python3 tools/tree-sitter-oxl/scripts/check.py -v

The structure of the project: architecture; developer commands: docs/HANDOFF.md of the repository.

OxL 1.0.0-beta · Documentation version 1.0.0-beta© OxwaldLink · generated from the Standard, the std sources and the guides