The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

GCC 4.8.0 будет собираться компилятором C++

16.08.2012 00:22

План частичного перевода набора компиляторов GCC с языка Си на Си++ начинает сбываться - осуществлено слияние веток cxx-conversion и trunk. Начиная с GCC 4.8 для сборки GCC может быть использован только компилятор С++. Целью перехода к использованию языка C++ для разработки GCC является чистка и переработка отдельных внутренних компонентов проекта, в которых наблюдаются проблемы с небезопасной типизацией. Такие компоненты постепенно будут переписаны с использованием классов и шаблонов C++. Полная переработка GCC на C++ не входит в планы разработчиков.

  1. Главная ссылка к новости (http://developers.slashdot.org...)
  2. OpenNews: Обсуждение возможных планов развития GCC 5.0
  3. OpenNews: Релиз набора компиляторов GCC 4.7. Проекту GCC исполнилось 25 лет
  4. OpenNews: Релиз набора компиляторов GCC 4.6.0
  5. OpenNews: В кодовой базе GCC разрешено использование языка C++
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/34588-gcc
Ключевые слова: gcc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (78) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:34, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    а g++ будут собирать при помощи gcc?
     
     
  • 2.2, Да (?), 00:38, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю, что нет. Скорее всего это будет обыкновенный bootstrap: для g++ нужен будет g++. Но нужно будет отдельно проверять тем, кому это в самом деле интересно.
     
     
  • 3.16, Andrey Mitrofanov (?), 11:11, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >обыкновенный bootstrap:

    Спасибо! Он не знал.Ж)

     

  • 1.3, BratSinot (?), 01:57, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А ведь два года прошло с момента "разрешения" использования C++ в GCC... Я надеялся что все забудут :)
     
  • 1.4, анон (?), 02:27, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надо было сразу шлангом
     
  • 1.5, lucentcode (ok), 03:46, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Давно пора. Использование C++ повлияет и на архитектуру проекта. Она станет более стройной. Разделение на низкоуровневый слой и стройную высокоуровневую архитектуру поможет ускорить развитие проекта.
     
     
  • 2.6, анон (?), 04:20, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    ... или превратить проект в кашу.
     
     
  • 3.7, jerhsell (?), 06:35, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Он уже каша. Если вы про код. Я вот про код.
     
  • 3.39, lucentcode (ok), 14:58, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это зависит от разработчиков, не от ЯП. Можно и на PHP писать прекрасный код. А на великолепном Ruby напортачить так, что и не разберёшься потом что и где. Качество кода никак не коррелирует с ЯП.
     
     
  • 4.77, res2500 (?), 08:29, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    набыдлокодить можно на любом ЯП
     
  • 2.8, Aquarius (ok), 08:20, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > ... поможет ускорить развитие проекта.

    и замедлить его сборку

     
  • 2.24, dq0s4y71 (??), 12:35, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чушь. Использование одного языка вместо другого никак не сделает архитектуру "более стройной".
     
     
  • 3.27, тоже Аноним (ok), 13:38, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не сделает, но позволит сделать.
     
     
  • 4.33, dq0s4y71 (??), 14:19, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это относится почти к любому ЯП.
     
     
  • 5.67, Homo anonymous (?), 21:48, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Это относится почти к любому ЯП.

    fixed: Это относится почти к любому ЯООП.

     
  • 3.41, lucentcode (ok), 15:06, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ошибаетесь Сам ЯП никак не влияет на качество кода, и качество архитектуры прое... большой текст свёрнут, показать
     
     
  • 4.43, dq0s4y71 (??), 15:25, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Но люди использующие к месту ООП, проектирую более стройные и удобные, легкоподдерживаемые интерфейсы.

    Сомневаюсь. Добавьте метод в базовый класс и ваш "стройный и удобный, легкоподдерживаемый интерфейс" летит ко всем чертям - ВСЕ библиотеки, использующие этот класс, надо перекомпилировать, иначе теряется бинарная совместимость.

     
     
  • 5.44, Аноним (-), 15:29, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    это проблема C++ ABI у gcc ;-)
    у некоторых этой проблемы нету.
     
     
  • 6.47, kurokaze (ok), 15:36, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > это проблема C++ ABI у gcc ;-)
    > у некоторых этой проблемы нету.

    как страшно жить

     
  • 6.49, dq0s4y71 (??), 15:37, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > у некоторых этой проблемы нету.

    Это у кого же? Назовите мне компилятор C++, который позволит изменить базовый класс без необходимости перекомпиляции всего наследующего кода? :)

     
     
  • 7.57, Ы (?), 17:39, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    100500 раз просим!
    Но сдаётся мне что кто просто зря побеспокоил водную поверхность ...
     
  • 5.50, тоже Аноним (ok), 16:13, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Мне, как "крестовику", добавление методов в базовый класс, используемый многими библиотеками, представляется куда более страшным и опасным делом, чем перекомпиляция этих библиотек.
    Особенно если этот базовый класс предоставляет именно интерфейс. Зачем в интерфейсе, уже используемом многими библиотеками, что-то менять? Нужен новый функционал - применяйте наследование. Однако, если действительно меняется интерфейс, странно не затронуть тех, кто им пользуется.
     
     
  • 6.59, dq0s4y71 (??), 18:02, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем в интерфейсе, уже используемом многими библиотеками, что-то менять?

    Добро пожаловать в реальный мир! :)

     
     
  • 7.61, тоже Аноним (ok), 18:54, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо, вы так делаете каждый день.
     
     
  • 8.63, dq0s4y71 (??), 19:34, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да, каждое утро, после пробуждения ... текст свёрнут, показать
     
  • 5.56, Аноним (-), 17:25, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальные люди добавляют виртуальные методы в конец списка и не имеют проблем — как и научено в манах по поддержанию бинарной совместимости. Гуглить маны KDE и Qt.
     
     
  • 6.58, Ы (?), 17:41, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Те есть тот же гцц подойдёт? Ты редкостный петросян! :)
     
  • 3.52, Аноним (-), 16:58, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Подумай ещё раз.
     

  • 1.11, Аноним (-), 10:03, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >>> компоненты постепенно будут переписаны с использованием классов и шаблонов C++.

    Ух ты теперь gcc будет себя компилировать неделю ???

     
     
  • 2.18, Andrey Mitrofanov (?), 11:15, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >будет себя компилировать неделю ???

    Интел Корп. [и дилеры] будет рад продать Вам новейших надцатиядрёных утюгов для решения Вашего затруднения.

     
     
  • 3.80, Клыкастый2 (?), 10:08, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    clang решит его затруднения. а надцатиядерные утюги интел продаст дистростоителям вашего дистра.
     
  • 2.48, kurokaze (ok), 15:37, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ух ты теперь gcc будет себя компилировать неделю ???

    либра собирается за 40 минут, а она намного объемнее


     

  • 1.13, an. (?), 10:22, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати, подобные работы ведутся сейчас и в gdb...
     
     
  • 2.14, Аноним (-), 10:47, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    этим клоунам не помещало бы для начала уйти с cvs
     
     
  • 3.21, Аноним (-), 11:31, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    они давно уже на svn
     
     
  • 4.64, Xasd (ok), 19:39, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    офигеть какой проресс!</sarcasm> :-D :-D :-D
     
  • 4.72, Аноним (-), 23:38, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    зачем же ты врёшь, они сидят на cvs
     
     
  • 5.73, Аноним (-), 23:40, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    вот прув http://sources.redhat.com/gdb/current/

    и патчи они принимают только относительно свего cvs

     
     
  • 6.95, qux (ok), 13:06, 18/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Из-за чего драма?

    http://www.gnu.org/software/gdb/current/

    > git clone git://sourceware.org/git/gdb.git

    Интервал синхронизации мешает? Так ваше письмо дольше идти будет.

     

  • 1.20, Аноним (-), 11:28, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну все прындец, станет еще хуже
     
  • 1.22, 1q2w3e (?), 11:50, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему в каментах к новости о GCC нет ни одного упоминания о Clang?
    Непорядок!
     
     
  • 2.23, Альтернимус (?), 12:33, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А почему в каментах к новости о GCC нет ни одного упоминания
    > о Clang?
    > Непорядок!

    Отключите криокамеру, уважаемый.
    >> Сообщение от анон on 16-Авг-12, 02:27
    >> Надо было сразу шлангом

     
  • 2.36, Аноним (-), 14:47, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    когда-то CLang за это ругали, теперь GCC догоняет
     
  • 2.81, Клыкастый2 (?), 10:09, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А почему в каментах к новости о GCC нет ни одного упоминания
    > о Clang?
    > Непорядок!

    уже есть. я добавил :)

     

  • 1.25, Синоним (?), 13:01, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Адептов Си всё меньше, это испытание нашей веры. Нужно всё это вынести, и там за горами всё станет как прежде...
     
     
  • 2.26, dq0s4y71 (??), 13:20, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    <вброс>Да ладно! Религиозный фанатизм, по-моему, как раз характерен для адептов С++. Потому, что они "мыслят классами", а не головой, и думают, что если используется ООП, то архитектура автоматически становится "стройной". Ну, а мы, наСИльники, понимаем, что Си - плохой язык, но лучше пока не придумали ;))</вброс>
     
     
  • 3.28, Crazy Alex (ok), 14:03, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ок, продолжим :-)

    Вы, наСИльники, никак не можете понять, что плюсы ни одного инструмента не отбирают, только добавляют. А разработчики gcc явно имеют достаточную квалификацию чтобы их грамотно использовать.

    Ну и "проблемы с небезопасной типизацией" наСИльников не волнуют ;-)

     
     
  • 4.32, dq0s4y71 (??), 14:17, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > плюсы ни одного инструмента не отбирают, только добавляют

    Вот это-то и плохо. "Сущности не следует умножать без необходимости". http://yosefk.com/c++fqa/images/cat.png

    > Ну и "проблемы с небезопасной типизацией" наСИльников не волнуют ;-)

    Решая "проблему небезопасной типизации", С++ создаёт другую проблему: геморрой при преобразовании типов.

     
     
  • 5.34, тоже Аноним (ok), 14:29, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, разработчиков больше волнуют проблемы небезопасной типизации, чем легкость преобразования типов.
    Полагаю, они учитывают правило "код читается чаще, чем пишется" и предпочитают доверить компьютеру те проверки, которые он может выполнять автоматически. Даже если это чуть уменьшит продуктивность программистов.
     
     
  • 6.35, dq0s4y71 (??), 14:44, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, насколько я понимаю, "небезопасная типизация" их вообще не волновала. Они перешли на С++, в основном, ради шаблонов.
     
     
  • 7.38, тоже Аноним (ok), 14:51, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Оглашался список того, ради чего они перешли. Там и STL вместо велосипедов, и smart pointers вместо сборщика мусора, и inline вместо макросов, и другие приятные вещи. Безопасная типизация, как минимум, не ухудшит качество самого кода, при этом фактически заставит сделать его ревизию. Почему нет?
     
     
  • 8.40, dq0s4y71 (??), 15:04, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да на здоровье С самого начала почему на С не стали писать И почему полная п... текст свёрнут, показать
     
     
  • 9.42, тоже Аноним (ok), 15:22, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрите историю GCC и C хотя бы в Википедии Потому что они не маются дурью... текст свёрнут, показать
     
     
  • 10.45, dq0s4y71 (??), 15:34, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Угу И вы тоже И увидите, что Столлман начал писать его вообще на Паскале - ещё... текст свёрнут, показать
     
     
  • 11.51, тоже Аноним (ok), 16:18, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ответ на ваш вопрос почему не написали на С с самого начала тривиален ... текст свёрнут, показать
     
     
  • 12.55, dq0s4y71 (??), 17:10, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не совсем так Си с классами появился в 1979 г , в С его переименовали в 198... текст свёрнут, показать
     
     
  • 13.62, тоже Аноним (ok), 19:00, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И до первого стандарта С оставалось еще два года Между прочим, когда вышла п... текст свёрнут, показать
     
     
  • 14.65, dq0s4y71 (??), 19:42, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я так и не понял, при чём здесь стандарты Главный причина выбора ЯП для решен... текст свёрнут, показать
     
     
  • 15.78, тоже Аноним (ok), 08:50, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Стандарты здесь ни при чем Но всерьез впрягаться писать что-либо сложное на язы... текст свёрнут, показать
     
  • 15.96, Аноним (-), 21:11, 18/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Э нет, простите Тут вы в корне неправы Инфраструктура наличие библиотек, рынк... текст свёрнут, показать
     
  • 5.53, Синоним (?), 16:58, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Решая "проблему небезопасной типизации", С++ создаёт другую проблему: геморрой при преобразовании
    > типов.

    Именно в этом проблема. А жаль, мне хочется шаблонов немножко... Но уш лучше простота в преобразовании.

     
     
  • 6.54, Синоним (?), 17:07, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя в последнем си стандарте... Но я ещё не дожил чтоб это попробовать, минГв се дела...
    Или уже реализовано там?
     
  • 4.70, Аноним (-), 23:31, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    на самом деле это неправда, маразматичный страуструп насильственно насаживает модель ооп в плюсах, в отличие от си плюсы не являются мультипарадигменным яп. Вот пример мармазма этого олегофрена

    http://www.stroustrup.com/bs_faq2.html#finally

    Why doesn't C++ provide a "finally" construct?

    Because C++ supports an alternative that is almost always better: The "resource acquisition is initialization" technique (TC++PL3 section 14.4). The basic idea is to represent a resource by a local object, so that the local object's destructor will release the resource. That way, the programmer cannot forget to release the resource.

     
     
  • 5.71, arisu (ok), 23:37, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    и что тут такого «маразматичного»? у си, например, нет *никакого* механизма для этого — ни автоматических объектов с cleanup, ни finally.
     
  • 5.82, dq0s4y71 (??), 13:54, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен. Маразм. Если программист должен явно резервировать ресурс, то он же должен явно его и освобождать. Это логично.

    > That way, the programmer cannot forget to release the resource.

    Ну, да, программист "не может забыть", потому что он И НЕ ПОМНИТ об этом - за него это делает неявный вызов деструктора! И это - плохая практика, т.к. ПРИУЧАЕТ программиста не думать об освобождении ресурсов. Ну и вообще в духе С++: никогда толком не знаешь, в какой момент компилятор решит неявно вызвать конструктор\деструктор...

     
     
  • 6.84, тоже Аноним (ok), 14:42, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну и вообще в духе С++: никогда толком не знаешь, в какой момент компилятор решит неявно вызвать конструктор\деструктор...

    Вы с PHP или Java не перепутали? Я почему-то не страдаю такими вопросами, давно и продуктивно используя С++. Всегда понятно, где может кончиться время жизни объекта и будет вызван деструктор.

     
  • 6.87, arisu (ok), 21:16, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну и вообще в духе С++: никогда толком не знаешь,
    > в какой момент компилятор решит неявно вызвать конструктор\деструктор…

    а ты язык-то учить не пробовал? сильно помогает узнать, когда же гадский компилятор…

     
     
  • 7.88, тоже Аноним (ok), 22:47, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Судя по тому, что конструктор и деструктор должен вызывать компилятор, это был какой-то другой язык...
     
     
  • 8.92, arisu (ok), 23:32, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    тоже верно 8230 ... текст свёрнут, показать
     
  • 6.93, Аноним (-), 23:41, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    тут вся проблема не в этом. А в том, что место небольшогшо куска кода с try/finall нужно городить целый грёбанный класс, на пустом месте. Или другими сдовами, этот ебанутый старпёр вынуждает пользоваться только ООП парадигмой, либо лепить костыли в C стиле.
     
     
  • 7.94, тоже Аноним (ok), 11:52, 18/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если у вас классы создаются "на пустом месте", без какого-либо оригинального кода - просто используйте ОДИН шаблон для таких классов. Не надо костылей.
     

  • 1.31, Аноним (-), 14:10, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Полная переработка GCC на C++ не входит в планы разработчиков.

    а жаль!!

     
     
  • 2.37, Аноним (-), 14:47, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Они не осилят переработать ТАКОЙ объём кода
     

  • 1.66, arisu (ok), 20:44, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пропал калабуховский дом. будем иметь ещё более страшного монстрика: теперь со вкусом C++.

    радует только одно: обычно ребята очень неспешно реализуют задумки. так что немного ещё поживём.

     
  • 1.69, Толстый (ok), 23:16, 16/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    C говно уже только потому что у него нет деструкторов и шаблонов. С++11 с лямбда функциями, автовыводом типов и списками инициализации - вкусняшка. Адепты С(включая кстати самого Линуса) катятся куда подальше. Разработчикам GCC - респект, хотя одна только смена языка не поможет догнать clang по качеству кода.
     
     
  • 2.83, dq0s4y71 (??), 14:00, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    "Тот, кто не горбатый, страшно некрасив" (с) Верблюд
     

  • 1.76, Аноним (-), 03:48, 17/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Значит ли это что gcc теперь станет еще медленнее?
     
     
  • 2.90, Аноним (-), 23:20, 17/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    gcc станет мудрее )))
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру