Обсуждение возможных планов развития GCC 5.0

Среди разработчиков набора компиляторов GCC развернулась обширная дискуссия о планах и задачах для будущей ветки GCC 5.0. При этом основной темой размышлений о возможных путях развития GCC, стало его обсуждение в контексте стремительно набирающего популярность проекта LLVM (Low Level Virtual Machine).

Так активный разработчик GCC Дэвид Малкольм (David Malcolm) из компании Red Hat подробно изложил своё видение будущего проекта, которое сводится к предложению переписать GCC с Си на Си++, разработать полноценный API для подключения плагинов, а также в движении GCC в сторону более модульной структуры – реализации базовой части в виде набора самодостаточных библиотек.

Идея заключается в том, что подобные библиотеки, из которых будет состоять GCC 5, смогут очень легко внедряться в приложения, также легко, как это делается в LLVM. Дэвид в частности заявляет: "На что я очень надеюсь, что GCC будет двигаться в сторону коллекции библиотек, которые могут быть свободно внедрены в любые лицензионно-совместимые приложения. LLVM завоевала популярность для случаев, где нужна JIT-компиляция. Я понимаю, что JIT-компиляция имеет совсем разные характеристики по сравнению с классическим предварительным компилированием (ahead-of-time compiler). В идеале, GCC превратится в набор разделяемых библиотек, которые могут быть слинкованы как статически, так и динамически. Запускаемые файлы превращаются в тонкую обертку, которая лишь вызывает нужные библиотеки".

Приведение GCC к модульной структуре - это очень сложное предприятие. Поэтому Дэвид добавляет: "Подобная переработка архитектуры сегодняшнего GCC очень сложна (быть может, даже и невозможна), хотя бы потому, что мы не можем однозначно решить к какому отдельному модулю, какой код компилятора должен принадлежать. И важный момент, который мы должны сначала предпринять, это принять некую карту развития, при этом вероятно нужно сразу смириться с тем фактом, что модульный GCC 5 по сравнению с текущим GCC, - будет обладать меньшей функциональностью, будет также менее оптимизированным и менее мощным, чем сегодняшний GCC. Я не знаю, возможно ли это осуществить вообще (поэтому я иногда очень пессимистичен к этому проекту), в том числе потому, что многие платные разработчики GCC работают на компании, которые не допустят столь масштабных изменений".

Кроме того, препятствием для потенциального сближения GCC и LLVM является то, что компиляторы LLVM поставляются под более либеральной лицензией BSD, которая более любима компаниями и более совместима со сторонним программным обеспечением, тогда как GCC распространяется под лицензией GPLv3. Даже если разработчики и согласятся в будущем сфокусироваться на модульности будущего GCC, это потребует ни мало времени, пока это станет всё-таки возможным.

Источник:
http://www.opennet.ru/opennews/art.shtml?num=33396

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>