LLVM / lang語瘋狂的GCC?

llvm徽標

我不得不寫一篇關於這個爭議的文章 發表在LWN。 正是LLVM / Clang編譯器開始 擔心 在GNU郵件列表中。

曾幾何時,有一個名為GCC的編譯器,它的存在已超過25年,一直對其自由和版權保留許可以及Linux內核以及直到最近由FreeBSD所使用的編譯器表示敬意。 任何想學習如何用C或C ++開發的人,無論計算機的體系結構如何,都一定會使用GCC。 但是,海灣合作委員會遭受了 保密一方面是由於創建者的理念,另一方面是由於其大教堂式的發展,即對海灣合作委員會(GCC)中正在發生的事情和尚未發生的事情(現在沒有那麼多但仍然存在)進行了強有力的控制,從而開啟了GCC最終採用的構建前端和其他功能的方法。 要了解有關...的短暫歷史的更多信息 電子控制系統, 我離開這個連結.

同時,大約在2002年,在伊利諾伊大學香檳分校的一個研究項目中,創建了一個以模塊化方式創建的編譯器,以使其前端,代碼生成器和優化器等各個元素得以創建。 他們叫他 LLVM 因為起初它是一個低級虛擬機,但最終卻超出了它。 他們用他自己的許可證給他頒發了許可證, 類似於BSD (免費,不是copyleft,符合GPL)。 多年後,Apple對LLVM產生了興趣,並將其用於iOS和OS X操作系統,以及並以與LLVM相同的免費許可發布)您自己的前端 ,對於C和目標C。不利之處是可能包含LLVM / Clang 在專有程序中NVIDIA的CUDA編譯器和Apple的IDE XCode就是這種情況。

但是幾週前的一天,在emacs郵件列表上,在有關為Clang設計的自動完成模式的討論中, 迪米特里·古托夫 說:“很久以前我被告知理查德 非常討厭Clang 誰反對在emacs中包含使用它的代碼。” 後來引發了關於clang和自由軟件的另一討論,其中 理查德本人澄清:«我們的政策是不接受對任何可用於Clang但不適用於GCC的GNU軟件包的更改。 Emacs不會鼓勵人們離開GCC。 如果有機會,我們將鼓勵在Clang上使用GCC。”

不久之後,埃里克·雷蒙德(Eric Raymond)(以創造大教堂和集市而聞名,以及開放源代碼的定義)出現了,誰在半場唱歌, 半拖, 去說 LLVM / Clang是對GCC項目對更高互操作性的抵制的回應,此外,Clang在多項技術措施方面均優於GCC。 據他介紹 (並顯示 一個視頻 (來自Chandler Carruth的演講),Clang開發人員問Stallman,是否有任何理由無法將GCC前端轉換為可被任何要解析源代碼的程序鏈接的動態庫。 斯托曼回答說,海灣合作委員會的一個目標是 避免 專有程序來使用它的任何部分,因此他們故意避免了各種各樣的事情 posiblemente 本來會促進這種使用……他們認為 無益的答案。 他們想創建共享編譯器代碼的IDE和其他工具,而GCC不允許這樣做,因此 創建Clang並將GCC發送到/ dev / null。 GCC開發人員 他們跳到他bit子上 未被充分告知的事實(事實是Clang在多項技術措施中擊敗了GCC)。 在妓女中間,斯托曼似乎在說 LLVM是可怕的退步,並非出於技術原因,僅出於其非Copyleft許可(使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. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   潘德夫92 他說:

    沒意思,讓我們讓開發人員互相殘殺。

    1.    埃利奧時間3000 他說:

      因此,我們還有另外一個不滿意的員工在Microsoft和Apple工作。

    2.    馬科斯 他說:

      沒錯,我支持該軟件始終免費,以便任何人都可以閱讀(這是我支持和使用Linux的唯一原因),但最終程序員才是硬道理。

  2.   F3NIX 他說:

    很好的文章,我一直喜歡diazepan文章,它們與眾不同。

  3.   德語 他說:

    事實是,對於gcc而言,這是一個非常愚蠢的想法,更多時候是LLVM的創建者向gcc的代碼提供了代碼,但他們拒絕了它,CLang的設計目的是讓IDE可以驗證實時代碼,不僅有益於私人應用程序,還包括諸如Vim,Kate,emacs等高級編輯器的開源程序(如KDevelop或QtCreator)。 我想,egcs最終會發生類似的事情,一旦像egcs發生的那樣使用linux進行編譯,它將在gpl許可下被吸收

    1.    埃利奧時間3000 他說:

      如果他們不能改善EGCS和/或使其成為CLang的最佳替代品,我將選擇CLang和LLVM。

    2.    超短線 他說:

      笨? 我不這麼認為。 GCC不能用於創建專有軟件的事實是優先開發自由軟件的一種方式,並且沒有將其用於專有軟件的開發。 它是捍衛自由軟件的一種方法,因此應予以支持。 斯托曼先生是絕對正確的,這是倒退的一步。 此外,如文章中所述,像Apple這樣的公司將從LLVM / Clang中受益,而無需對社區做出絕對的貢獻,也無需對該項目給予任何榮譽。

      乾杯!

      1.    德語 他說:

        GCC和LLVM / CLANG都可以編譯專有軟件,不能修改的是GCC,並且不知道這些修改。 LLVM / CLANG可以重新授權為gpl,它們之間的最大區別是,對於LLVM / CLANG,他們必須使用C ++,而GCC的則直到最近才希望看到它或對其進行繪製。 從我的角度來看,與其將GCC改寫成C ++,不如將它們移植到GCC支持的架構上,而LLVM / CLANG則不支持,而將語言移植到後者,並擁有更簡潔的代碼並維護它們自己的發展部門

    3.    us 他說:

      我認為您的觀點是沒有根據的,在技術問題之上是免費軟件。 這正是斯托曼先生最擔心的問題。 從我看來,最適合您的是技術部分,您是正確的,但是當您沒有選擇權時,因為公司接管了您的技術,您會三思而後行。
      另一方面,使用GCC,您可以實時驗證代碼,正如我重複的,您的觀點是沒有根據的。

      1.    德語 他說:

        1-如果GCC派生LLVM / CLANG和company並將其重新許可為GPL,則該派生中包含的所有代碼將在GPL之下,並且LLVM將必須請求重新許可它並將其包含在其回購中。 謹此通知您,許可證類型MIT(XORG,WAYLAND,...)或BSD(FreeBSD,...)與LLVM一樣允許
        2-使用GCC,您無法通過它提供的庫(與CLANG不同)實時實現代碼完成自動或代碼驗證程序
        3-LLVM是GCC的高級解決方案,不僅在技術上而且在效率上,LLVM / CLANG二項式僅花費一半的時間進行編譯

  4.   安德庫拉 他說:

    GNU和GPL萬歲!

    1.    埃利奧時間3000 他說:

      看看他們是否可以用酒精,賭博和蕩婦來製作自己的CLang。

      1.    安德庫拉 他說:

        是嗎?

    2.    埃利奧時間3000 他說:

      不,理查德。 SELinux是NSA的工作,這並不意味著任何其他未經GPL許可的工具(例如LLVM / CLang)都來自同一矩陣。

      認真地說,我認為這樣做是有完全理性的動機的,但是我發現,自由軟件基金會比岩田聰(Satoru Iwata)或MAFIAA的任何成員都更為保守。

      1.    員工管理 他說:

        可以看出,您沒有閱讀郵件列表,而是按照文章的內容行了。
        給出了合理的論據,甚至提供了技術選擇,但是無論如何,閱讀標題並直接進入註釋是很常見的。

  5.   可憐的taku 他說:

    ÑuhhhhGCC + Emacs。 如果您想生存,請牽我的手(斯托曼)

  6.   拉夫 他說:

    清教徒會原諒我,但我不得不說:我從不喜歡斯托曼,在我餘下的日子裡似乎都是這樣。

    你不能那麼拘謹。 他看起來像是一個狂熱者,一個瘋子,是的,無論他對自己的成就和自己的立場有多麼的尊重,我都不喜歡他。

    1.    氧化鋯 他說:

      我同意。 起初我很喜歡他,但現在他似乎太極端了……

      1.    卡納萊斯 他說:

        極端主義者...瘋狂的...狂熱的...是的,這取決於您如何看待它。 對我來說,理查德·斯托曼先生是一個有巨大社會良知的人。 他一生的意義一直是並且正在改善社會,而不是軟件。 自由軟件/開源軟件之間的區別在於,前者關注社會問題,而後者關注技術問題。

    2.    超短線 他說:

      埃拉夫(Elav)伴侶,這不是成為清教徒的問題。 自由軟件是作為一種社會運動而誕生的,這就是斯托曼先生和許多人一樣捍衛的。

      你不能那麼拘謹。 他看起來像是一個狂熱者,一個瘋子,是的,無論他應該為自己的成就獲得多大的尊重以及他所代表的立場,我都不喜歡他。

      實際上,情況恰恰相反。 目的是任何人都可以自由訪問該軟件,而無需任何人通過專有修改來限制其使用,並且正如我在之前的評論中所說,他們優先考慮並強調了自由軟件的開發。

      我認為您將狂熱與另一個術語混淆了。 正如歷史所證明的那樣,狂熱主義致死。 您正在尋找的術語可能是激進的,但沒有這種激進主義,至少就目前我們所知,自由軟件和GNU / Linux運動將不存在。 關於瘋狂的事情,我沒有爭議,但是看到我幾年來所看到的,瘋狂的人們並沒有那麼瘋狂。

      在本段中,我想說的是,自由軟件運動不僅是計算機運動,而且是社會運動,必須加以捍衛。 如果是埃拉夫(Elav),您必須對社會保持激進態度。 蘋果或微軟等公司會毫不猶豫地利用這種情況。 我們必須提高對用戶和人民權利的認識。

      PS我之所以命名為Elav,是因為我回答了他,但評論是針對所有GNU / linuxers的。

      乾杯!

      1.    先生 他說:

        @Xlash:先生!…謝謝! 這就是我需要閱讀的內容。 +1

        我複印你,打印出來,然後放在聖經的一邊。 (出於記錄:不在其上方或上方)。
        最後,得益於此舉以及Linus和社區的努力,正在取得一些改變世界的成就:
        “ Linux之前存在,而LINUX現在存在。”

      2.    安德庫拉 他說:

        + 10

    3.    先生 他說:

      😀@Elav:
      我沒有道歉,但我不得不說:
      您以前的一些帖子喜歡我,但不喜歡我...如果他們繼續這樣:也許在我餘下的時間裡,情況會一直如此。
      不要心胸狹窄。 您似乎狂熱,瘋狂,並受到與您的成就(此論壇)和您應得的成就一樣的尊重...我不喜歡(您的評論)。
      😀-呵呵! 現在您可以體驗到(與RMS相同)。 您只需要擁有與他相同的擴散軌跡,並且感覺幾乎完全一樣即可。
      問候cuñao!

  7.   氧化鋯 他說:

    我不明白為什麼斯托曼如此封閉。 我冒著風險說我認為LLVM比GCC更免費,因為它甚至在專有程序中也提供了使用它的自由。 是的,我知道GCC中的限制可以幫助自由軟件,但是以這種方式反對LLVM對我來說似乎很荒謬。

    問候

    1.    威爾遜 他說:

      斯托曼尚未關閉。 本文非常傾向於作者的個人觀點。
      實際上,海灣合作委員會的決定主要是技術性的。 在GCC中,他們想要模塊化並且正在這樣做,但是採用了不同的方式(避免CLANG中確實存在問題)。
      有關更多信息 https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      這就是雷蒙德(Raymond)所寫的,並且得到了開發人員的回應。

  8.   聖克魯克 他說:

    在我看來,這似乎是誰在做的更大。
    兩種編譯器都很出色。 但是,像任何工具一樣,它取決於您的使用方式。
    可以用C#編寫免費代碼,然後使用Linux製作導彈。

  9.   高盧克斯 他說:

    我認為在這裡您應該更加務實。 斯托曼應該有遠見,而不要迷失方向。 令人擔憂的是,當前的社區並不零散,這是正在發生的事情。 最明智的是,儘管bsd許可證允許在專有環境中使用它,但只要能夠認可作者(甚至包括他們的派生),便使用相同的邏輯,但使用gpl v2或更高版本。

  10.   潘德夫92 他說:

    幸運的是,一段時間以來幾乎沒有人聽說過攤販。 另一個,計算機程序或編譯器,永遠不會成為一個社會問題,除了總有一些並非免費的替代方案! 但免費。
    關於llvm clang,該爭議沒有任何意義,因為源將永遠是bsd許可下發布的,因此它是免費軟件,公司可以將其用於黑暗目的,並不意味著您無法再訪問原始代碼,但我知道,這裡只有2或3個線索。

    1.    超短線 他說:

      “計算機程序或編譯器永遠不會成為社會問題”
      那不是什麼意思我認為您不會像其他許多人一樣捍衛自由軟件運動,但是否認自由軟件代表的是對您個人的無禮,這對於那些花費大量時間,金錢和精力來捍衛和創造自由的人們而言。

      當然llvm是免費軟件,但這並不意味著它的修改和派生。 這個想法不僅是為了能夠自由訪問原始軟件,還在於它的修改。 如果我開發一個程序並與您共享,那麼我希望您對將要提供修改版本的人也這樣做。 這就是自由軟件和copyleft捍衛的東西,因此,這是一個社會問題。

      “但是我知道,除了2或3,這裡沒有人有任何線索。”
      當此處發布的評論指的是比較兩種許可證之間的差異(即使它們彼此兼容)的軟件的哲學和自由性時,我不知道您如何得出結論。

      1.    透澤潘 他說:

        一無所知的會計人員的日常生活如何影響用這種編譯器編譯的會計程序?

        1.    超短線 他說:

          一點也不,只要我有空。 但是我在評論中處理的主題是另一個主題,Diazepan。 我談論的是使用X編譯器來編譯專有軟件,談論每個編譯器中使用的許可證及其區別,我也總是從自由的角度出發,提到GLP優於BSD的優勢。

    2.    員工管理 他說:

      大聲笑,聲稱沒有人有主意,這對於說軟件不是社會問題的人來說是非常有說服力的話。
      當甚至有一些國家(或多或少地)遷移到自由軟件時,或者當所有國際媒體都在迴響專有軟件如何成為私有軟件的工具時,您必須是盲目的或者至少有些近視才能看不到它。當世界上最富有的人正致力於操作系統時,就會大規模地進行間諜活動。
      有什麼要閱讀。

    3.    安德庫拉 他說:

      ...我希望聽到更多的攤販和更少的Pandevs ...

  11.   員工管理 他說:

    文章從標題開始有點傾向,因為LLVM是那些被問到是否“變得有點瘋狂”的人,因為他們是痛苦的抱怨者。

    在這個問題上,您會看到那些最先嘲笑他們所謂的“碎片化”的人的虛偽,以及自由軟件對他們的“可怕”。
    但是,當某人與他的言論和所作所為一致時,遵循了他的說法,並且不同意免費編譯器成為無數專有編譯器的平台,那麼,是的,萬歲,所有人都可以創建派生!

  12.   卡納萊斯 他說:

    從定義上講,自由軟件是一種社會運動。

    關於GPL與BSD:
    “ Freedom 3包含將修改後的版本發佈為自由軟件的自由。 免費許可證還可以授權其他形式的出版; 換句話說,它不必是copyleft許可證。 但是,要求修改版本為非免費的許可證不能被視為免費。”
    “ Copyleft(非常簡短地定義)是一個規則,基於該規則,當您重新分發程序時,不能添加限制以拒絕他人享有主要自由。 這條規則與主要自由並不衝突,而是保護了他們。”

    如您所見,copyleft雖然在短期內會奪走一些自由,但從長遠來看會保護它。 這就是為什麼Stallman先生為GPL辯護的原因:“我在自由軟件方面的工作受到理想主義目標的激勵:傳播自由與合作。”

  13.   卡納萊斯 他說:

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

    “開源是一種編程方法,自由軟件是一種社會運動。 對於自由軟件運動,自由軟件是道德上的當務之急,對用戶自由至關重要。 相反,開源哲學僅在實際意義上就如何“改進”軟件提出了問題。 它認為專有軟件不是解決實際問題的最佳解決方案。 在大多數情況下,在討論“開源”時,不考慮善與惡,而只考慮流行和成功。”

  14.   丹尼爾·諾列加(Daniel Noriega) 他說:

    我已經對它進行了數次評論,並且我會重複一遍,總的來說,我很喜歡linux,但是如果我討厭linux,那是社區。 當您能夠跳下懸崖以繼續像“自由軟件”那樣“封閉”的意識形態時,您就會意識到世界已經顛覆了。 我認為免費軟件一開始就很清楚,但今天的情況有所不同。

  15.   罕見的情況 他說:

    我相信許多人不清楚GPL許可的條款和目的。 GPL許可是非常寬鬆的,但其限制是不允許從使用其許可的程序中獲利。 我同意Stallman的觀點,但不能完全拒絕使用自由軟件。 對於用戶來說,使用LLvm / Clang是他們的權利,但是對於SLF,要用LLVM / Clang代替GCC將與自由軟件的原則相矛盾。