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):
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 --versionThe 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#
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#
oxl doc --site
oxl doc --site-check
oxl doc --serve --port 8080
oxl doc --build-server
oxl doc --pdf -o oxl.pdfThe VS Code extension and the grammar#
(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 -vThe structure of the project: architecture; developer commands: docs/HANDOFF.md of the repository.