LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Одной из причин появления LLVM и Clang был тот факт, что разрабы GCC были категорически против разделения своего детища на отдельные фронтенд и бэкенд, потому что паранойя Штальмана утверждала, что фронтенд GCC обязательно будет использоваться в проприетарных IDE. Поэтому в люниксовых редакторах и IDE так долго не было нормальной проверки кода, если не считать чудовищных костылей типа gccxml.

Сюда же можно добавить то, что у GCC нет стабильного промежуточного язычка а-ля LLVM IR, который позволил бы легко и непринуждённо делать компиляторы для других языков. В частности, именно из-за этого раньше была популярна промежуточная компиляция в C, чтобы GCC это мог схавать. Заметь, что с появлением LLVM это исчезло. При этом, промежуточный язычок у GCC есть (GIMPLE), просто авторы клали болт на его стабильность и адекватный тулинг вокруг него.

Исходная версия hateyoufeel, :

Одной из причин появления LLVM и Clang был тот факт, что разрабы GCC были категорически против разделения своего детища на отдельные фронтенд и бэкенд, потому что паранойя Штальмана утверждала, что фронтенд GCC обязательно будет использоваться в проприетарных IDE. Поэтому в люниксовых редакторах и IDE так долго не было нормальной проверки кода, если не считать чудовищных костылей типа gccxml.

Сюда же можно добавить то, что у GCC нет стабильного промежуточного язычка а-ля LLVM IR, который позволил бы легко и непринуждённо делать компиляторы для других языков. В частности, именно из-за этого раньше была популярна промежуточная компиляция в C, чтобы GCC это мог схавать. Заметь, что с появлением LLVM это исчезло. При этом, промежуточный язычок у GCC есть, просто авторы клали болт на его стабильность и адекватный тулинг вокруг него.