LLVM / Clang. U Mad GCC?

llvm-логотип

Мені довелося написати пост про цю суперечку розміщено у LWN. І саме це починає робити компілятор LLVM / Clang турбуватися у списках розсилки GNU.

Колись існував компілятор під назвою GCC, який із своїм більш ніж 25-річним існуванням продовжує дуже поважати свою безкоштовну ліцензію та копілефт, а також є компілятором, що використовується ядром Linux і донедавна FreeBSD. Той, хто хотів навчитися розробляти на C або C ++, напевно використовував GCC незалежно від архітектури своєї машини. Однак GCC потерпав від певної секретність, частково через філософію тих, хто її створив, а почасти через розвиток у соборному стилі, де здійснювався сильний контроль над тим, що відбувається в країнах Першого Сребра, а що ні (зараз не так багато, але все ще існує), що відкрило шлях до побудова інтерфейсів та інші особливості, які зрештою прийняв GCC. Щоб дізнатися більше про коротку історію EGCS, Я залишаю це посилання.

Тим часом в Університеті Іллінойсу в Урбана-Шампейн близько 2002 року дослідницький проект призвів до створення компілятора, створеного модульним способом, щоб його окремі елементи, такі як інтерфейси, генератори коду та оптимізатори. Вони кличуть його LLVM тому що спочатку це була віртуальна машина низького рівня, але в підсумку це було більше, ніж це. І вони ліцензували його за власною ліцензією, яка і була подібний до BSD (безкоштовно, не копілефт, відповідає GPL). Роками пізніше Apple зацікавилася LLVM і прийняла його для своїх операційних систем iOS та OS X, а також для створення (і випустити за тією самою безкоштовною ліцензією, що і LLVM) Ваш власний інтерфейс називається Кланг, для C та цілі C. Недоліком є ​​можливість включення LLVM / Clang у власних програмахТакий випадок із компілятором CUDA від NVIDIA та IDE XCode від Apple.

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

