Пропал Калабуховский дом

При разработке GCC хотят использовать C++. Для каждого, кто представляет себе, что такое bootstrapping — совершенно ужасная новость.

Для тех, кто не знает, но понял первое предложение — поясню. C в вариантах типа ANSI C, C90 и тому подобных — это язык, простой неоптимизирующий компилятор для которого можно написать за несколько дней. Если разрабатывается какая-то новая «платформа», то есть процессор+ОС, то очень часто для них сначала разрабатывается такой компилятор, а затем с его помощью компилируется что-то более приемлемое, типа того же GCC. В отличие от многих GNU-образных проектов, GCC пишется на достаточно «портируемом» диалекте C, и вышеописанный трюк вполне проходит (например, так GCC появился в Minix 3).

Другой вариант — кросскомпиляция. Мы сразу делаем backend для GCC, генерирующий код для «целевой» платформы, с его помощью компилируем тот же GCC, и затем переносим его куда надо. Тут есть свои сложности, и не всегда этот путь достаточно удобен. Во всяком случае, всегда хочется иметь возможность скомпилировать GCC чем-то невероятно простым. Этот путь разработчики GCC сознательно «закрывают». Минимально «вменяемый» компилятор C++ писать просто так никто не будет — вместо «нескольких дней» получится срок разработки порядка «нескольких месяцев».

Ну и в заключение хотелось бы сказать, что правильно использовать C++ не получается ни у кого :) GCC вряд ли станет исключением.

Пропал Калабуховский дом: 4 комментария

  1. Ну так если это много кому надо, то наверняка народ заведёт ветку на C и будет её поддерживать, разве нет?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *