OxL Reference

Installation

Version 1.0.0-beta supports Linux x86-64. There are two ways:

WayWhen to choose it
From the archive oxl-1.0.0-beta-linux-x86_64.tar.xznormal work: compiler, standard library, editor extensions, documentation and examples in one directory
From sourcedeveloping OxL itself, an unusual platform, or a build with sanitizers

After installing, run the checks, then set up your editor and go through the first program.

System requirements#

  • Linux x86-64 with kernel 5.10 or newer, 5.15+ recommended (the runtime uses io_uring). Tested on Ubuntu 24.04.
  • 2 GB of RAM and 1 GB of disk for the installation; 4 GB of RAM to build large programs with LTO.
  • Building OxL programs needs a linker and the system libraries of the runtime. On Ubuntu 24.04 / Debian 12+:
sh
sudo apt-get install -y clang-18 lld-18 libstdc++-13-dev \
  liburing-dev zlib1g-dev libssl-dev libsqlite3-dev libpq-dev libpcre2-dev libnghttp2-dev
sudo apt-get install -y lldb-18

If there is no clang++ command in PATH, name the linker explicitly: export OXL_LINKER=clang++-18.

What each package is for:

PackageWhy
clang-18, lld-18, libstdc++-13-devoxl build links the object file of a program with the static runtime library (clang++, lld under LTO)
liburing, zlib, openssl, sqlite3, libpq, pcre2, nghttp2 (with -dev)the libraries every program links with: I/O, compression, TLS, ORM and built-in storage, regular expressions, HTTP/2 and gRPC
libllvm18, libclang1-18oxl itself uses LLVM for code generation and libclang for import c "header.h"
lldb-18lldb-dap for the debugger
python3 (≥ 3.9)oxl doc --site / --serve, oxl doc --pdf (the oxl-docs server from the archive does not need Python)
Node.js ≥ 18 with Playwright or ChromiumPDF only (oxl doc --pdf)

The exact list of run-time dependencies is fixed by the release build; if oxl build reports linking failed: cannot find -l…, install the -dev package of that library. The image written by oxl build --image already contains the needed .so files.

macOS and Windows: platforms.

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