4 октября состоялся выпуск 0.7.6 кроссплатформенного компилятора и стандартной библиотеки языка программирования C3.
C3 – это эволюция, а не революция: язык, похожий на C, для программистов, которые любят C.
C3 – это язык программирования, основанный на синтаксисе и семантике языка C, с целью его развития при сохранении привычности для программистов C.
Благодаря полной ABI-совместимости с C, можно без труда смешивать C и C3 в одном проекте. В качестве демонстрации, vkQuake был скомпилирован с небольшой частью кода, преобразованной в C3 и скомпилированной с помощью компилятора c3c.
Компилятор написан на языке C с использованием фреймворка LLVM (поддерживаются версии 17-22) и распространяется по лицензии GNU LGPL.
Стандартная библиотека распространяется по лицензии MIT.
Основные изменения:
- Добавлена compile-time функция
lengthof(). - Добавлена поддержка документирующих комментариев к отдельным членам структур, определениям ошибок и значениям перечислений.
- В
$definedтеперь можно использовать$alignof,$offsetofи$nameof. - Вывод общих параметров lhs -> rhs, например
List{int} x = list::NOHEAP. - Объединение generic- и обычных пространств имён модулей.
env::PROJECT_VERSIONтеперь возвращает версию вproject.json.- Теперь работает сравнение слайсов и массивов пользовательских типов, реализующих оператор
==. - Добавлены опции оптимизации
loop-vectorize,slp-vectorize,unroll-loopsиmerge-functions. - Добавлен вывод времени выполнения
$execпри использовании опции-vv. - Добавлен оператор
+++=. - Другие исправления ошибок и улучшения стандартной библиотеки.













