Сучасна українська мова програмування.
Треба:
- GNU/Linux
- Ціль 0.51.0
- Zig 0.15.2
bash scripts/build.sh debug linux-x86_64
./будування/{ВЕРСІЯ}/лінукс-ікс86_64/готове/мавкаБудування відбувається лише через GNU/Linux, так як Ціль наразі доступна лише там.
Мавку можна збудувати на різні платформи, але працездатність перевіряється насамперед на linux-x86_64.
Можливості на платформах відмінних від linux-x86_64 можуть бути обмеженими.
Доступні режими будування:
debugrelease
Доступні платформи будування:
linux-x86_64linux-aarch64macos-x86_64macos-aarch64windows-x86_64windows-aarch64android-aarch64wasm64
Для будування для Android треба вказати шлях до NDK:
ANDROID_NDK_HOME="~/Android/android-ndk-r27d" bash scripts/build.sh debug android-aarch64
До уваги: для платформ linux та android буде збудовано з нуля ncurses, readline та idn2.
Мавку написано мовою Ціль. Але. Деякі частини, такі як взаємодія з операційною системою (Linux/MacOS/Windows), написані мовою C (eng) (зараз зробити інакше не вийде). Тому під час розробки це треба мати наувазі - використання C (eng) лише для крайньої необхідності.
Усі файли, що написані мовою C (eng), розташовуються в папці external та підпапках відповідно до ОС.
Мавка, як і Ціль, майже не використовує Unicode - лише у випадках, де без нього не обійтись. Натомість використовується КД (Дієкод).
По причині того, що всі сучасні редактори і ОС за замовчуванням зберігають текстові файли використовуючи Unicode, у Мавці на вхід передаються саме Unicode-файли (UTF-8), але вони надалі перекодовуються в КД. І вже під час розбору (і далі) Unicode не використовується. По-суті, Unicode використовується лише для входу і виходу в ОС. Цього позбутись, щонайменше на Linux/MacOS/Windows, не вийде.
ДУЖЕ ВАЖЛИВО: так як Ціль ще не має досконалої підтримки зовнішніх дій для взаємодії з C (eng), усі значення які передаються через аргументи
мають бути рівно 64 біт! Тобто, якщо є потреба передати логічне, то його треба передавати як природне. Також це стосується адреси на логічне - не логічне*, а природне*. Приклад: пристрій_мавки_читати_кд.
В загальному: усі значення, окрім адреси, треба передавати як природне, ціле або д64. Але, якщо передається буфер, типу памʼять<п8>, тоді це нормально передавати його як п8*. Це стосується лише зовнішніх дій, які написані на C (eng), або дій які передаються в такі дії аргументом. Це також є причиною, чому розширення зараз стабільними зробити не вийде.
Запустити тести:
bash scripts/test.sh <шлях_до_мавки>