LLVM / Clang. U Mad GCC?

logo-llvm

Ho dovuto scrivere un post su questa controversia pubblicato in LWN. Ed è che il compilatore LLVM / Clang sta iniziando a preoccupazione nelle mailing list GNU.

C'era una volta un compilatore chiamato GCC che con i suoi oltre 25 anni di esistenza continua ad avere grande rispetto per la sua licenza libera e copyleft, oltre ad essere il compilatore utilizzato dal kernel Linux e fino a poco tempo fa da FreeBSD. Chiunque volesse imparare a sviluppare in C o C ++, sicuramente utilizzava GCC indipendentemente dall'architettura della propria macchina. Tuttavia, GCC ha sofferto di un certo segretezza, in parte a causa della filosofia di coloro che l'hanno creato e in parte a causa del suo sviluppo in stile cattedrale, dove è stato esercitato un forte controllo su ciò che stava accadendo a GCC e ciò che non lo era (ora non così tanto ma esiste ancora), che ha aperto la strada al costruzione di front-end e altre caratteristiche che GCC alla fine ha adottato. Per saperne di più sulla breve storia di GECT, Lascio questo link.

Nel frattempo, presso l'Università dell'Illinois a Urbana-Champaign intorno al 2002, un progetto di ricerca ha portato alla creazione di un compilatore creato in modo modulare in modo che i suoi singoli elementi come front-end, generatori di codice e ottimizzatori. Lo chiamano LLVM perché all'inizio era una macchina virtuale di basso livello ma alla fine è stata qualcosa di più. E gli hanno concesso la licenza con la sua licenza, che era simile a BSD (gratuito, non copyleft, conforme alla GPL). Anni dopo, Apple si interessò a LLVM e lo adottò per i suoi sistemi operativi iOS e OS X, oltre a creare (e rilasciare con la stessa licenza gratuita di LLVM) chiamato dal tuo front-end clangore, per C e Obiettivo C. Lo svantaggio è la possibilità di includere LLVM / Clang in programmi proprietariQuesto è il caso del compilatore CUDA di NVIDIA e dell'IDE XCode di Apple.

Ma un giorno, qualche settimana fa nella mailing list di emacs, nel bel mezzo di una discussione su una modalità di completamento automatico progettata per Clang, Dimitry gutov dice "Molto tempo fa mi è stato detto che Richard Stallman odiava così tanto Clang chi era contrario a includere il codice che lo usa in emacs. " Questo in seguito ha portato a un'altra discussione sul clang e sul software libero dove Richard stesso chiarisce: «La nostra politica è di non accettare modifiche a nessun pacchetto GNU che possa funzionare con Clang ma non con GCC. Emacs non incoraggerà le persone ad abbandonare GCC. Quando verrà data l'opportunità, incoraggeremo l'utilizzo di GCC su Clang ".

Poco tempo dopo appare Eric Raymond (famoso per aver creato The Cathedral and the Bazaar, insieme alla definizione di Open Source) che, cantando a metà la giostra, mezza pesca a traina, va e dice che LLVM / Clang era una risposta alla resistenza del progetto GCC ad essere più interoperabile, inoltre Clang ha superato GCC su diverse misure tecniche. Secondo lui (e mostrando e video da una conferenza di Chandler Carruth), gli sviluppatori di Clang chiesero a Stallman se c'era qualche ragione per cui i front-end di GCC non potevano essere trasformati in librerie dinamiche che potevano essere collegate da qualsiasi programma che volesse analizzare il codice sorgente. Stallman ha risposto che uno degli obiettivi del GCC era evitare programmi proprietari per utilizzare qualsiasi delle sue parti, quindi evitavano deliberatamente varie cose che probabile avrebbero facilitato tale uso …… ..che consideravano una risposta inutile. Volevano creare IDE e altri strumenti che condividessero il codice del compilatore e GCC non glielo avrebbe permesso, quindi per creare Clang e inviare GCC a / dev / null. Sviluppatori GCC gli saltarono addosso lamentandosi per non essere pienamente informato (con il fatto che Clang supera GCC in diverse misure tecniche). Nel bel mezzo della prostituzione, Stallman sembra dirlo LLVM è un terribile ritorno al passato, non per ragioni tecniche ma solo per la sua licenza senza copyleft a vantaggio di Apple.

L'articolo di LWN dedica poi lunghi paragrafi alla modularità di GCC e alle misure che hanno deliberatamente incluso per rendere difficile l'utilizzo della sua rappresentazione interna da parte di programmi proprietari, sul Eccezione della libreria di runtime di GCC che risolve la questione se GCC debba compilare codice proprietario. Vorrei anche aggiungere il caso di FreeBSD (versione 10 rilasciata di recente, sostituisce GCC con LLVM / Clang come compilatore principale). L'ultima versione di GCC che hanno usato era 4.2.1 (l'ultima con licenza GPLv2) e né pazzo stavano per aggiornarlo a una versione con GPLv3 (vogliono solo un BSD senza GPL), quindi LLVM / Clang viene da loro come un guanto.

In breve, un'altra battaglia nell'eterna guerra GPL vs BSD.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   pandev92 suddetto

    Non è interessante, lasciamo che gli sviluppatori si uccidano a vicenda.

    1.    eliotime3000 suddetto

      E così, abbiamo un altro lavoratore insoddisfatto che lavora presso Microsoft e Apple.

    2.    quadri suddetto

      Hai ragione, sostengo che il software sia sempre gratuito in modo che QUALSIASI UMANO possa leggerlo (questo è l'unico motivo per cui supporto e uso Linux), ma alla fine i programmatori hanno l'ultima parola.

  2.   f3niX suddetto

    Buon articolo, mi piacciono sempre gli articoli diazepan, vengono fuori dall'ordinario.

  3.   Germán suddetto

    La verità è che è un pensiero molto stupido da parte di gcc, è più che al momento il creatore di LLVM ha offerto il codice a gcc e lo ha rifiutato, CLang è progettato in modo che gli IDE possano verificare il codice in tempo vero che non solo avvantaggia le app private anche quelle open source come KDevelop o QtCreator oltre a editor avanzati come Vim, Kate, emacs, ecc. Suppongo che qualcosa di simile finirà per accadere con egcs e sarà assorbito sotto licenza gpl non appena linux potrà essere compilato con questo come è successo con egcs

    1.    eliotime3000 suddetto

      Se non riescono a migliorare l'EGCS e / o a renderlo il miglior sostituto di CLang, andrò a CLang e LLVM.

    2.    xlash suddetto

      Stupido? Non la penso così. Il fatto che GCC non possa essere utilizzato per creare software proprietario è un modo per dare la priorità allo sviluppo di software libero e non trarne vantaggio per lo sviluppo di software proprietario. È un modo per difendere il software libero, quindi dovrebbe essere supportato. Il signor Stallman ha assolutamente ragione, è un passo indietro. Inoltre, aziende come Apple, come accennato nell'articolo, beneficeranno di LLVM / Clang senza contribuire in modo assoluto alla community e senza dare alcun merito al progetto.

      Saluti gente!

      1.    Germán suddetto

        Sia GCC che LLVM / CLANG possono compilare software proprietario, ciò che non può essere modificato è GCC e non rende note tali modifiche. LLVM / CLANG può essere nuovamente concesso in licenza come gpl, la differenza più grande tra questi è che per LLVM / CLANG devono usare C ++ e quelli di GCC non volevano vederlo o dipingerlo fino a poco tempo fa. Dal mio punto di vista invece di riscrivere GCC in C ++ come stanno facendo ora, avrebbero dovuto portare le architetture che GCC supporta e LLVM / CLANG no e i linguaggi a quest'ultimo e avere un codice più pulito e mantenere il proprio ramo di sviluppo

    3.    Artus suddetto

      Penso che la tua opinione sia infondata, al di sopra delle questioni tecniche c'è il software libero. Questo è ciò che preoccupa di più il signor Stallman. Da quello che vedo il meglio per te è la parte tecnica e hai ragione, ma quando non hai scelta perché un'azienda ha rilevato la tua tecnologia, ci penserai due volte.
      In compenso con GCC puoi verificare il codice in tempo reale, come ripeto, la tua opinione è infondata.

      1.    Germán suddetto

        1-Se GCC fa un fork di LLVM / CLANG e dell'azienda e lo rilancia come GPL, tutto il codice che includono in detto fork sarà sotto GPL e quelli LLVM dovranno chiedere il permesso di ri-licenziarlo e includerlo nel loro repo. Ti informo che il tipo di licenza MIT (XORG, WAYLAND, ...) o BSD (FreeBSD, ...) sono permissivi quanto LLVM
        2 - Con GCC non è possibile implementare un'auto di completamento del codice o un verificatore di codice in tempo reale tramite una libreria che fornisce a differenza di CLANG
        3 - LLVM è una soluzione superiore a GCC non solo tecnica ma anche in termini di efficienza, il binomio LLVM / CLANG impiega la metà per essere compilato

  4.   andekuera suddetto

    Lunga vita a GNU e alla GPL!

    1.    eliotime3000 suddetto

      Vedi se riescono a fare il loro CLang con alcol, gioco d'azzardo e troie.

      1.    andekuera suddetto

        Hey?

    2.    eliotime3000 suddetto

      No, Richard. Il fatto che SELinux sia opera della NSA non significa che qualsiasi altro strumento con licenza non GPL (come LLVM / CLang) provenga dalla stessa matrice.

      Seriamente, pensavo ci fosse un motivo completamente razionale per questo, ma vedo che la FSF è più conservatrice di Satoru Iwata o di qualsiasi membro della MAFIAA.

      1.    STAFF suddetto

        Si è visto che non hai letto la mailing list e sei rimasto con ciò che l'articolo dice tra le righe.
        Sono stati forniti argomenti razionali, anche opzioni tecniche, ma comunque è molto comune leggere il titolo e saltare direttamente ai commenti.

  5.   povero taku suddetto

    Ñuhhhh GCC + Emacs. Se vuoi sopravvivere prendi la mia mano (stallman)

  6.   vivace suddetto

    I puritani mi scuseranno, ma devo dirlo: non mi è mai piaciuto Stallman, e sembra così per il resto dei miei giorni.

    Non puoi essere così chiuso di mente. Sembra un fanatico, un pazzo, e sì, per quanto si meriti per i suoi successi e per ciò che rappresenta, non mi piace.

    1.    Zironide suddetto

      Sono d'accordo. All'inizio mi piaceva molto, ma ora sembra troppo estremo ...

      1.    Canales suddetto

        Estremista ... pazzo ... fanatico ... sì, dipende da come la guardi. Per me, il signor Richard Stallman è una persona con un'enorme coscienza sociale. Il significato della sua vita è stato ed è migliorare la società, non il software. C'è la differenza tra software libero / software open source, in quanto il primo cerca problemi sociali e il secondo problemi tecnici.

    2.    xlash suddetto

      Elav amico, non si tratta di essere un puritano o no. Il software libero è nato come movimento sociale e questo è ciò che il signor Stallman difende, come fanno molti.

      Non puoi essere così chiuso di mente. Sembra un fanatico, un pazzo, e sì, non importa quanto rispetto si meriti per i suoi successi e ciò che rappresenta, non mi piace. »

      In realtà è l'opposto. L'obiettivo è che chiunque possa accedere liberamente al software senza che nessuno ne limiti l'uso attraverso modifiche proprietarie e, come ho detto nel mio commento precedente, dà la priorità ed enfatizza lo sviluppo del software libero.

      Penso che confondi il fanatismo con un altro termine. Il fanatismo uccide, come la storia ha ben dimostrato. Il termine che stai cercando può essere radicale ma senza quel radicalismo il software libero e il movimento GNU / linux non esisterebbero, almeno come lo conosciamo oggi. Per quanto riguarda la cosa pazza, non discuterò con te, ma avendo visto quello che ho visto in questi due anni, i pazzi non sono così pazzi.

      Con questo paragrafo voglio dire che il movimento per il software libero non è solo un movimento di computer, ma anche un movimento sociale e deve essere difeso. E se Elav devi essere radicale sul sociale. Aziende come Apple o Microsoft non esiteranno ad approfittare delle circostanze. Dobbiamo creare consapevolezza riguardo ai diritti degli utenti e delle persone in generale.

      PS Chiamo Elav perché rispondo a lui ma il commento è diretto a tutti i GNU / linuxers.

      Cheers People!

      1.    Signor_E suddetto

        @Xlash: SIR! ... Grazie! Questo è quello che avevo bisogno di leggere. +1

        Ti copio, lo stampo e lo metto a lato della Bibbia. (Per la cronaca: non dentro o sopra di esso).
        Alla fine, grazie a questa mossa e all'impegno di Linus e della comunità, si sta realizzando qualcosa che ha cambiato il mondo:
        "C'è una prima di Linux e una ADESSO con LINUX."

      2.    andekuera suddetto

        + 10

    3.    Signor_E suddetto

      @Elav:
      Non mi scuso ma dovevo dire:
      Mi sono piaciuti alcuni dei tuoi post precedenti, ma non questo ... e se continuano così: forse continuerà ad esserlo per il resto dei miei giorni.
      Non essere di mentalità chiusa. Sembri fanatico, pazzo e rispetto tanto quanto i tuoi successi (questo forum) e quello che meriti… Non mi piace (il tuo commento).
      😀 - hehe! ora puoi sperimentare (un po ') lo stesso di RMS. Hai solo bisogno di avere la stessa traiettoria di diffusione di lui e, beh, sentire quasi esattamente la stessa cosa.
      Saluti cuñao!

  7.   Zironide suddetto

    Non capisco perché Stallman sia così chiuso. Rischio di dire che penso che LLVM sia ancora più libero di GCC, dato che dà la libertà di usarlo anche in programmi proprietari. Sì, so che la restrizione in GCC può aiutare il software libero, ma trovo assurdo che si opponga a LLVM in quel modo.

    saluti

    1.    wilson suddetto

      Stallman non è chiuso. L'articolo è molto incline alle opinioni personali dell'autore.
      In realtà, le decisioni di GCC sono in gran parte tecniche. In GCC vogliono modularità e lo fanno, ma in modo diverso (evitando problemi che esistono in CLANG).
      Per ulteriori informazioni https://gcc.gnu.org/ml/gcc/2014-01/msg00176.html
      Questo è ciò che ha scritto raymond e ci sono le risposte degli sviluppatori.

  8.   santicluke suddetto

    Questo mi sembra di vedere chi ce l'ha più grande ... L'ego, ovviamente.
    Entrambi i compilatori sono eccellenti. Ma come ogni strumento, dipende da come lo usi.
    Si può scrivere codice libero in C # e creare un missile con Linux.

  9.   Gallo suddetto

    Penso che qui dovresti essere più pragmatico. Stallman dovrebbe avere una visione e non smettere di perdersi. Ciò che preoccupa è che la comunità attuale non sia frammentata, che è ciò che sta accadendo. La cosa più sensata è che sebbene la licenza bsd ne consenta l'utilizzo in ambienti proprietari, purché gli autori siano riconosciuti (e anche che le derivate lo siano) utilizzino la stessa logica ma con gpl v2 o superiore ..

  10.   pandev92 suddetto

    Fortunatamente, stallman non si fa quasi più sentire da un po '. L'altro, un programma per computer o un compilatore, non sarà mai una questione sociale, inoltre ci sono sempre state alternative non libere! ma gratis.
    Per quanto riguarda llvm clang, la polemica non ha senso, dal momento che la fonte sarà sempre lì, è stato rilasciato con licenza bsd, quindi è software libero, che un'azienda può usarlo per i suoi scopi oscuri, non implica che non si possa più accedere al codice originale, ma vedo, nessuno qui ha la più pallida idea, tranne 2 o 3.

    1.    xlash suddetto

      "Un programma per computer o un compilatore non sarà mai una questione sociale"
      Come no? Rispetto che tu non difenda il movimento del software libero come fanno molti altri, ma negare ciò che rappresenta il software libero sembra irrispettoso da parte tua nei confronti delle persone che investono molto tempo, denaro e sforzi per difenderlo e crearlo.

      Ovviamente llvm è un software libero, ma ciò non significa che le sue modifiche e derivazioni lo siano. L'idea non è solo quella di poter accedere liberamente al software originale, ma anche alle sue modifiche. Se sviluppo un programma e lo condivido con te, vorrei che tu facessi lo stesso con le persone a cui daresti una copia della tua versione modificata. Questo è ciò che difendono il software libero e il copyleft, quindi è una questione sociale.

      "Ma vedo, nessuno qui ha la minima idea, tranne 2 o 3."
      Non so più come siate arrivati ​​a questa conclusione quando i commenti qui postati si riferiscono alla filosofia e alla libertà del software confrontando le differenze tra due tipi di licenze, anche se compatibili tra loro.

      1.    diazepano suddetto

        In che modo influisce sulla vita quotidiana di un contabile che non sa nulla di programmazione utilizzando un programma di contabilità compilato con un tale compilatore?

        1.    xlash suddetto

          Niente affatto, finché sono libero. Ma l'argomento di cui mi occupo nei commenti è un altro, Diazepan. Parlo dell'uso di un compilatore X per compilare software proprietario, delle licenze usate in ogni compilatore e delle loro differenze, accenno anche al vantaggio di GLP rispetto a BSD, sempre dal punto di vista della libertà ovviamente.

    2.    STAFF suddetto

      LOL, affermare che nessuno ha un'idea è parole molto forti per qualcuno che afferma che il software non è una questione sociale.
      Devi essere cieco o almeno un po 'miope per non vederlo, quando ci sono anche paesi che migrano (in una percentuale maggiore o minore) al software libero, quando da tutti i media internazionali fa eco come il software proprietario sia uno strumento per il spionaggio su larga scala, quando l'uomo più ricco del mondo è proprio dedito a un sistema operativo.
      Cosa c'è da leggere.

    3.    andekuera suddetto

      ... vorrei che si sentissero più stallman e meno pandev ...

  11.   STAFF suddetto

    L'articolo è un po 'tendenzioso, a cominciare dal titolo, perché coloro a cui si dovrebbe chiedere se "impazziscono un po'" è LLVM, poiché sono loro che si lamentano amaramente.

    E sull'argomento, puoi vedere l'ipocrisia di coloro che per primi inveiscono contro ciò che chiamano "frammentazione" e quanto sia "terribile" per il software libero.
    Ma quando qualcuno coerente con quello che dice e fa, segue la sua linea e non è d'accordo sul fatto che un compilatore gratuito diventa una piattaforma per un'infinità di compilatori proprietari, allora sì, lunga vita a tutti per creare fork!

  12.   Canales suddetto

    Il software libero è un movimento sociale dalla sua nascita per definizione.

    Per quanto riguarda GPL vs BSD:
    “Freedom 3 include la libertà di pubblicare le versioni modificate come software gratuito. Una licenza gratuita può autorizzare anche altre forme di pubblicazione; in altre parole, non deve essere una licenza copyleft. Tuttavia, una licenza che richiede che le versioni modificate non siano libere non può essere considerata libera. "
    “Il copyleft (definito molto brevemente) è la regola in base alla quale, quando ridistribuisci il programma, non puoi aggiungere restrizioni per negare ad altri le principali libertà. Questa regola non è in conflitto con le principali libertà, anzi le protegge ".

    Come puoi vedere, il copyleft, anche se a breve termine toglie un po 'di libertà, a lungo termine la protegge. Questo è il motivo per cui il signor Stallman difende la GPL: "Il mio lavoro nel software libero è motivato da un obiettivo idealistico: diffondere libertà e cooperazione".

  13.   Canales suddetto

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

    “L'open source è una metodologia di programmazione, il software libero è un movimento sociale. Per il movimento del software libero, il software libero è un imperativo etico, un rispetto essenziale per la libertà degli utenti. Invece la filosofia open source solleva le domande in termini di come "migliorare" il software, in senso meramente pratico. Sostiene che il software proprietario non è una soluzione ottimale a problemi pratici da risolvere. Nella maggior parte dei casi, quando si parla di "open source", il bene e il male non vengono presi in considerazione, ma solo la popolarità e il successo ".

  14.   Daniele Noriega suddetto

    L'ho già commentato più volte e continuo a ripeterlo, linux in generale mi piace molto, ma se c'è qualcosa che odio di linux è la community. Quando sei in grado di saltare da un dirupo per continuare con un'ideologia "chiusa" come lo è il "software libero", allora ti rendi conto che il mondo è sottosopra. Penso che ai suoi inizi il software libero fosse chiaro al riguardo, oggi la storia è diversa.

  15.   caso raro suddetto

    Penso che molti non siano stati chiari sui termini e sugli scopi della licenza GPL. La licenza GPL è molto permissiva ma con il limite di non consentire profitti dai programmi concessi in licenza con essa. Sono d'accordo con Stallman, ma non l'estremo di utilizzare esclusivamente software libero. Per un utente voler usare LLvm / Clang è un loro diritto, ma per l'SLF voler sostituire GCC con LLVM / Clang sarebbe una contraddizione ai principi del software libero.