Skip to content

mavka-ukr/mavka

Repository files navigation

Мавка

Сучасна українська мова програмування.

Будування

Треба:

  • GNU/Linux
  • Ціль 0.64.0
  • Zig 0.15.2 (необовʼязково на і для linux-x86_64, необхідно для "кроскомпіляції")
bash scripts/build.sh debug linux-x86_64

./будування/{ВЕРСІЯ}/лінукс-ікс86_64/готове/мавка

Будування відбувається лише через GNU/Linux, так як Ціль наразі доступна лише там. Мавку можна збудувати на різні платформи, але працездатність перевіряється насамперед на linux-x86_64. Можливості на платформах відмінних від linux-x86_64 можуть бути обмеженими.

Доступні режими будування:

  • debug
  • release

Доступні платформи будування:

  • linux-x86_64
  • linux-aarch64
  • macos-x86_64
  • macos-aarch64
  • windows-x86_64
  • windows-aarch64
  • android-aarch64
  • wasm64

Для будування для Android треба вказати повний шлях до NDK:

ANDROID_NDK_HOME="/home/kohutd/Android/android-ndk-r27d" bash scripts/build.sh debug android-aarch64

Перед будуванням можна завантажити додаткові бібліотеки за допомогою:

bash scripts/download_libs.sh

Для платформ 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 біт!

Тестування

Запустити тести:

bash scripts/test.sh <шлях_до_мавки>

About

Сучасна українська мова програмування

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages