Logo Blogo

LLVM: la vera punta di diamante di Snow Leopard

Pubblicato: 20 set 2009 da Michele Filannino

LLVM in Snow Leopard

Più volte abbiamo avuto modo di ribadire che le vere novità di Snow Leopard non sono estetiche bensì nascoste sotto il cofano del nuovo sistema operativo. Una tecnologia della quale non si è parlato abbastanza è LLVM (Low Level Virtual Machine).

Ogni software scritto con un particolare linguaggio di programmazione, per essere eseguito su una specifica architettura hardware, viene dato in pasto ad un compilatore che dopo averlo elaborato crea codice eseguibile ottimizzato. In Mac OS X, i linguaggi di programmazione di riferimento sono C, C++, Objective-C ed il compilatore di sistema è GCC.

LLVM è una completa infrastruttura di compilazione open source nata diversi anni fa nell’Università dell’Illinois. Si tratta di una macchina virtuale di basso livello che si interpone, da una parte con il codice scritto in un linguaggio di programmazione e dall’altra con il generatore di codice specifico per l’architettura di sistema. Il pregio di questa tecnologia è che produce codice eseguibile drasticamente più efficiente rispetto al classico GCC.

Finora LLVM, in Mac OS X 10.5, era stata utilizzata all’interno di OpenGL per implementare alcune funzionalità non presenti direttamente a livello hardware. Nel nuovo sistema operativo, Apple ha sdoganato definitivamente tale tecnologia integrandola all’interno di GCC e dando vita ad un nuovo compilatore: LLVM-GCC 4.2.

Il futuro è già scritto: GCC lascerà definitivamente il posto a Clang, un’architettura totalmente realizzata mediante tecnologia LLVM e dotata di una nuova interfaccia per i diversi linguaggi di programmazione. Ora è più facile comprendere la totale riscrittura di molte componenti del nuovo sistema operativo e le relative performance registrate. Tutto merito di LLVM oltre che di una profonda rivisitazione del codice sorgente.

[Via Ars Technica]

1 stelle2 stelle3 stelle4 stelle5 stelle (5 Voti | Media: 4 su 5)
condividi condividi
18 commenti

Commenti dei lettori

