LINUX.ORG.RU

Широкая дискуссия о будущем GCC

 ,


3

5

В прошедший вторник в список рассылки GCC попало одно письмо, вызвавшее множество ответов и даже интересное обсуждение о будущем GNU Compiler Collection, о его конечных целях и об их достижимости. В первом письме просто был задан вопрос о примерных сроках полной реализации стандарта ISO C++11. Но по мере разрастания нити Diego Novillo из Google, хорошо зарекомендовавший себя в роли разработчика GCC, даже высказал опасения, что GCC уже прошёл точку невозврата и ему грозит естественная смерть.

Нить появилась в списках рассылки во вторник и обновляется по сей день. Также промелькнула ссылка на страницу с отчётом о поддержке C++11 в GCC, но обсуждение ушло в другие области, как то: разработка GCC, привлечение новых разработчиков, выживание ведущего свободного компилятора. А теперь проведём обзор самых интересных комментариев нити.

Дискуссия разгорелась после того, как на резонный вопрос «Когда спецификация C++11 будет полностью воплощена в код?» был получен ответ «Как всегда, не раньше чем добровольцы-ментейнеры воплотят её в код».

Фраза «добровольцы-ментейнеры» в ответе и стала поводом широкого обсуждения о нехватке добровольцев, которые желают (это-то легко) и при этом могут работать над GCC (что намного труднее и удаётся меньшинству). Множество людей, занятых в GCC, участвуют в проекте с незапамятных времён. А сколько кода было написано людьми, пришедшими в 2012 и никогда не работавшими прежде? Стоит рассмотреть такую меру, как улучшение понятности компилятора, посредством, например, больших вложений в проектную документацию. Многие знания о структуре GCC до сих пор остаются лишь в памяти людей, которых в любой день может задавить автобус, перевозящий сотрудников Microsoft.

Затем новым разработчикам, мечтающим о том, чтобы им выпала честь работать над GCC, рекомендовали посетить страницу.

В ответ на предложения по уменьшению входного порога для интересующихся GCC также поступали классические отговорки «Компиляторы — это очень сложные программы» и «едва ли несколько человек хотят и при этом способны написать такую документацию».

Разумеется, были и споры на тему LLVM/Clang. Одним из ответов было «Как вам идея, что Clang влияет на эти сроки, потому что GCC теперь вынужден конкурировать с ним? Clang сейчас немного впереди и GCC должен измениться, если он хочет по-прежнему быть ведущим».

В ответ на это, Diego Novillo, всё ещё работающий в Google, поделился своим мнением:

Я вижу несколько прикладных областей, с которыми Clang/LLVM успешно справляется и в которых GCC, на мой взгляд, пока не стремится участвовать: в частности, «инструментабельность» (toolability), за неимением лучшего слова. Архитектурный дизайн clang следует пути, отличному от g++. Это не просто кодогенерирующий парсер, это прежде всего парсер, который помимо прочего генерирует код (прим. переводчика - см. SemaCodeComplete.cpp в исходниках clang, в т.ч. где вызываются эти функции). Это различие позволяет использовать компилятор в инструментах любого рода, которым нужно знать о семантике C++: в статических анализаторах, при форматировании кода, подсветке синтаксиса и т.д. Вдобавок он реализован как библиотека и может встраиваться в приложения.

Это задачи, которые g++ сейчас не может выполнить. С помощью плагинов он, конечно, может выполнить кое-что из перечисленного, но эти плагины куда сложнее и вынуждены влезать в недра компилятора.

Не факт, что всё это является недостатком g++. Но для эффективной конкуренции в этих областях необходима существенная реорганизация.

LLVM имеет схожие с clang свойства. GCC всё ещё имеет некоторые ограничения в портируемости своих бекендов.

Примечательно и другое письмо про необходимость притока свежих сил из числа молодых студентов и университетских исследователей, которые на данный момент почти повсеместно используют LLVM (прим. переводчика — подтверждаю, и в российских ВУЗах LLVM вытеснил MSIL). В ответ на него уже известный вам Diego Novillo создал в рассылке вторую нить для обсуждения выживания GCC в долгосрочном периоде. Диего думает, что проект уже мог незаметно пройти точку невозврата и компилятор FSF может умереть естественной смертью.

