Комментарии 10
Можете накидать идей для будущих фич
Лично для меня хорошая стандартная библиотека значит намного больше, чем синтаксис. Но это такая фича, что быстро её не сделать )
многопоточка, например есть mpsc в Rust оч удобная, правда из-за арк нюансы, но они невелируются удобной многопоточкой, поздравляю
Обычный следующий шаг в таких случаях - переписать компилятор языка с C++ на Onyx, в процессе и идеи будущих фич появятся :)
К этому я и пытаюсь стремиться) Но пока что не знаю как это делать без LLVM апи. Наверное придется траслировать код в IR
Обычно так и делается. У LLVM есть свой frontend и backend: frontend LLVM транслирует с какого-нибудь языка в IR, а бакенд транслирует с IR в машинные коды выбранной платформы. Между ними LLVM делает миллион своих оптимизаций над IR.
Все что вам надо, это написать frontend LLVM для Onyx на Onyx.
Замечательная статья, продолжайте!
Вижу, что некоторые комментаторы подталкивают вас далеко вперёд, но я бы хотел обратить внимание на очень важный момент: на работу с памятью. Сейчас у вас лишь есть выделение памяти на стеке (alloca в llvm), но вы ведь 100% захотите выделять память и в куче тоже. Но тогда сразу нужно подумать о том, кто ответственен за это: или разработчик (как в C malloc/free, как в C++ new/delete) или язык (через GC как во многиех языках или посложнее) или как-то ещё.
Это обязательная история, но после этого вас остановит только фантазия
Вы абсолютно правы, и я бы не хотел повторять историю гошки, то есть без GC. Думаю, сделать операторы new/delete как в плюсах потому что они как по мне более красивые что-ли. Однако создание объектов в куче может быть полезным только в том случае, если в языке будут добавлены указатели. Сейчас указателей нет, хотя в скором времени планирую добавить. Спасибо за поддержку, я обязательно буду продолжать писать про свой язык) Ждите следующую пачку обновлений!

Я написал компилятор на C++ при помощи LLVM (2)