OxL Справочник OxL
РусскийEnglish

Привет, мир и первый пакет

Один файл#

Программа на OxL — один файл .oxl или пакет. Файл с функцией main запускается напрямую:

oxl✓ проверяется в CI
// hello.oxl
fn main() io {                  // io — эффект: функция пишет в stdout
  let name = env("OXL_DEMO_NAME") ?? "мир"   // env возвращает str?; ?? подставляет значение при none
  print("Привет, {name}!")      // {name} — интерполяция строки
}
Вывод
Привет, мир!
sh
oxl run hello.oxl      # собрать и запустить
oxl check hello.oxl    # только проверить типы и эффекты, без кодогенерации
oxl fmt hello.oxl      # привести к каноническому виду (oxl fmt --check — только проверить)

Всё, что делает функцию «нечистой», видно в её сигнатуре: io, net, time, db, fs… Функция без эффектов помечается pure. Компилятор не даст вызвать io-функцию из pure (§6.2, диагностика effects).

Пакет#

sh
oxl new hello          # шаблон cli; --template lib | service
cd hello
oxl run                # собрать и запустить src/main.oxl
oxl test               # тесты из test-объявлений

oxl new создаёт каталог с двумя файлами:

toml
# oxl.toml
[package]
name = "hello"
version = "0.1.0"
edition = "2027"

и src/main.oxl — корневой модуль пакета; main в нём — точка входа (§2.4). Остальные модули — файлы в src/; use подключает их и модули стандартной библиотеки (use std.io { File }). Манифест подробно — формат oxl.toml.

Тесты живут рядом с кодом:

oxl✓ проверяется в CI
fn add(a: i32, b: i32) -> i32 pure => a + b

test "add sums two numbers" {
  assert add(2, 3) == 5
  assert_eq(add(-2, 2), 0)
}

oxl test запускает все test-объявления пакета; вид теста (unit, integ, sim) и фильтры — в руководстве по тестам.

Дальше#

  • Тур по языку: типы, ошибки, конкурентность, сервисы, акторы, саги, хранилище, кластер, тесты, развёртывание.
  • Примеры: полные проекты, которые можно скачать и запустить.
  • Настройка редактора: подсветка, подсказки, отладчик.

См. также

OxL 1.0.0-beta · Версия документации 1.0.0-beta© OxwaldLink · сгенерировано из Стандарта, исходников std и руководства