LLVM / Clang。 UマッドGCC?

llvm-ロゴ

私はこの論争について投稿しなければなりませんでした LWNに投稿。 そしてそれはLLVM / Clangコンパイラが始めているということです 心配 GNUメーリングリストにあります。

昔々、GCCと呼ばれるコンパイラがありました。GCCは25年以上存在し、その無料のコピーレフトライセンスに大きな敬意を払い続けているだけでなく、Linuxカーネルや最近までFreeBSDで使用されていました。 CまたはC ++で開発する方法を学びたいと思った人は、マシンのアーキテクチャに関係なく、確かにGCCを使用していました。 しかし、GCCは特定の問題を抱えていました 秘密、一部はそれを作成した人々の哲学のため、一部はその大聖堂スタイルの開発のためであり、GCCで何が起こっているのか、何が起こっていないのか(現在はそれほど多くはないがまだ存在している)を強力に制御し、 GCCが最終的に採用したフロントエンドおよびその他の機能の構築方法。 の短い歴史についてもっと学ぶために EGCS, 私はこのリンクを残します.

一方、2002年頃のイリノイ大学アーバナシャンペーン校では、研究プロジェクトにより、フロントエンド、コードジェネレーター、オプティマイザーなどの個々の要素がモジュール化された方法で作成されたコンパイラーが作成されました。 彼らは彼を呼びます Llvm 最初は低レベルの仮想マシンでしたが、最終的にはそれ以上になりました。 そして彼らは彼に彼自身のライセンスを与えました BSDに似ています (無料、コピーレフトなし、GPL準拠)。 数年後、AppleはLLVMに興味を持ち、iOSおよびOS Xオペレーティングシステムに採用しました。LLVMと同じ無料ライセンスでリリース)と呼ばれる独自のフロントエンド クラン、CおよびObjective Cの場合。欠点は、LLVM / Clangが含まれる可能性があることです。 独自のプログラムでこれは、NVIDIAのCUDAコンパイラとAppleのIDEXCodeの場合です。

しかし、ある日、数週間前のemacsメーリングリストで、Clang用に設計された自動完了モードについての議論の最中に、 Dimitry gutov 「私はずっと前にリチャード・ストールマンと言われました クランがとても嫌い emacsでそれを使用するコードを含めることに反対した人。」 その後、これはclangとフリーソフトウェアに関する別の議論につながりました。 リチャード自身が明確にします:«私たちのポリシーは、Clangでは機能するがGCCでは機能しないGNUパッケージへの変更を受け入れないことです。 Emacsは人々がGCCから離れることを奨励しません。 機会があれば、ClangではなくGCCを使用することをお勧めします。」

その直後、エリック・レイモンドが現れ(オープンソースの定義とともに、大聖堂とバザールを作成することで有名)、半分は冗談を歌い、 ハーフトローリング, 行って言う LLVM / Clangは、相互運用性の向上に対するGCCプロジェクトの抵抗への対応であり、さらにClangはいくつかの技術的手段でGCCを上回っています。 彼によると (そして表示 ビデオ Chandler Carruthの講義から)、Clangの開発者は、GCCフロントエンドをソースコードを解析したいプログラムでリンクできるダイナミックライブラリに変換できない理由があるかどうかをストールマンに尋ねました。 ストールマンは、GCCのXNUMXつの目標は 避ける 独自のプログラムでそのパーツのいずれかを使用するため、さまざまなことを意図的に回避しました 可能な 彼らはそのような使用を容易にしたでしょう……..彼らはそれを考慮しました 役に立たない答え。 彼らはコンパイラコードを共有する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のバージョンに更新しようとしていました(彼らはただ欲しいだけです GPLのないBSD)、LLVM / Clangが彼らにやってくる 手袋のように.