Выживание GCC в будущем является нашей задачей. Порой я думаю, что мы уже пропустили критический момент.

При этом тот ограниченный круг разработчиков, что может выполнить задачу, как полагается, меньше всего желает её выполнять. Конкретно эти разработчики уже на «ты» с кодовой базой, они приучились выполнять задачи, ради которых были наняты и вместе с другими наёмными работниками сформировали некоторый коллектив. К тому же, освоившиеся разработчики чаще всего отвергают изменения, потому что в ближайшей перспективе они дают нестабильность и ошибки (читайте: головную боль ментейнера).

Эволюционное улучшение кода остаётся неблагодарной и трудной работой. Как инженеру, она мне интересна, но я здраво оцениваю свои силы. В рабочее время мы выполняем другие задачи, которые зачастую по природе своей конфликтуют с эволюционированием кода. Некоторые разработчики уже внесли вклад в улучшение кода в плане названной задачи, но суммарный технический долг кода в GCC огромен.

Если этакие тенденции продолжатся, команда опытных разработчиков GCC со временем начнёт вырождаться. Без обновления этой команды GCC ждёт естественная смерть. Этот процесс начался давно и продолжается сейчас. Ну и кроме этого, будет интересно иметь два или более сильных и конкурирующих друг с другом компиляторов. Обмен наработками (прим. переводчика - в оригинале «перекрёстное опыление», намёк на улучшение генов путём спаривания), к которому ведёт любая конкуренция в opensource, в конечном счёте выгодна всем, и пользователям, и разработчикам.

Richard Guenther отвечал на это

«Учтите, что мы не вправе поставить GCC в гараж и рефакторить его два года. Любая починка ведётся прямо на оживлённой трассе! Это существенно ограничивает доступные нам методики рефакторинга, что в итоге может ограничить и выгоду от их применения. Всегда дважды подумайте, прежде чем превращать GCC в ещё большее болото, чем сейчас!

Есть много других сообщений для тех, кто хочет оценить разные точки зрения от разработчиков и пользователей на тему будущего наиболее популярного свободного компилятора. Вы можете ознакомиться с ними в индексной странице этой нити.

От переводчика:

От себя добавлю, что Erik Verbruggen и я продолжаем работу над интеграцией clang в QtCreator, что в конечном счёте будет полезно всем, кто работает с C, C++ и ObjectiveC. Сегодня с утра я добавил ряд исправлений в механизм автодополнения, а в середине февраля либо параллельно с выходом QtCreator 2.7 добавлю сборки последних стабильных версий QtCreator, clang и плагина для нескольких дистрибутивов: скорее всего это будут Ubuntu (ppa), OpenSUSE (buildservice) и ROSA (ABF). Плагин на порядок улучшает диагностику ошибок прямо в ходе редактирования кода и добавляет неплохое автодополнение (в целом лучше, но в кое-чём хуже встроенного).

Для пользователей арча уже есть qtcreator-clang-git в АУРЕ, но я советую не использовать его, а подождать, пока будет принят мой коммит и пока я отпишу ментейнеру пакета с просьбой обновить его, либо собрать плагин с пылу да с жару по этой инструкции, (по желанию) наложить ещё не принятый патч

git fetch https://codereview.qt-project.org/p/qt-creator/qt-creator refs/changes/23/45923/2 && git checkout FETCH_HEAD
после чего (обязательно) открыть файл clang_installation.pri и закомментировать знаком # строку
DEFINES += CLANG_INDEXING
Это отключит временно неиспользуемое, но сильно замедляющее работу индексирование.

>>> Подробности

★★★★

Проверено: anonymous_incognito ()
Последнее исправление: JB (всего исправлений: 4)

Спасибо за работу над интеграцией clang в QtCreator

alex-w ★★★★★
()
Ответ на: комментарий от sanaris

Ты совсем тупой, да?

GCC организован точно так же. Причем в нем несколько очень разных промежуточных виртуальных машин, а в LLVM их только две (LLVM IR и Selection DAG).

anonymous
()
Ответ на: комментарий от sanaris

решается задача компилятора по уменьшению условного времени работы алгоритма, для ЗАДАННОЙ архитектуры

1) Большая часть оптимизаций от целевой архитектуры не зависит.

2) LLVM IR - архитектурно-зависимое представление (alignement-ы, ABI, интринсики и прочее - например, многие пассы оптимизации знают про интринсики Intel и NEON).

anonymous
()
Ответ на: комментарий от Eddy_Em

GCC — отличнейший компилятор! Чего народу надо?

Надо модульность, удобная архитектура, ну и вменяемо работающая LTO, а не то позорище, что есть в gcc.

anonymous
()

Clang сейчас немного впереди и GCC должен измениться, если он хочет по-прежнему быть ведущим».

Диего думает, что проект уже мог незаметно пройти точку невозврата и компилятор FSF может умереть естественной смертью.

Запятые поставьте перед «и».

Psych218 ★★★★★
()
Ответ на: комментарий от sanaris

Вывод: кастрировать всякое уродство, выжечь напалмом, раздавить гадину. Пусть все левые языки тусуются в отдельных ветках и проектах. Столлману не хватает жесткости как Линусу.

Полностью поддерживаю, как забросят gcc - вырежу из него все кроме Си и Фортрана, остальной весь шлак, в том числе и ++, вырежу.

Deleted
()

Первая буква в openSUSE пишется строчной.

Пруф

anonymous
()
Ответ на: комментарий от quiet_readonly

В полезных применениях самого LLVM я не сомневаюсь:)

pylin ★★★★★
()
Ответ на: комментарий от sv75

Разве лицензия BSD не позволяет сделать форк под GPL?

Нет.

Можно поподробнее.

Кто мешает взять код. Добавить условие упоминания авторов в списке авторов к GPL и выпустить под новым именем с лицензией GPL с дополнительным условием?

x86_64 ★★★
()
Ответ на: комментарий от unfo

OpenACC это развитие OpenMP в сторону вычислений на GPU, насколько я понимаю. Так что поддержка OpenACC это вопрос времени, ведь OpenMP уже есть.

A-234 ★★★★★
()
Ответ на: комментарий от border-radius

Ха! Амерский диалект... Ты ещё скажи что англецкий в англии изобрели.. Может оно когда-то так и было, вот только всем пох уже давно! Тот самый каноничный английский используют три с половиной калеки, и все они на BBC. А так, весь мир уже давно стебётся над англикосским произношением (не понятно ведь нифига), и в большинстве случаев, когда говорят English, подразумевается именно 'амерский диалект', носителей которого в РАЗЫ больше.

anonymous
()
Ответ на: комментарий от anonymous

Ваще-то больше всех носителей индийского диалекта инглиша.

anonymous
()
Ответ на: комментарий от x86_64

Кто мешает взять код. Добавить условие упоминания авторов в списке авторов к GPL и выпустить под новым именем с лицензией GPL с дополнительным условием?

Условия лицензии:

==============================================================================
LLVM Release License
==============================================================================
University of Illinois/NCSA
Open Source License

Copyright (c) 2003-2012 University of Illinois at Urbana-Champaign.
All rights reserved.

Developed by:

    LLVM Team

    University of Illinois at Urbana-Champaign

    http://llvm.org

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal with
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimers.

    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimers in the
      documentation and/or other materials provided with the distribution.

    * Neither the names of the LLVM Team, University of Illinois at
      Urbana-Champaign, nor the names of its contributors may be used to
      endorse or promote products derived from this Software without specific
      prior written permission.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.

==============================================================================
Copyrights and Licenses for Third Party Software Distributed with LLVM:
==============================================================================
The LLVM software contains code written by third parties.  Such software will
have its own individual LICENSE.TXT file in the directory in which it appears.
This file will describe the copyrights, license, and restrictions which apply
to that code.

The disclaimer of warranty in the University of Illinois Open Source License
applies to all code in the LLVM Distribution, and nothing in any of the
other licenses gives permission to use the names of the LLVM Team or the
University of Illinois to endorse or promote products derived from this
Software.

The following pieces of software have additional or alternate copyrights,
licenses, and/or restrictions:

Program             Directory
-------             ---------
Autoconf            llvm/autoconf
                    llvm/projects/ModuleMaker/autoconf
                    llvm/projects/sample/autoconf
CellSPU backend     llvm/lib/Target/CellSPU/README.txt
Google Test         llvm/utils/unittest/googletest
OpenBSD regex       llvm/lib/Support/{reg*, COPYRIGHT.regex}
pyyaml tests        llvm/test/YAMLParser/{*.data, LICENSE.TXT}
Читал?

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Там всего три условия, которые нужно соблюсти, чтобы не подали иск на тебя.

Так что мешает выпустить код под GPL с дополнительным условием упоминания авторов?

x86_64 ★★★
()
Ответ на: комментарий от x86_64

ну как кто, Столлман со своей свободкой! он же там кричит «Майна, Файна ... »

anonymous
()
Ответ на: комментарий от x86_64

Никто не мешает. Другое дело, что этого мало. Нужно ещё перетащить разработчиков на форк. А люди в большинстве своём не любят резких движений.

Evgueni ★★★★★
()
Ответ на: комментарий от Deleted

tcc вполне способен собирать линукс ,а то,что gcc уже стал гримуаром не может не печалить

qulinxao ★★☆
()
Ответ на: комментарий от x86_64

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

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

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

Упомяну я авторов. Положу текст под которым они отдавали код. Использовать их имена не буду. Создам проект под GPL с условием упоминания авторов и добавления текста под которым они код отдавали и запретом использовать их имена для продвижения продукта.

Как я понял. Никаких препятствий юридического характера нет. Есть только моральные и организационные.

x86_64 ★★★
()
Ответ на: комментарий от devl547

Конкретно в моём случае, тестирование было на растровом рендере. В общем, картинка рендерилась в 42фпс при сборке на шланге и 36фпс на гцц. Шланг более умно использовал функции работы с памятью, активно впихивая ldm* stm* где только можно. Гцц ограничивался ldr/str инструкциями. Я писал багрепорт, сказали что данная оптимизация уже имеется, но работает некорректно и почти всегда не используется.

// ARM9 ~300MHz

vova7890 ★★★
()

Слишком толстый этот компилятор и от этого медленный.. надеюсь в будущем добровольцы реализуют C++ в tcc и будет новый «стандартный компилятор».

Sharezil
()

Они ещё там об этом не поговорили. clang'овцы считают, что премуществ у gcc всего 4. И это самое 4-ое может скоро отпасть: GCC does not require a C++ compiler to build it.

По теме

«Учтите, что мы не вправе поставить GCC в гараж и рефакторить его два года. Любая починка ведётся прямо на оживлённой трассе! Это существенно ограничивает доступные нам методики рефакторинга, что в итоге может ограничить и выгоду от их применения. Всегда дважды подумайте, прежде чем превращать GCC в ещё большее болото, чем сейчас!

Вот недавно тоже самое слышал (по новостям) от железнодорожников, которые расширяют цюрихский вокзал. 15 минут работы и снова перерыв на... проходящий поезд. Сложно, долго, дорого, НО НЕОБХОДИМО!

А ещё это напоминает Perl 6. Если уж никто не может взяться рефакторить по-живому, надо взять и делать с нуля, используя свой драгоценный опыт, опыт clang ну и опыт Перла 6-го, чтобы проект gcc 6 всё же удался.

gag ★★★★★
()
Ответ на: комментарий от gag

И это самое 4-ое может скоро отпасть: GCC does not require a C++ compiler to build it.

Так с 4.8 отпадёт, т.е. весной.

Begemoth ★★★★★
()
Ответ на: комментарий от gag

clang'овцы считают, что премуществ у gcc всего 4

0. GPLv3

devl547 ★★★★★
()
Ответ на: комментарий от gag

Вот недавно тоже самое слышал (по новостям) от железнодорожников, которые расширяют цюрихский вокзал. 15 минут работы и снова перерыв на... проходящий поезд. Сложно, долго, дорого, НО НЕОБХОДИМО!