(Inserisci un commento - Nascondi commenti anonimi)
  • Profilo di ikki_83

    ikki_83

    20 set 2009 - 18:04 - #1
    6 punti
    Up Down

    questo articolo, ovviamente, parla di Mac e non verrà commentato da nessuno degli Apple user dell’ultimo minuto che ormai affollano la rete.
    detto questo, complimenti a michele per la news. finalmente qualcosa di serio e interessante.

  • Commento #2 (-9 punti) - 20 set 2009 - 18:04 - Apri commento
  • Profilo di Fledermaus

    Fledermaus

    20 set 2009 - 18:27 - #2 (nascondi)
    -9 punti
    Up Down

    Sì, peccato però che sia una mera traduzione e non farina del suo sacco…

  • Profilo di charger

    charger

    20 set 2009 - 18:35 - #3
    0 punti
    Up Down

    Cavolo non lo sapevo…questa cosa potrebbe cambiare il mio giudizio su SL (NON sono ironico).

    Ma la compilazione JIT è già disponibile ora?

  • Profilo di michele_

    michele_

    20 set 2009 - 18:39 - #4
    0 punti
    Up Down

    @charger

    Certo, il LLVM-GCC 4.2 è utilizzato nelle attuali versioni di Snow Leopard. Considera che Apple, in tempi non sospetti, ha finanziato “pesantemente” il progetto. Si tratta di una tecnologia rivoluzionaria nel campo della compilazione.

    Ciao.

  • Profilo di maloxplay

    maloxplay

    20 set 2009 - 19:10 - #5
    0 punti
    Up Down

    good very good!

    Il sistema migliora sempre! Il nucleo è sempre quello che fa la differenza!

    Avanti tutta!

  • Profilo di deshi

    deshi

    20 set 2009 - 19:14 - #6
    0 punti
    Up Down
  • Profilo di charger

    charger

    20 set 2009 - 19:36 - #7
    0 punti
    Up Down

    Non mi è ancora chiara la faccenda: se adesso complico un programma in C con gcc (4.2.1), sto usando il “vecchio” gcc o qualche tecnologia nuova (clang?) ?

    Non riesco a capire se e quando anche l’utente comune come me potrà utilizzare la compilazione JIT.

  • Profilo di gigabytes

    gigabytes

    20 set 2009 - 20:32 - #8
    2 punti
    Up Down

    Guardate che per C, C++ e Objective-C non c’è nessuna compilazione JIT! C’è qualche travisazione in questo articolo. LLVM supporta _anche_ la compilazione JIT, e infatti in OS X, l’OpenGL Shading Language e il linguaggio OpenCL vengono compilati Just In Time (JIT appunto) usando LLVM.

    Ma per quanto riguarda llvm-gcc e clang, non c’è nessuna compilazione JIT. Per questi compilatore, LLVM viene utilizzato come backend per l’ottimizzazione del codice intermedio e la generazione del codice assembly. Si tratta di un passo in avanti perchè le ottimizzazioni di LLVM sono molto più efficienti di quelle di gcc.
    Clang è il front-end C/C++/ObjC del progetto LLVM. Rispetto al front-end di gcc ha un sacco di novità e vantaggi, ma si tratta pur sempre di un compilatore.

    Quindi, Clang e LLVM sono delle tecnologie nuove, interessanti ecc… ma niente JIT per C, C++ e Objective-C…

  • Profilo di MLCR

    MLCR

    20 set 2009 - 20:59 - #9
    1 punto
    Up Down

    gigabytes ha ragione.
    La compilazione JIT non c’entra con C/Objective-C; i miglioramenti di LLVM rispetto a GCC sono da imputare ad una migliore progettazione/programmazione di LLVM. Anche il fatto che molte componenti sono state riscritte non è una conseguenza dell’uso di LLVM piuttosto che di GCC.

  • Profilo di clsbn

    clsbn

    20 set 2009 - 22:36 - #10
    1 punto
    Up Down

    @1:
    lascia stare i commenti classisti che nell’ambiente della mela proprio non sono di casa. Il mac è un sistema complesso, molto complesso, e questo articolo ancora una volta lo dimostra, ma è reso semplice e facile da usare affinchè tutti anche chi non ha mai compilato un programma, un kernel o una libreria sarà in grado di usarlo e di farci ciò che lo appaga di più. Dal semplice navigare sul web a scrivere software per iphone, passando per il video editing, produzione musicale e office automation e tutto nella più grande semplicità e intuitività, tipica dell’ambiente della mela. A questo punto aggiungerei complimenti a chi ha scritto l’articolo su un argomento così difficile portandolo alla conoscenza di tutti, ma ben vengano tutti i nuovi utenti, anche se inesperti, che saremo lieti di aiutare se necessario.
    P.S.: non vorrei scatenare un flame ma ritengo personalmente che linux è rimasto un ambiente un po’ di nicchia proprio per via dell’esercito di sapientoni che lo frequenta e lo pubblicizza. Per fortuna che Canonical sta facendo un ottimo lavoro con ubuntu.

  • Profilo di michele_

    michele_

    20 set 2009 - 22:55 - #11
    0 punti
    Up Down

    @gigabytes, @MLCR

    Grazie per la segnalazione, ho provveduto a correggere. :)

  • Profilo di Dontfeedme

    Dontfeedme

    21 set 2009 - 01:01 - #12
    0 punti
    Up Down

    Bell’articolo (non sono ironico)

  • Profilo di Fledermaus

    Fledermaus

    21 set 2009 - 02:28 - #13
    2 punti
    Up Down

    Mah, non capisco il motivo di tutti questi elogi all’articolo “serio e interessante” quando non è altro che traduzione&collage di un articolo altrui… Forse è il caso che ci togliamo un po’ di prosciutto dagli occhi.

  • Profilo di -teo-

    -teo-

    21 set 2009 - 07:47 - #14
    1 punto
    Up Down

    “Mah, non capisco il motivo di tutti questi elogi all’articolo “serio e interessante” quando non è altro che traduzione&collage di un articolo altrui… ”

    Mi aggiungo all’elogio, perché anche se non l’ho espresso, quando qui su melablog è uscito l’articolo che segnalava la presenza della recensione di Ars Technica (http://www.melablog.it/tips/item/john-siracusa-recensisce-snow-leopard) in molti si sono lamentati (e mi sarei aggiunto) del fatto che non fosse altro che un riportare l’esistenza dell’articolo senza avere contenuti. Se non erro poi il post è stato rimosso.
    Se la strada è invece quella di riportare degli estratti – e poi chi vuole continua la lettura sull’articolo originale – come per questo post, è una strada che mi piace.

  • Profilo di imo85

    imo85

    21 set 2009 - 09:07 - #15
    0 punti
    Up Down

    -teo- la fonte però dovrebbero citarla subito…e non aspettare al solito che qualcuno li sgami

  • Profilo di m0rd0r

    m0rd0r

    21 set 2009 - 09:29 - #16
    0 punti
    Up Down

    #clsbn

    Meno male che ci sei tu che semplifichi….Pinguino

  • Profilo di MACchia bianca

    MACchia bianca

    21 set 2009 - 09:55 - #17
    1 punto
    Up Down

    Snow Leopard ha gettato semi importanti, ma sono semi, di cui vedremo il frutto (se programmatori e sviluppatori saranno solerti), non prima di due anni. (certo in un anno potrebbero i programmi potrebbero essere tutti ricompilati in 64bit….ma ci credo poco, poi c’è Openc Cl, poi c’è la questione con Sun, e tante altre cosine che potrebbero davvero trasformare i computer di oggi, in supercomputer…..metteteci che anche con l’hardware non si sta fermi). La parola segreta è : Sinergia.

  • Profilo di clsbn

    clsbn

    21 set 2009 - 23:03 - #18
    0 punti
    Up Down

    @mordor
    non capisco… Ti dispiace essere più esplicito? Grazie

In questo post possono commentare solamente gli utenti registrati