Сборка из исходников
Нужны Ubuntu 24.04 (или другой Linux x86-64 с теми же пакетами), git и около 10 ГБ свободного места. Скрипт ставит
зависимости сборки и тестов (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 # примерно 7 минут с нуля; -j2 на небольшой машине
export PATH=$PWD/build/tools/oxl:$PATH
oxl --versionСборка даёт build/tools/oxl/oxl и статическую библиотеку рантайма build/runtime/liboxlrt.a; пути к исходникам стандартной
библиотеки и рантайма вшиваются в бинарник, поэтому oxl из дерева сборки работает, пока исходники на месте.
Варианты: -DCMAKE_BUILD_TYPE=Release (оптимизированный компилятор), -DOXL_SANITIZE=address,undefined
(санитайзеры), -DOXL_FUZZ=ON (фаззинг).
Проверка#
cd build && ctest -j1 --timeout 1800 -E 'docsite|vscode' # полный прогон около часа, кластерные тесты идут по одному
ctest -R 'docsite_unit|examples_projects' # быстрые проверки документации и примеровТест-сьют соответствия (conformance) запускается скриптом scripts/run_conformance.py, описание — conformance/README.md.
Для тестов ORM нужен PostgreSQL: export OXL_PG_DSN="$(scripts/pg_start.sh)".
Сайт документации и PDF из исходников#
oxl doc --site # build/site: открыть build/site/index.html
oxl doc --site-check # ссылки, обязательные страницы, запуск примеров (Д6/Д7)
oxl doc --serve --port 8080 # сервер для просмотра (Python)
oxl doc --build-server # build/oxl-docs: сервер на OxL с встроенным сайтом
oxl doc --pdf -o oxl.pdf # PDF (нужен Node.js с Playwright или Chromium)Расширение VS Code и грамматика#
(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 # проверка грамматикиУстройство проекта — архитектура; команды разработчика — docs/HANDOFF.md репозитория.