Сучасна українська мова програмування.
Треба:
- GNU/Linux
- Ціль 0.76.0
- Clang, LLVM, LLD, Make, CMake, etc
- llvm-mingw (для компіляції для Windows)
- osxcross (для компіляції для MacOS, треба MacOSX 14.0 SDK)
bash scripts/download_libs.shbash 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
Для будування для Windows треба вказати повний шлях до llvm-mingw:
LLVM_MINGW_PATH="/home/$USER/Compilers/llvm-mingw-20260616-ucrt-ubuntu-22.04-x86_64" bash scripts/build.sh debug windows-x86_64Для будування для MacOS треба вказати повний шлях до збудованого osxcross (MacOSX 14.0 SDK):
OSXCROSS_PATH="/home/$USER/Compilers/osxcross/target" bash scripts/build.sh debug macos-x86_64Для будування для Android треба вказати повний шлях до NDK:
ANDROID_NDK_HOME="/home/$USER/Compilers/android-ndk-r27d" bash scripts/build.sh debug android-aarch64Для всіх платформ, окрім wasm, будуть збудовані з нуля libuv, openssl, curl.
Для платформ linux та android будуть збудовані з нуля ncurses, readline.
git clone https://github.com/tpoechtrager/osxcross.git --depth=1
cd osxcross
wget -P tarballs https://github.com/roblabla/MacOSX-SDKs/releases/download/macosx14.0/MacOSX14.0.sdk.tar.xz
UNATTENDED=1 ./build.shМавку написано мовою Ціль. Але. Деякі частини, такі як взаємодія з операційною системою (Linux/MacOS/Windows) і взаємодія з мережею, написані мовою C (eng) (зараз зробити інакше не вийде). Тому під час розробки це треба мати наувазі - використання C (eng) лише для крайньої необхідності.
Усі файли, що написані мовою C (eng), розташовуються в папці external та підпапках відповідно до ОС.
Мавка, як і Ціль, майже не використовує Unicode - лише у випадках, де без нього не обійтись. Натомість використовується Дієкод.
По причині того, що всі сучасні редактори і ОС за замовчуванням зберігають текстові файли використовуючи Unicode, у Мавці на вхід передаються саме Unicode-файли (UTF-8), але вони надалі перекодовуються в Дієкод. І вже під час розбору (і далі) Unicode не використовується. По-суті, Unicode використовується лише для входу і виходу в ОС. Цього позбутись, щонайменше на Linux/MacOS/Windows, не вийде.
ДУЖЕ ВАЖЛИВО: так як Ціль ще не має досконалої підтримки зовнішніх дій для взаємодії з C (eng), усі значення які передаються через аргументи мають бути рівно 64 біт!
Запустити тести:
bash scripts/test.sh <шлях_до_мавки>