LLVM / Clang. U Mad GCC?

llvm-логотип

Мне пришлось написать сообщение об этом противоречии размещено в LWN. И компилятор LLVM / Clang начинает беспокоиться в списках рассылки GNU.

Давным-давно был компилятор под названием GCC, который за более чем 25 лет своего существования продолжает с большим уважением относиться к своей свободной лицензии и авторскому леву, а также является компилятором, используемым ядром Linux и до недавнего времени FreeBSD. Любой, кто хотел научиться разрабатывать на C или C ++, наверняка использовал GCC независимо от архитектуры своей машины. Однако GCC пострадал от определенного секретность, отчасти из-за философии тех, кто его создал, а отчасти из-за его развития в стиле собора, когда строгий контроль осуществлялся над тем, что происходило в GCC, а что не было (сейчас не так много, но все еще существует), что проложило путь для создание интерфейсов и других функций, которые в конечном итоге были приняты GCC. Чтобы узнать больше о краткой истории ЭГКС, Я оставляю эту ссылку.

Между тем, в Университете Иллинойса в Урбане-Шампейне около 2002 года исследовательский проект привел к созданию компилятора, созданного по модульному принципу, так что его отдельные элементы, такие как интерфейсы, генераторы кода и оптимизаторы. Они зовут его LLVM потому что сначала это была виртуальная машина низкого уровня, но в итоге оказалось чем-то большим. И они выдали ему его собственную лицензию, которая была похож на BSD (бесплатно, без авторского лева, в соответствии с GPL). Спустя годы Apple заинтересовалась LLVM и приняла его для своих операционных систем iOS и OS X, а также для создания (и выпускать под той же бесплатной лицензией, что и LLVM) ваш собственный интерфейс называется лязг, для C и Objective C. Обратной стороной является возможность включения LLVM / Clang в проприетарных программахТак обстоит дело с компилятором CUDA от NVIDIA и IDE XCode от Apple.

Но однажды, несколько недель назад в списке рассылки emacs, во время обсуждения режима автозаполнения, разработанного для Clang, Димитрий гутов говорит: "Мне давно сказали, что Ричард Столмен так сильно ненавидел Кланг кто был против включения кода, который его использует, в emacs ". Позже это привело к другому обсуждению clang и бесплатного программного обеспечения, где Сам Ричард поясняет: «Наша политика - не принимать изменения в любой пакет GNU, который может работать с Clang, но не с GCC. Emacs не будет поощрять людей уходить из GCC. Когда у нас будет такая возможность, мы будем поощрять использование GCC вместо Clang ".

Вскоре после этого появляется Эрик Рэймонд (известный созданием «Собора и базара», наряду с определением открытого исходного кода), который, наполовину исполняя рыцарский турнир, полутроллинг, идет и говорит что LLVM / Clang был ответом на сопротивление проекта GCC большей совместимости, плюс Clang превосходит GCC по ряду технических показателей. По его словам (и показывая Видео из лекции Чендлера Каррута) разработчики Clang спросили Столлмана, есть ли причина, по которой интерфейсы GCC нельзя превратить в динамические библиотеки, которые могут быть связаны любой программой, которая хочет анализировать исходный код. Столмен ответил, что одной из целей GCC было избежать проприетарные программы для использования любой из ее частей, поэтому они сознательно избегали различных вещей, которые вероятно они способствовали бы такому использованию …… .. которое они считали бесполезный ответ. Они хотели создать IDE и другие инструменты, которые совместно используют код компилятора, а GCC не позволял им, поэтому создать Clang и отправить GCC в / dev / null. Разработчики GCC они набросились на него скулить за неполное информирование (с тем фактом, что Clang превосходит GCC по некоторым техническим характеристикам). Посреди блудодеяния появляется Столлман, говорящий, что LLVM - ужасный возвратне по техническим причинам, а только из-за лицензии без авторского лева, которая приносит пользу Apple.

Затем статья LWN посвящает длинные абзацы модульности GCC и мерам, которые они намеренно включили, чтобы затруднить использование его внутреннего представления проприетарными программами на Исключение библиотеки времени выполнения GCC что решает вопрос о том, должен ли GCC компилировать закрытый код. Я также хотел бы добавить случай FreeBSD (недавно выпущенная версия 10 заменяет GCC на LLVM / Clang в качестве основного компилятора). Последняя версия GCC, которую они использовали было 4.2.1 (последний с лицензией GPLv2) и ни сумасшедший они собирались обновить его до версии с GPLv3 (они просто хотят BSD без GPL), поэтому к ним приходит LLVM / Clang как перчатка.

