Обновить

Комментарии 10

Можете накидать идей для будущих фич

Лично для меня хорошая стандартная библиотека значит намного больше, чем синтаксис. Но это такая фича, что быстро её не сделать )

Я с самого начала был нацелен и настроен на то, что нужно будет написать не только стд, но и приятную стд, а не как у плюсов)

многопоточка, например есть mpsc в Rust оч удобная, правда из-за арк нюансы, но они невелируются удобной многопоточкой, поздравляю

Многопоточки пока что нет, но хотелось бы добавить её. Для начала мне стоит самому разобраться полностью как она работает и как воссоздать довольно удобное решение в IR дракона

Обычный следующий шаг в таких случаях - переписать компилятор языка с 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 как в плюсах потому что они как по мне более красивые что-ли. Однако создание объектов в куче может быть полезным только в том случае, если в языке будут добавлены указатели. Сейчас указателей нет, хотя в скором времени планирую добавить. Спасибо за поддержку, я обязательно буду продолжать писать про свой язык) Ждите следующую пачку обновлений!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации