AXIOM Документація Axiom
ENBLACKGRAYWHITE
Axiom · dark

Стандартні модулі

У цій документації стандартна бібліотека розглядається як FALL-подібний набір малих модулів із детермінованими API.

Stdlib Axiom не повинна бути монолітною «магічною runtime». Модуль має явно показувати, чи він pure, чи потребує OS capability, чи працює з caller-provided storage.

МодульДля чогоПринцип
coreбазові типи, result, option, viewбез OS
textUTF, parsing, formattingtwo-pass для output
mathарифметика, geometryдетерміновані operations
math.bitbit operations, CRC, target opsunsupported capability = compile error
iostream abstractionsчерез Self Type
fsfiles/pathOS capability
netsocket/address/protocolasync/resumable operations
timemonotonic/wall clockявне джерело часу
syncatomic/mutex/channel/tasksemantic happens-before
membundle/two-pass/regionsбез general heap
targettarget capabilitiescompile-time information
hardwareMMIO/GPIO/SPI/I²Cпривілейований boundary

Bit operations — не оператори

Target-aware stdlibAxiom
1import math.bit23crc_packet(view<const u8> data) -> u32:4    RETURN math.bit.crc32(data)
1

Bit API імпортується явно.

3

Звичайна функція.

4

Якщо target не має required CRC capability і API позначене hardware-only, compiler видає target capability error замість тихої емуляції.

Форматування без hidden allocation

Deterministic text outputAxiom
1make_log(u64 id, text state) -> two_pass<text>:2    RETURN text.format("job {}: {}", id, state)
1

Результат форматування — планована операція.

2

Caller може запитати size, дати buffer і тільки тоді виконати formatting.