В честь сегодняшнего пре-релиза (0.2.4).
C3 (GitHub) - очередной «убийца» C на базе LLVM. Потихоньку разрабатывается шведским программистом (одна штука).
Ключевые особенности:
- компилятор написан на C
- поддержка LLVM 12-15 (насколько мне известно, ни один из конкурентов этого не может (привет, Odin, Zig и т.д и т.п.))
- полная C-ABI совместимость
- модули - нет хидерам!
- дженерики
- макросы, но не как в C
- слайсы
- контракты
- compile time and runtime reflection (плохопереводимая игра слов)
- SIMD «из коробки»
- и многое другое!
Из недостатков - практически спартанская стандартная библиотека, но так как реализованы ещё не все запланированные возможности, то в этом есть смысл.
macro int factorial($n)
{
$if ($n == 0):
return 1;
$else:
return $n * factorial($n - 1);
$endif;
}
extern fn void printf(char *fmt, ...);
fn void main()
{
int x = factorial(12);
printf("12! = %d\n", x);
}