А ещё это напоминает Perl 6. Если уж никто не может взяться рефакторить по-живому, надо взять и делать с нуля, используя свой драгоценный опыт, опыт clang ну и опыт Перла 6-го, чтобы проект gcc 6 всё же удался.

Сложного на самом деле там нет (я о себе говорю: лично я не увидел сложностей). Требуется лишь наличие свободного времени.

anonymous
()
Ответ на: комментарий от x86_64

Неущемляемость GPL.

Так что мешает выпустить код под GPL с дополнительным условием упоминания авторов?

GPL запрещает накладывать ограничения помимо тех что уже есть в GPL. Можно добавить разрешение, например разрешение на упоминание авторов или перелицензирование, но нельзя потребовать указывать авторов.

Camel ★★★★★
()
Ответ на: комментарий от quiet_readonly

Но в QtCreator есть фичи, которые в clang пока ещё отсутствуют.

мельком глянул:

Use them to check for a minimal versions of libclang

Links to reported_will be attached here as soon as possible

reported што? reported ones? это English какбэ, тут травила из другого языка не подходят ;)

ну и т.п. в общем, следует подчистить ляпы.

по сабжу: да, всё так и есть. здоровая конкуренция gcc была необходима и LLVM/Clang - архитектурно правильный конкурент. так что автору - удачи. ну и gcc - тоже удачной трансформации к лучшему.

asaw ★★★★★
()
Ответ на: комментарий от PolarFox

Так можно дойти и до того, что сишные структуры — классы.

Расскажи это ребятам из glib.

anonymous
()
Ответ на: комментарий от shahid

Чо-то широкая дискуссия на LORе не получилась. Все заняты обсуждением systemd.

Вроде бы все предельно ясно:

- корпорациям мешает GPL и они выдают желаемое за действительное

- беспечные и зомбированные люди идут на поводу корпорации или СМИ/троллей (с подачи корпорации) поскольку сами не ориентируются в вопросе и аналитический аппарат у них слабо развит

- ну и быдловатый народ хочет паразитировать на чужом труде, при этом не желая понимать вторую половину медали: они создают общество в котором другие участники также смогут паразитировать и на них труде тоже

Тут вроде нечего обсуждать.

Можно было бы обсуждать технические стороны вопроса, но для этого нужны развитый интеллект, знания и свободное время. А интеллекта и знании у народ хватает только быдлокодить на питоне и поливать своими недалекими умозаключениями (суть - грязь) других (лисперов, к примеру).

anonymous
()
Ответ на: комментарий от shahid

И обсуждать не чего, gcc есть и будет, а вот clang точно лишний, вот и пытается везде пристроиться то к qt, что вместо gcc.

И на данный момент его приняли только в *bsd вместо gcc, насколько мне известно, и думаю без протеже главного спонсора, продающего айштучки не обошлось.

PS. Точку невозврата прошли C++, и все языки от него родившиеся, а вместе с ними и компиляторы под них, а значит и qt, clang, и отчасти llvm тоже доживают свое как недолго живующие растения.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)

А не спешите вы хоронить С++

Благодаря сlang в мире С++ появляется jit-интерпретация, а вместе с нею - метапрограммирование времени выполнения, интроспекция, рефлексия, рефакторинг и многие другие важные для «сложного» ПО вещи.

aist1 ★★★
()
Ответ на: А не спешите вы хоронить С++ от aist1

а вместе с нею - метапрограммирование времени выполнения

Этого обычно добиваются встраиванием javascript, lua или python, на худой конец, вряд ли есть какие-то преимущества от метапрограммирования на C++.

интроспекция

Она существует в майкрософтовском COM, GObject и расширениях Qt, но clang действительно может тут помочь: если реализовать соответствующие генераторы кода как плагины к clang, то можно будет точнее отыскивать ошибки и даже делать это прямо в среде разработки или редакторе. Кстати, один такой плагин написан для GObject, а вот в проекте Qt дальше разговоров дело не пошло.

рефакторинг

Не понимаю, почему этот пункт рядом с интроспекцией и метопрограммированием, тем более рефакторинг был и до clang, хотя прежние движки, конечно, были менее точными.

