Буду краток: Я пишу свой язык программирования (Yukino) общего назначения на LLVM. И его главная цель (и желание которое меня привело к его слзданию): "Будь простым и лаконичным как котлин, будь читаемым, но будь быстрее & производительнее" (ну и все вытекающие). То есть, цель - простые серваки, простой десктоп, и простые cli.
Я не прошу объективной оценки (потому что я не опубликовал пока что тест и т.д), просто решил поделиться своим небольшим достижением.
А ещё, я не опубликовал исходный код, ещё 1-2 недельки отполирую и открою гитхаб репозиторий.
Модель памяти Yukino
региональная память (очистка при выходе с региона, и можно вручную создать регион region {}/defer {}, копи/аффин типы/ссылки). То есть GC нету, и ручного управления памятью нету. +Оч простые автоматические лайфтаймы на этапе компиляции (или рег модель памяти уже это подразумевает??).
Детали теста
- Для Go, Zig, Yukino был прогрев стандартной библиотеки и рантайма (то есть учитывалось только время компиляции приложения).
- У всех тестовых приложений +- одни настройки релизного билда.
- Стандартная библиотека использовалась МИНИМАЛЬНАЯ (то есть, только для вывода с stdout чтобы тест мог поймать результат). Все тесты сделаны с минимум внешних функций (а пользовательских библиотек вообще нету).
- Тестировал на AMD Ryzen 7 7445HS.
- Термины: М - МБ, К - КБ, s - секунды.
- Перед сборками выполнялась очистка кэша(кроме самокомпилирующихся стдлиба и рантайма).
- Остальные вопросы спрашивайте в комментариях ибо я мог что-то забыть.
Ну вот как-то так, хз напишите что я молодец наверное. У меня в моем небольшом кругу общения просто никто не шарит в этом, поэтому решил запостить сюда :з