Из восьми целей печати важна только C, остальное отложено
flang печатает программу в восемь языков: C, Rust, Go, Java, C#, Python, Elixir, JavaScript. Выглядит как главная фича, но к цели языка отношения не имеет.
Цель C нужна ради самораскрутки: чтобы получить работающий компилятор, не имея ничего, кроме cc. Файл bootstrap/compiler_flang.c собирается обычным системным компилятором — это единственная внешняя зависимость, и она инструментальная, а не языковая. flang не надмножество C.
Владелец отложил явно и резко: JavaScript («пошёл нахер javascript»), остальные цели печати («мне похую на восемь целей»), интерпретаторы («потом займёмся»).
Как этим пользоваться. Прежде чем заводить работу — спросить, приближает ли она доказуемость. Если нет, не начинать. Это правило сэкономило больше времени, чем любая оптимизация.
Чем ограничено. Отложено ≠ выброшено: шесть генераторов на самом flang написаны и сверены побайтово, они просто не приоритет.
Связано: goal-of-the-language, four-pieces-of-javascript, our-own-machine-code-generator