quiet_readonly ★★★★
() автор топика
Ответ на: комментарий от Deleted

PS. Точку невозврата прошли C++, и все языки от него родившиеся, а вместе с ними и компиляторы под них, а значит и qt, clang, и отчасти llvm тоже доживают свое как недолго живующие растения.

На самом деле все обстоит несколько сложнее чем вы описали (но я думаю вы намеренно не углублялись в детали). Так или иначе, clang и llvm являются лишь способом для построения корпоративно-ориентированного общества в котором существую лишь два действующих лица: рабы корпорации и потребители продуктов деятельности это корпорации. С позиции корпорации вест GNU, Linux и GCC тут явно лишние. Надо быть ослом чтобы этого не понимать. Тем не менее, реальность всегда вносит свои коррективы.

PS: Я лишь хотел сказать что если вдруг будешь форкать/изменять/модернизировать GCC, то не забудь опубликовать свои намерения/проект. Я бы тоже поучаствовал в закапывании С++ и всех подобных и производных ООП-ориентирванных языков.

anonymous
()

а можно ли как-нибудь интегрировать clang (точнее его подсветку синтаксиса и автодополнение) в Emacs? есть такие проекты? было бы мощно.

pashazz ★★★★
()

Широкая дискуссия

1 2 3

/0 три страницы всего

slackwarrior ★★★★★
()
Ответ на: комментарий от quiet_readonly

Этого обычно добиваются встраиванием javascript, lua или python, на худой конец, вряд ли есть какие-то преимущества от метапрограммирования на C++.

Фишка интерпретатора С++ здесь - соединение шаблонного метапрограммирования (а это все структуры данных на С++) с возможностью определять и инстанцировать шаблоны во время выполнения. Т.е. структуры данных становятся по-настоящему динамическими и этот динамизм охватывается оптимизирующим компилятором на уровне JIT. Вообще это киллер-фича, только мало пока кто этим интересуется.

Не понимаю, почему этот пункт рядом с интроспекцией и метопрограммированием, тем более рефакторинг был и до clang, хотя прежние движки, конечно, были менее точными.

Я имел в виду рефакторинг, охватывающий шаблоны. Их ведь нужно раскрывать для этого. Или и здесь что-то было до clang?

aist1 ★★★
()
Ответ на: комментарий от anonymous

Я думаю, что я не одинок в своих мыслях: «Программы должны работать быстрее, должны быть надежнее и короче».

Ничего подобного ОО (и на C++ вместе со всеми производными) программирование не дало, кроме того, что дало рабочие места кодерам / создало видимость работ по созданию ПО (на деле по распилу государственных бюджетов и не только в России, но и «во всем цивилизованном мире»)/, и каждая новая версия такого ПО, накодированная станочниками, требует более мощных платформ и большего объема ОЗУ и места на дисках, в сравнении с предыдущей версией. В наваре не заказчики в лице государства или пользователей, в наваре лишь корпорации курирующие разработку ПО, в том числе и многих из открытых проектов, хотя как раз они за руку и не пойманы, но любой современный веб-браузер очень требователен к ресурсам машины, и конца этой прожорливости похоже не видно.

Проект, конечно же опубликую. Пока уровень моих знаний не достаточен для начала работ, поэтому подожду ответных заявлений разработчиков gcc.

Но если gcc «выбросят на свалку истории» /удастся закрыть/, то конечно же, и не только я, его подхватим, «вычистим от хлама и отшлифуем», врочем о закрытии или даже о планах как таковых пока никто из его разработчиков и не думал заявлять.

В качестве ответной меры могу предложить разработчикам gcc вообще откзаться от C++ и всех его предков в gcc, агрументировав это тем, что для C++ есть «замечательные» llvm/clang - пользуйтесь ими на здоровье и заняться чисткой gcc от всего хлама накопленного за все годы раскручивания ООП, с которым сейчас корпорации не знают что делать и ищут судорожно выход из тупика. А выход же есть, ghc - Haskell - ФП.