Короче, очередная битва в вечной войне GPL vs BSD.


38 комментариев, оставьте свой

Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   пандев92 сказал

    Не интересно, пусть разработчики убивают друг друга.

    1.    элиотайм3000 сказал

      Итак, у нас есть еще один недовольный работник, который работает в Microsoft и Apple.

    2.    рамки сказал

      Вы правы, я поддерживаю то, что программа всегда бесплатна, чтобы ее мог прочитать ЛЮБОЙ ЧЕЛОВЕК (это единственная причина, по которой я поддерживаю и использую Linux), но, в конце концов, последнее слово остается за программистами.

  2.   f3niX сказал

    Хорошая статья, мне всегда нравятся изделия из диазепана, они выходят из ряда вон выходящие.

  3.   Germán сказал

    Правда в том, что это очень глупая мысль со стороны gcc, это больше в то время, когда создатель LLVM предложил код gcc, а они его отклонили, CLang разработан таким образом, чтобы IDE могли проверять код вовремя. реальный, что приносит пользу не только частным приложениям, но и приложениям с открытым исходным кодом, таким как KDevelop или QtCreator, помимо продвинутых редакторов, таких как Vim, Kate, emacs и т. д. Я полагаю, что что-то подобное в конечном итоге произойдет с egcs, и оно будет поглощено лицензией gpl, как только linux можно будет скомпилировать с этим, как это произошло с egcs

    1.    элиотайм3000 сказал

      Если они не могут улучшить EGCS и / или сделать его лучшей заменой CLang, я пойду на CLang и LLVM.

    2.    xlash сказал

      Глупый? Я так не думаю. Тот факт, что GCC нельзя использовать для создания проприетарного программного обеспечения, является способом расставить приоритеты в разработке бесплатного программного обеспечения и не использовать его для разработки несвободного программного обеспечения. Это способ защиты свободного программного обеспечения, поэтому его следует поддерживать. Мистер Столмен абсолютно прав, это шаг назад. Кроме того, такие компании, как Apple, как упоминалось в статье, получат выгоду от LLVM / Clang, не внося абсолютного вклада в сообщество и не отдавая должного проекту.

      Ура, народ!

      1.    Germán сказал

        И GCC, и LLVM / CLANG могут компилировать проприетарное программное обеспечение, что не может быть изменено, так это GCC и не делает эти модификации известными. LLVM / CLANG может быть повторно лицензирован как gpl, самая большая разница между ними заключается в том, что для LLVM / CLANG они должны использовать C ++, а GCC не хотели его видеть или рисовать до недавнего времени. С моей точки зрения, вместо того, чтобы переписывать GCC на C ++, как они это делают сейчас, они должны были перенести архитектуры, которые GCC поддерживает, а LLVM / CLANG не поддерживает, и языки на последние, и иметь более чистый код и поддерживать свою собственную ветку разработки.

    3.    Artus сказал

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

      1.    Germán сказал

        1.Если GCC создаст форк LLVM / CLANG и компании и повторно лицензирует его как GPL, весь код, который они включают в указанную вилку, будет под GPL, а код LLVM должен будет запросить разрешение на повторную лицензию на него и включить это в их репо. Сообщаю вам, что тип лицензии MIT (XORG, WAYLAND, ...) или BSD (FreeBSD, ...) столь же разрешительный, как и LLVM.
        2 - С GCC вы не можете реализовать автоматическое завершение кода или верификатор кода в реальном времени через библиотеку, которую он предоставляет, в отличие от CLANG
        3 - LLVM - превосходное решение для GCC не только с технической точки зрения, но и с точки зрения эффективности, для компиляции бинома LLVM / CLANG требуется половина

  4.   Andekuera сказал

    Да здравствует GNU и GPL!

    1.    элиотайм3000 сказал

      Посмотрите, смогут ли они устроить свой собственный CLang с алкоголем, азартными играми и шлюхами.

      1.    Andekuera сказал

        а?

    2.    элиотайм3000 сказал

      Нет, Ричард. Тот факт, что SELinux является разработкой NSA, не означает, что любой другой инструмент, не лицензированный по GPL (например, LLVM / CLang), исходит из той же матрицы.

      Серьезно, я думал, что для этого был совершенно рациональный мотив, но я вижу, что FSF более консервативны, чем Сатору Ивата или любой член MAFIAA.

      1.    Персонал сказал

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

  5.   бедный таку сказал

    Ухххх GCC + Emacs. Если хочешь выжить, возьми меня за руку (стойла)

  6.   Elav сказал

    Пуритане меня извинят, но я должен сказать это: мне никогда не нравился Столлман, и, кажется, так оно и есть до конца своих дней.

    Вы не можете быть такими ограниченными. Он кажется фанатиком, сумасшедшим, и да, мне он не нравится, сколько он заслуживает за свои достижения и то, что он отстаивает.

    1.    Зиронид сказал

      Я согласен. Сначала он мне очень нравился, но теперь он кажется слишком экстремальным ...

      1.    Каналес сказал

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

    2.    xlash сказал

      Элав приятель, вопрос не в том, пуританин он или нет. Бесплатное программное обеспечение зародилось как социальное движение, и это то, что, как и многие другие, защищает Столмен.

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

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

      Я думаю, вы путаете фанатизм с другим термином. Как показала история, фанатизм убивает. Термин, который вы ищете, может быть радикальным, но без этого радикализма движение за свободное программное обеспечение и GNU / linux не существовало бы, по крайней мере, в том виде, в каком мы его знаем сегодня. Что касается безумия, я не буду с вами спорить, но, увидев то, что я видел за эти пару лет, сумасшедшие люди не такие уж сумасшедшие.

      Этим абзацем я хочу сказать, что движение за свободное программное обеспечение - это не только движение за компьютеры, но и общественное движение, и его необходимо защищать. И если Элав, вы должны радикально относиться к социальным вопросам. Такие компании, как Apple или Microsoft, без колебаний воспользуются обстоятельствами. Мы должны повышать осведомленность о правах пользователей и людей в целом.

      PS Я называю Elav, потому что я ему отвечаю, но комментарий адресован всем GNU / Linux.

      Ура, народ!

      1.    Мистер_Е сказал

        @Xlash: СЭР!… Спасибо! Вот что мне нужно было прочитать. +1

        Я копирую вас, распечатываю и кладу рядом с Библией. (Для справки: не внутри и не поверх него).
        В конце концов, благодаря этому шагу и усилиям Линуса и сообщества, происходит кое-что, что изменило мир:
        «Есть еще до Linux и СЕЙЧАС с LINUX».

      2.    Andekuera сказал

        +10

    3.    Мистер_Е сказал

      😀 @Элав:
      Я не извиняюсь, но я должен был сказать:
      Некоторые из ваших предыдущих постов мне понравились, но не этот ... и если они продолжатся так: возможно, так будет и дальше до конца моих дней.
      Не будь закрытым. Вы кажетесь фанатиком, сумасшедшим, и столько уважения, сколько ваши достижения (этот форум) и то, что вы заслуживаете… Мне не нравится (ваш комментарий).
      😀 - хе-хе! теперь вы можете испытать (немного) то же, что и RMS. вам просто нужно иметь ту же траекторию распространения, что и он, и чувствовать почти то же самое.
      Привет, куньяо!

  7.   Зиронид сказал

    Я не понимаю, почему Столлман такой закрытый. Рискну сказать, что я считаю LLVM даже более свободным, чем GCC, поскольку он дает свободу использовать его даже в проприетарных программах. Да, я знаю, что ограничение в GCC может помочь свободному программному обеспечению, но я считаю абсурдным то, что он выступает против LLVM таким образом.

    привет

    1.    Вилсон сказал

      Столмен не закрыт. Статья очень склонна к личному мнению автора.
      На самом деле решения GCC носят в основном технический характер. В GCC им нужна модульность, и они делают это, но по-другому (избегая проблем, которые существуют в CLANG).
      Для получения дополнительной информации https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Вот что написал Раймонд и есть отзывы разработчиков.

  8.   Сантиклюк сказал

    Это звучит для меня, чтобы увидеть, у кого это больше ... Эго, конечно.
    Оба компилятора отличные. Но, как и любой другой инструмент, это зависит от того, как вы его используете.
    Можно написать бесплатный код на C # и сделать ракету на Linux.

  9.   Галлюкс сказал

    Думаю, здесь нужно быть более прагматичным. Столлман должен иметь видение и не переставать сбиваться с пути. Беспокоит то, что нынешнее сообщество не фрагментировано, как это происходит. Наиболее разумно то, что, хотя лицензия bsd позволяет использовать его в проприетарных средах, при условии, что авторы признаны (и даже их производные), используют ту же логику, но с gpl v2 или выше ..

  10.   пандев92 сказал

    К счастью, давно уже никто не слышал о стойле. Другой, компьютерная программа или компилятор, никогда не будет социальным вопросом, кроме того, что всегда были альтернативы, которые не были бесплатными! но если бесплатно.
    Что касается llvm clang, полемика не имеет смысла, так как источник всегда будет там, он был выпущен под лицензией BSD, поэтому это бесплатное программное обеспечение, которое компания может использовать для своих темных целей, это не означает, что вы больше не можете получить доступ к исходному коду, но я вижу, никто здесь не понимает, кроме 2 или 3.

    1.    xlash сказал

      «Компьютерная программа или компилятор никогда не будут социальным вопросом»
      Как не? Я с уважением отношусь к тому, что вы не защищаете движение за свободное программное обеспечение, как многие другие, но отрицание того, что представляет собой свободное программное обеспечение, кажется неуважительным с вашей стороны по отношению к людям, которые вкладывают много времени, денег и усилий в его защиту и создание.

      Конечно, llvm - бесплатное программное обеспечение, но это не означает, что его модификации и производные. Идея состоит не только в том, чтобы иметь свободный доступ к исходному программному обеспечению, но и его модификациям. Если я разработаю программу и поделюсь ею с вами, я бы хотел, чтобы вы сделали то же самое для людей, которым вы передадите копию вашей измененной версии. Это то, что защищают свободные программы и авторское лево, поэтому это социальный вопрос.

      «Но я вижу, никто здесь не догадывается, кроме 2 или 3».
      Я больше не знаю, как вы пришли к такому выводу, когда размещенные здесь комментарии относятся к философии и свободе программного обеспечения, сравнивая различия между двумя типами лицензий, даже если они совместимы друг с другом.

      1.    диазепан сказал

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

        1.    xlash сказал

          Вовсе нет, пока я свободен. Но в комментариях я говорю о другом - Диазепане. Я говорю об использовании X-компилятора для компиляции проприетарного программного обеспечения, о лицензиях, используемых в каждом компиляторе, и их различиях, я также упоминаю о преимуществах GLP над BSD, конечно, всегда с точки зрения свободы.

    2.    Персонал сказал

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

    3.    Andekuera сказал

      ... Я бы хотел, чтобы было слышно больше киосков и меньше пандевов ...

  11.   Персонал сказал

    Статья несколько тенденциозна, начиная с заголовка, потому что тех, кого следует спросить, "немного ли они с ума", является LLVM, поскольку именно они горько жалуются.

    И по этому поводу вы можете увидеть лицемерие тех, кто первым выступил против того, что они называют «фрагментацией», и насколько «ужасно» это для свободных программ.
    Но когда кто-то согласен с тем, что он говорит и делает, следует его линии и не согласен с тем, что бесплатный компилятор становится платформой для бесконечного количества проприетарных компиляторов, тогда да, да здравствует, всем создавать форки!

  12.   Каналес сказал

    Бесплатное программное обеспечение по определению является общественным движением с момента его рождения.

    Что касается GPL и BSD:
    «Свобода 3 включает свободу публиковать ваши модифицированные версии как бесплатное программное обеспечение. Бесплатная лицензия может также разрешать другие формы публикации; другими словами, это не обязательно должна быть лицензия с авторским левом. Однако лицензия, которая требует, чтобы модифицированные версии были платными, не может считаться бесплатной ».
    «Копилефт (очень краткое определение) - это правило, основанное на том, что, когда вы распространяете программу, вы не можете добавлять ограничения, чтобы лишить других основных свобод. Это правило не противоречит основным свободам, а защищает их ».

    Как видите, авторское лево, хотя в краткосрочной перспективе отнимает некоторую свободу, в долгосрочной перспективе защищает ее. Вот почему г-н Столлман защищает GPL: «Моя работа в области свободного программного обеспечения мотивирована идеалистической целью: распространять свободу и сотрудничество».

  13.   Каналес сказал

    http://www.gnu.org/philosophy/open-source-misses-the-point.html

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

  14.   Даниэль Норьега сказал

    Я уже несколько раз прокомментировал это и продолжаю повторять, Linux в целом мне очень нравится, но если есть что-то, что я ненавижу в Linux, так это сообщество. Когда вы можете спрыгнуть с обрыва, чтобы продолжить придерживаться такой «закрытой» идеологии, как «бесплатное программное обеспечение», тогда вы понимаете, что мир перевернулся. Я думаю, что вначале свободное программное обеспечение было ясным, сегодня все обстоит иначе.

  15.   редкий случай сказал

    Я думаю, что многие не совсем ясно понимают условия и цели лицензии GPL. Лицензия GPL очень разрешающая, но с ограничением, не позволяющим получать прибыль от программ, лицензированных с ней. Я согласен со Столлманом, но не в крайности в использовании исключительно бесплатных программ. Пользователь хочет использовать LLvm / Clang - это его право, но для SLF желание заменить GCC на LLVM / Clang будет противоречить принципам свободного программного обеспечения.