要するに、永遠のGPL対BSD戦争における別の戦い。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   パンデブ92

    面白くないので、開発者を殺し合いましょう。

    1.    エリオタイム3000

      そのため、MicrosoftとAppleで働く不満のある労働者がもうXNUMX人います。

    2.    ランドマーク

      あなたは正しいです、私は誰でもそれを読むことができるようにソフトウェアが常に無料であることを支持します(それが私がLinuxをサポートして使用する唯一の理由です)、しかし結局プログラマーは最後の言葉を持っています。

  2.   f3niX

    良い記事、私はいつもディアゼパンの記事が好きです、彼らは普通ではありません。

  3.   ドイツ語

    真実は、それはgccの側では非常に愚かな考えであり、LLVMの作成者がgccの人にコードを提供し、彼らがそれを拒否したときのことです。CLangは、IDEが検証できるように設計されています。 Vim、Kate、emacsなどの高度なエディターとは別に、プライベートアプリだけでなくKDevelopやQtCreatorなどのオープンソースアプリにもメリットをもたらすリアルタイムのコード。 私は、同様のことがegcsで起こり、Linuxがegcsで起こったようにこれでコンパイルできるようになるとすぐに、gplライセンスの下で吸収されると思います。

    1.    エリオタイム3000

      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.   <XNUMXxCXNUMX><XNUMXxXNUMX> アンドデクエラ

    長生きするGNUとGPL!

    1.    エリオタイム3000

      彼らがアルコール、ギャンブル、そして女と自分のクランを作ることができるかどうか見てください。

      1.    <XNUMXxCXNUMX><XNUMXxXNUMX> アンドデクエラ

        ええ?

    2.    エリオタイム3000

      いいえ、リチャード。 SELinuxがNSAの仕事であるという事実は、他の非GPLライセンスツール(LLVM / CLangなど)が同じマトリックスからのものであることを意味するものではありません。

      真剣に、これには完全に合理的な動機があると思いましたが、FSFは岩田悟やMAFIAAのどのメンバーよりも保守的であることがわかります。

      1.    スタッフ

        メーリングリストを読んでおらず、行間で記事の内容にとどまっていることがわかります。
        技術的な選択肢も含めて合理的な議論がなされましたが、とにかく、タイトルを読んでコメントに飛び込むのは非常に一般的です。

  5.   かわいそうなタク

    ÑuhhhhGCC+ Emacs。 あなたが生き残りたいなら私の手を取りなさい(ストールマン)

  6.   エラヴ

    ピューリタンは私を許します、しかし私はそれを言わなければなりません:私はストールマンが好きではありませんでした、そしてそれは私の残りの日の間そのように思われます。

    あなたはそんなに心を閉ざすことはできません。 彼は狂信者で狂人のように見えます、そしてそうです、彼が彼の業績と彼の立場にどれほど敬意を払うに値するとしても、私は彼が好きではありません。

    1.    ジロニド

      同意する。 最初は彼がとても好きでしたが、今では極端すぎるようです...

      1.   

        過激派...クレイジー...狂信者...はい、それはあなたがそれをどのように見るかに依存します。 私にとって、リチャード・ストールマン氏は大きな社会意識を持った人です。 彼の人生の意味は、ソフトウェアではなく、社会を改善することでした。 フリーソフトウェアとオープンソースソフトウェアには違いがあり、前者は社会問題を探し、後者は技術的な問題を探します。

    2.    xlash

      エラフの仲間、それはピューリタンであるかどうかの問題ではありません。 無料のソフトウェアは社会運動として生まれました、そしてそれは多くの人がそうであるように、ストールマン氏が擁護するものです。

      あなたはそんなに心を閉ざすことはできません。 彼は狂信者で狂人のように見えます。そうです、彼の業績や彼の立場にどれほど敬意を払うに値するとしても、私は彼が好きではありません。»

      実際には、それは反対です。 目的は、独自の変更によって使用を制限することなく、誰でもソフトウェアに自由にアクセスできることです。以前のコメントで述べたように、彼らは無料のソフトウェアの開発を優先し、強調しています。

      あなたは狂信を別の用語と混同していると思います。 歴史がよく示しているように、狂信は殺します。 あなたが探している用語は急進的かもしれませんが、その急進主義がなければ、少なくとも今日私たちが知っているように、フリーソフトウェアとGNU / linuxの動きは存在しません。 クレイジーなことに関しては、私はそれについて異議を唱えませんが、私がここ数年で見たものを見ました、クレイジーな人々はそれほどクレイジーではありません。

      この段落で私は、フリーソフトウェア運動はコンピューター運動であるだけでなく、社会運動でもあり、それを擁護しなければならないことを言いたいと思います。 そしてElavの場合、あなたは社会について急進的でなければなりません。 AppleやMicrosoftのような企業は、この状況を利用することを躊躇しません。 私たちは、ユーザーと一般の人々の権利に関する意識を高める必要があります。

      PS私は彼に答えるためにElavと名付けましたが、コメントはすべてのGNU / linuxersに向けられています。

      乾杯!

      1.    Eさん

        @Xlash:SIR!…ありがとう! それは私が読む必要があったものです。 +1

        私はあなたをコピーし、それを印刷し、そしてそれを聖書の横に置きます。 (記録のために:その中または上ではありません)。
        結局、この動きとライナスとコミュニティの努力のおかげで、世界を変えた何かが達成されています。
        「以前はLinuxがあり、現在はLINUXがあります。」

      2.    <XNUMXxCXNUMX><XNUMXxXNUMX> アンドデクエラ

        +10

    3.    Eさん

      😀@ Elav:
      私は謝罪しませんが、私は言わなければなりませんでした:
      あなたの以前の投稿のいくつかは私を好きでしたが、これは好きではありません...そして彼らがこのように続ければ:多分それは私の残りの日の間そう続くでしょう。
      気を閉じないでください。 あなたは熱狂的で、狂気で、あなたの業績(このフォーラム)とあなたが値するものと同じくらい尊敬しているようです…私は好きではありません(あなたのコメント)。
      😀-へへ! これで、RMSと同じように(少し)体験できます。 あなたは彼と同じ拡散軌道を持っている必要があります、そしてまあ、ほとんどまったく同じように感じます。
      こんにちは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ライセンスでは独自の環境での使用が許可されていますが、作成者が認識されている限り(およびその派生物でさえ)、同じロジックを使用しますが、gplv2以降を使用します。

  10.   パンデブ92

    幸いなことに、ストールマンはしばらくの間ほとんど聞かれていません。 もうXNUMXつは、コンピュータープログラムまたはコンパイラーであり、無料ではない代替手段が常に存在することを除けば、社会問題になることはありません。 しかし、無料の場合。
    llvm clangに関しては、論争は意味がありません。ソースは常に存在するため、bsdライセンスの下でリリースされているため、企業が暗い目的で使用できるのは無料のソフトウェアであり、もはや使用できないことを意味するものではありません。元のコードにアクセスしますが、2つか3つを除いて、ここには誰も手がかりがありません。

    1.    xlash

      「コンピュータプログラムやコンパイラは決して社会的な問題にはなりません」
      どうですか? 私はあなたが他の多くの人のようにフリーソフトウェア運動を擁護しないことを尊重しますが、フリーソフトウェアが表すものを否定することは、それを擁護し作成することに多くの時間、お金、労力を費やす人々に対してあなたの側で無礼に思えます。

      もちろん、llvmは無料のソフトウェアですが、それはその変更と派生がそうであるという意味ではありません。 アイデアは、元のソフトウェアに自由にアクセスできるだけでなく、その変更にもアクセスできるようにすることです。 私がプログラムを開発してあなたと共有する場合、あなたがあなたの修正版のコピーを与える人々のために同じことをしてほしい。 これはフリーソフトウェアとコピーレフトが擁護するものであり、したがって、それは社会的な問題です。

      「でも、2つか3つを除いて、ここには誰も手がかりがありません。」
      ここに投稿されたコメントが、たとえ互換性があるとしても、XNUMXつのタイプのライセンスの違いを比較するソフトウェアの哲学と自由に言及しているときに、どのようにしてその結論に至ったのかわかりません。

      1.    ディアゼパン

        そのようなコンパイラでコンパイルされた会計プログラムを使用したプログラミングについて何も知らない会計士の日常生活にどのように影響しますか?

        1.    xlash

          私が自由である限り、まったくありません。 しかし、私がコメントで扱っている主題は別の、Diazepanです。 Xコンパイラを使用して独自のソフトウェアをコンパイルする方法、各コンパイラで使用されるライセンスとその違いについて説明します。また、もちろん自由の観点から、BSDに対するGLPの利点についても説明します。

    2.    スタッフ

      笑、誰も手がかりを持っていないと主張することは、ソフトウェアは社会的な問題ではないと言う人にとって非常に強い言葉です。
      無料のソフトウェアに(多かれ少なかれ)移行する国があり、すべての国際的なメディアによって独自のソフトウェアがどのようにツールであるかを反映している場合、それを見ないように盲目であるか、少なくともいくらか神秘的である必要があります世界で最も裕福な人が正確にオペレーティングシステムに専念しているときの大規模なスパイ活動。
      読むべきものがあります。

    3.    <XNUMXxCXNUMX><XNUMXxXNUMX> アンドデクエラ

      ...私はより多くの屋台とより少ないpandevsが聞かれることを望みます...

  11.   スタッフ

    この記事は、タイトルから始めてやや傾向があります。「少し頭がおかしくなる」かどうかを尋ねられるのはLLVMであり、彼らはひどく不平を言うからです。

    そして、この件に関しては、彼らが「断片化」と呼ぶものに対して最初に怒鳴った人々の偽善と、それがフリーソフトウェアにとってどれほど「ひどい」かを見ることができます。
    しかし、誰かが彼の言うことや行うことと一致し、彼の方針に従い、無料のコンパイラがプロプライエタリコンパイラの無限のプラットフォームになることに同意しない場合、そうです、長生きします、誰もがフォークを作成します!

  12.  

    フリーソフトウェアは、定義上、その誕生からの社会運動です。

    GPLとBSDについて:
    「Freedom3には、変更したバージョンをフリーソフトウェアとして公開する自由が含まれています。 無料ライセンスは、他の形式の出版を許可することもできます。 言い換えれば、それはコピーレフトライセンスである必要はありません。 ただし、変更されたバージョンを非フリーにする必要があるライセンスは、フリーとは見なされません。」
    「コピーレフト(非常に簡単に定義されている)は、プログラムを再配布するときに、他の人に主な自由を否定するための制限を追加できないという規則です。 この規則は主要な自由と矛盾せず、むしろそれらを保護します。」

    ご覧のとおり、コピーレフトは、短期的にはある程度の自由を奪いますが、長期的にはそれを保護します。 ストールマン氏がGPLを擁護しているのはそのためです。「フリーソフトウェアでの私の仕事は、自由と協力を広めるという理想的な目標によって動機付けられています。」

  13.  

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

    「オープンソースはプログラミング方法論であり、フリーソフトウェアは社会運動です。 フリーソフトウェア運動にとって、フリーソフトウェアは倫理的義務であり、ユーザーの自由を尊重するために不可欠です。 対照的に、オープンソースの哲学は、単に実用的な意味で、ソフトウェアを「改善」する方法の観点から疑問を投げかけます。 プロプライエタリソフトウェアは、解決すべき実際的な問題に対する最適な解決策ではないと主張しています。 ほとんどの場合、「オープンソース」について議論するとき、善と悪は考慮されず、人気と成功だけが考慮されます。」

  14.   ダニエル・ノリエガ

    私はすでに何度かコメントしていて、繰り返し続けています。Linuxは一般的にとても好きですが、Linuxについて嫌いなことがあれば、それはコミュニティです。 「フリーソフトウェア」のように「閉じた」イデオロギーを続けるために崖を飛び降りることができるとき、あなたは世界が逆さまになっていることに気づきます。 当初はフリーソフトウェアがそれについて明確だったと思いますが、今日は話が異なります。

  15.   まれなケース

    多くの人がGPLライセンスの条件と目的について明確になっていないと思います。 GPLライセンスは非常に寛容ですが、GPLライセンスでライセンスされたプログラムからの利益を許可しないという制限があります。 私はストールマンに同意しますが、フリーソフトウェアだけを使用するという極端なことではありません。 ユーザーがLLvm / Clangを使用したいのは彼らの権利ですが、SLFがGCCをLLVM / Clangに置き換えたいのは、フリーソフトウェアの原則と矛盾するでしょう。