А пока мне и чистого Си достаточно, и той реализации Си++11 какая есть в gcc, и то это лишь на то время, чтобы появились новые программы без Си++ и ООП, взамен уже написанных.

Deleted
()
Ответ на: комментарий от anonymous
# equery d llvm
 * These packages depend on llvm:
dev-lang/ghc-7.6.1 (llvm ? sys-devel/llvm)

# equery d clang
 * These packages depend on clang:
app-portage/eix-0.28.1-r1 (clang ? sys-devel/clang)

llvm липнет ко всему. Но clang я там не наблюдаю, да и без llvm ghc даже последней версии собирается.

Я обхожусь без llvm и clang :)

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от aist1

Я имел в виду рефакторинг, охватывающий шаблоны. Их ведь нужно раскрывать для этого. Или и здесь что-то было до clang?

Действительно, до clang чего-то подходящего не было. Тут я вынужден выйти из дискуссии, т.к. не разбираюсь в обобщённом программировании.

quiet_readonly ★★★★
() автор топика
Ответ на: комментарий от Deleted

Я думаю, что я не одинок в своих мыслях: «Программы должны работать быстрее, должны быть надежнее и короче».

С первыми двумя пунктами у C++ никаких проблем, а короче программам незачем быть, т.к. ООП добивается читаемости и модульности без краткости.

и каждая новая версия такого ПО, накодированная станочниками, требует более мощных платформ и большего объема ОЗУ и места на дисках, в сравнении с предыдущей версией

То-то clang потребляет меньше памяти и работает быстрее gcc (в т.ч. при парсинге, так что глубиной оптимизаций тут не отмазаться). Да и программы на расово верном C если и быстрее, то либо за счёт случайных флуктуаций в опыте и удаче команд разработчиков, либо за счёт отсутствия фич, хаков вместо нормально реализованных фич или тормозной работы на реальных данных.

Тот же firefox весит куда больше Konqueror с KHTML или IE6, но какой-нибудь тяжёлый жабаскрипт перемелет в несколько раз быстрее и лучше.

quiet_readonly ★★★★
() автор топика
Ответ на: комментарий от Deleted

Проект, конечно же опубликую. Пока уровень моих знаний не достаточен для начала работ, поэтому подожду ответных заявлений разработчиков gcc.

Да это проприетарщики используя своих зомбированных рабов мутят воду, не более. А вот такие ответы разработчиков: http://nickclifton.livejournal.com/. Это лишь провокация, не?

Но если gcc «выбросят на свалку истории» /удастся закрыть/, то конечно же, и не только я, его подхватим, «вычистим от хлама и отшлифуем», врочем о закрытии или даже о планах как таковых пока никто из его разработчиков и не думал заявлять.

Да кто выбросит? Кто владелец кода? Код как бы свободный и отнять его (кода) свободу никто не может (GPLv3). Этот код и ваш и наш и закопирастить его уже никто не сможет.

Противостояние продолжится если на смену предыдущему поколению Воинов Армии Свободы Программного Обеспечения придут новые защитники. Война же за свободу программного обеспечения и права пользователей скоро сильно усилится и начнется они именно из-за Skype. Я вам это гарантирую: http://www.skypeopenletter.com/

anonymous
()
Ответ на: комментарий от quiet_readonly

Я думаю, что я не одинок в своих мыслях: «Программы должны работать быстрее, должны быть надежнее и короче».

С первыми двумя пунктами у C++ никаких проблем, а короче программам незачем быть, т.к. ООП добивается читаемости и модульности без краткости.

Возникает странное ощущение что вы из класса студентоты.

То-то clang потребляет меньше памяти и работает быстрее gcc (в т.ч. при парсинге, так что глубиной оптимизаций тут не отмазаться).

А как насчет качества кода?

Да и программы на расово верном C если и быстрее, то либо за счёт случайных флуктуаций в опыте и удаче команд разработчиков, либо за счёт отсутствия фич, хаков вместо нормально реализованных фич или тормозной работы на реальных данных.

Вот уже догадки в ход пошли. Прежде чем пустимся в пляс, сделайте одну услугу: оцените пожалуйста цену ваших догадок. Сможете?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.