Незабаром з’являється Ерік Реймонд (відомий створенням Собору та Базару, поряд із визначенням відкритого джерела), який, наполовину заспівавши змагання, наполовину тролінг, іде і каже що LLVM / Clang був відповіддю на опір проекту GCC щодо того, щоб бути більш сумісним, плюс Clang перевершує GCC за кількома технічними заходами. Згідно з ним (і показуючи відео з лекції Чандлера Каррута), розробники Clang запитали Столлмана, чи є якась причина, через яку інтерфейси GCC не можуть бути перетворені в динамічні бібліотеки, які можуть бути пов'язані будь-якою програмою, яка хоче проаналізувати вихідний код. Столлман відповів, що однією з цілей GCC є уникнути власні програми для використання будь-якої з її частин, тому вони навмисно уникали різних речей, які poiblemente вони б сприяли такому використанню …… .., що вони вважали безрезультатна відповідь. Вони хотіли створити 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 проти BSD.


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   pandev92 - сказав він

    Нецікаво, дозвольмо розробникам вбивати один одного.

    1.    eliotime3000 - сказав він

      Отже, у нас є ще один незадоволений працівник, який працюватиме в Microsoft та Apple.

    2.    Маркос - сказав він

      Ви маєте рацію, я підтримую, що програмне забезпечення завжди безкоштовне, щоб ЛЮБА людина могла його прочитати (це єдина причина, чому я підтримую та використовую Linux), але врешті-решт програмісти мають останнє слово.

  2.   f3niX - сказав він

    Хороша стаття, мені завжди подобаються статті про діазепан, вони виходять незвичайними.

  3.   Герман - сказав він

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

    1.    eliotime3000 - сказав він

      Якщо вони не можуть вдосконалити EGCS та / або зробити його найкращою заміною CLang, я піду до CLang та LLVM.

    2.    xlash - сказав він

      Дурний? Я так не думаю. Той факт, що GCC не може бути використаний для створення власного програмного забезпечення, є способом пріоритетного розвитку вільного програмного забезпечення та не використання його переваг для розвитку власного програмного забезпечення. Це спосіб захистити вільне програмне забезпечення, тому його слід підтримувати. Містер Столлман абсолютно правий, це крок назад. Крім того, такі компанії, як Apple, як згадується в статті, отримають вигоду від LLVM / Clang, не вносячи абсолютно жодного внеску в спільноту та не надаючи жодного кредиту проекту.

      Вітайте люди!

      1.    Герман - сказав він

        Як GCC, так і LLVM / CLANG можуть компілювати власне програмне забезпечення; те, що не може бути змінено, це GCC і не робити ці зміни відомими. LLVM / CLANG можна переліцензувати як gpl, найбільша відмінність між ними полягає в тому, що для LLVM / CLANG їм доводиться використовувати C ++, а представники GCC до останнього часу не хотіли його бачити або фарбувати. З моєї точки зору, замість того, щоб переписувати GCC на C ++, як вони це роблять зараз, вони повинні були перенести архітектури, які підтримує GCC, а LLVM / CLANG - не, а мови - на останню, мати чистіший код та підтримувати власну гілку розвитку

    3.    артрус - сказав він

      Я думаю, ваша думка необґрунтована, над технічними проблемами стоїть вільне програмне забезпечення. Саме це найбільше стосується пана Столмена. Найкраще для вас я бачу технічну частину, і ви в своєму праві, але коли у вас немає вибору, оскільки компанія взяла на себе вашу технологію, ви добре подумаєте.
      З іншого боку, за допомогою GCC ви можете перевірити код в режимі реального часу, як я повторюю, ваша думка необґрунтована.

      1.    Герман - сказав він

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

  4.   Сандекура - сказав він

    Хай живе GNU та GPL!

    1.    eliotime3000 - сказав він

      Подивіться, чи зможуть вони створити власну CLang за допомогою алкоголю, азартних ігор та повій.

      1.    Сандекура - сказав він

        так?

    2.    eliotime3000 - сказав він

      Ні, Річард. Той факт, що SELinux є роботою АНБ, не означає, що будь-який інший інструмент, що не має ліцензії GPL (наприклад, LLVM / CLang), походить з тієї ж матриці.

      Серйозно кажучи, я вважав, що для цього є цілком раціональний мотив, але я бачу, що ФСБ є більш консервативними, ніж Сатору Івата чи будь-який член МАФІАА.

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

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

  5.   бідне так - сказав він

    Ñuhhhh GCC + Emacs. Якщо ти хочеш вижити, візьми мене за руку (стійло)

  6.   елав - сказав він

    Пуритани збираються мене вибачити, але я повинен сказати це: мені ніколи не подобався Столлман, і, мабуть, це стосується решти моїх днів.

    Не можна бути таким замкнутим. Він здається фанатиком, божевільним, і так, стільки поваги, скільки він заслуговує за свої досягнення і те, за що він виступає, я його не люблю.

    1.    Зіронід - сказав він

      Я згоден. Спочатку він мені дуже подобався, але зараз він здається занадто екстремальним ...

      1.    The - сказав він

        Екстреміст ... божевільний ... фанатик ... так, це залежить від вашого погляду. Для мене пан Річард Столлман - людина з величезною соціальною совістю. Сенсом його життя було і є вдосконалення суспільства, а не програмного забезпечення. Існує різниця між вільним програмним забезпеченням / програмним забезпеченням з відкритим кодом, оскільки перший шукає соціальних проблем, а другий - технічних.

    2.    xlash - сказав він

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

      Не можна бути таким замкнутим. Він здається фанатиком, божевільним, і так, хоч би скільки поваги він заслужив за свої досягнення і за що він виступає, я його не люблю ».

      Власне, все навпаки. Мета полягає в тому, що кожен може вільно отримати доступ до програмного забезпечення, не обмежуючи його використання власними модифікаціями, і, як я вже говорив у своєму попередньому коментарі, вони надають пріоритети та наголошують на розробці вільного програмного забезпечення.

      Думаю, ви плутаєте фанатизм з іншим терміном. Як свідчить історія, фанатизм вбиває. Термін, який ви шукаєте, може бути радикальним, але без цього радикалізму вільного програмного забезпечення та руху GNU / linux не існувало б, принаймні, як ми це знаємо сьогодні. Щодо божевільної речі, я не буду з вами сперечатися, але побачивши те, що я бачив за ці пару років, божевільні люди не такі вже й божевільні.

      Цим пунктом я хочу сказати, що рух за вільне програмне забезпечення - це не лише рух комп’ютерів, а й соціальне, і його потрібно захищати. І якщо Елав, то потрібно бути радикальним щодо соціального. Такі компанії, як Apple або Microsoft, не соромлячись скористаються обставинами. Ми повинні підвищити обізнаність щодо прав користувачів та людей загалом.

      PS Я називаю Елава, тому що відповідаю йому, але коментар спрямований на всіх GNU / linuxers.

      Вітайте Люди!

      1.    Mr_E - сказав він

        @Xlash: СПАДАР! ... Дякую! Це те, що мені потрібно було прочитати. +1

        Я копіюю вас, друкую і відкладаю на бік Біблії. (Для запису: ні в ній, ні зверху).
        Зрештою, завдяки цьому кроку та зусиллям Лінуса та громади робиться щось, що змінило світ:
        "Існує раніше Linux і ЗАРАЗ з LINUX."

      2.    Сандекура - сказав він

        +10

    3.    Mr_E - сказав він

      E @Elav:
      Я не прошу вибачення, але мені довелося сказати:
      Деякі з ваших попередніх дописів мені сподобались, але не цей ... і якщо вони продовжуватимуться так: можливо, так буде і до кінця моїх днів.
      Не будьте замкнутими. Ви здаєтесь фанатиком, божевільним і поважаєте стільки, скільки ваші досягнення (цей форум) і те, що ви заслуговуєте ... Мені не подобається (ваш коментар).
      😀 - хе-хе! тепер ви можете відчути (трохи) те саме, що і середньоквадратичне значення. Вам просто потрібно мати таку ж дифузійну траєкторію, як і він, і ну, відчувати майже точно те саме.
      Вітаю Cuñao!

  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.   pandev92 - сказав він

    На щастя, за останній час майже не чули стійла. Інше, комп’ютерна програма чи компілятор, ніколи не буде соціальним питанням, крім того, що завжди існували альтернативи, які не є безкоштовними! але якщо безкоштовно.
    Стосовно llvm clang, суперечка не має сенсу, оскільки джерело завжди буде там, воно випущено під ліцензією bsd, отже, це вільне програмне забезпечення, яке компанія може використовувати для своїх темних цілей, це не означає, що ви більше не можете отримати доступ до оригінального коду, але я бачу, тут ніхто не знає, крім 2 або 3.

    1.    xlash - сказав він

      "Комп’ютерна програма або компілятор ніколи не буде соціальним питанням"
      Що ти не маєш на увазі? Я поважаю, що ви не захищаєте рух за вільне програмне забезпечення, як багато інших, але заперечення того, що представляє вільне програмне забезпечення, здається неповажним з вашого боку до людей, які витрачають багато часу, грошей та зусиль на його захист та створення.

      Звичайно, llvm - це вільне програмне забезпечення, але це не означає, що його модифікації та виведення є. Ідея полягає не лише у можливості вільного доступу до оригінального програмного забезпечення, а й до його модифікацій. Якщо я розроблю програму і поділюся нею з вами, я хотів би, щоб ви зробили те саме для людей, яким ви надали б копію модифікованої версії. Це те, що захищають вільне програмне забезпечення та копілефт, отже, це соціальне питання.

      "Але я бачу, тут ніхто не знає, окрім 2 чи 3".
      Я не знаю, як ви прийшли до такого висновку, коли розміщені тут коментарі стосуються філософії та свободи програмного забезпечення, порівнюючи відмінності між двома типами ліцензій, навіть якщо вони сумісні між собою.

      1.    діазепан - сказав він

        Як повсякденне життя бухгалтера, який нічого не знає про програмування, впливає на бухгалтерську програму, складену за допомогою такого компілятора?

        1.    xlash - сказав він

          Зовсім не, поки я вільний. Але тема, якою я займаюся в коментарях, - інша, Діазепан. Я говорю про використання компілятора X для компіляції власного програмного забезпечення, про ліцензії, що використовуються в кожному компіляторі, та їхні відмінності, я також згадую про перевагу GLP перед BSD, завжди з точки зору свободи, звичайно.

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

      LOL, стверджуючи, що ніхто не має ідеї, - це дуже сильні слова для того, хто каже, що програмне забезпечення не є соціальною проблемою.
      Ви повинні бути сліпими або, принаймні, дещо короткозорими, щоб цього не бачити, коли є навіть країни, які мігрують (більшим чи меншим відсотком) до вільного програмного забезпечення, коли всі міжнародні ЗМІ відлунюють, наскільки власне програмне забезпечення є інструментом для широкомасштабне шпигунство, коли найбагатша людина у світі саме присвячена операційній системі.
      Що там читати.

    3.    Сандекура - сказав він

      ... Я б хотів, щоб було більше чуток і менше пандевів ...

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

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

    І з цього питання ви можете побачити лицемірство тих, хто вперше виступив проти того, що вони називають "фрагментацією", і наскільки це "жахливо" для вільного програмного забезпечення.
    Але коли хтось узгоджується з тим, що він говорить і робить, слідує його лінії і не погоджується з тим, що безкоштовний компілятор стає платформою для нескінченності власних компіляторів, тоді так, хай живе кожен, щоб створювати форки!

  12.   The - сказав він

    Вільне програмне забезпечення - це соціальний рух з моменту його народження за визначенням.

    Щодо GPL проти BSD:
    «Freedom 3 включає свободу публікувати ваші змінені версії як безкоштовне програмне забезпечення. Безкоштовна ліцензія може також дозволити інші форми публікації; іншими словами, це не повинна бути ліцензія на копілефт. Однак ліцензія, яка вимагає, щоб модифіковані версії були невільними, не може вважатися безкоштовною ".
    «Копілефт (дуже коротко визначений) - це правило, на основі якого при перерозподілі програми ви не можете додавати обмеження, щоб позбавити інших основних свобод. Це правило не суперечить основним свободам, навпаки, захищає їх ".

    Як бачите, копілефт, хоча в короткостроковій перспективі забирає певну свободу, в довгостроковій перспективі захищає. Ось чому пан Столлман захищає GPL: "Моя робота у галузі вільного програмного забезпечення мотивована ідеалістичною метою: поширювати свободу та співпрацю".

  13.   The - сказав він

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

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

  14.   Даніель Норієга - сказав він

    Я вже коментував це кілька разів, і я продовжую це повторювати, linux взагалі мені дуже подобається, але якщо в Linux я щось ненавиджу, це спільнота. Коли ти можеш зістрибнути зі скелі, щоб продовжувати ідеологію, настільки закриту, як "вільне програмне забезпечення", тоді ти розумієш, що світ перевернутий. Я думаю, що спочатку вільне програмне забезпечення про це було зрозуміло, сьогодні історія інша.

  15.   рідкісний випадок - сказав він

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