LLVM, Clang e l'investimento sul futuro di Apple

Si chiama LLVM ed è un’infrastruttura di nuova generazione per la compilazione dei programmi. Insieme al compilatore Clang sta facendo sensibili passi in avanti e avrà un ruolo sempre più importante nel futuro di Apple.

Qualcuno ha definito LLVM e Clang la “punta di diamante” di Snow Leopard perché è con Mac OS X 10.6 che questi due progetti sono diventati un po’ più noti anche presso gli addetti.
Entrambi i software sono rilasciati con licenze open source di tipo BSD, e ambiscono a sostituire il compilatore gcc offrendo al contempo svariati vantaggi. Quali? Ad esempio un debugging migliore del codice, eseguibili più ottimizzati ma anche la generazione di codice intermedio (bytecode).


Non è una novità che Apple sia interessata a ottimizzare il suo software e sfruttare al meglio le caratteristiche del suo hardware.
In passato aveva un accordo la Cygnus perché quest’ultima effettuasse una personalizzazione di gcc per sfruttare meglio l’unità Altivec dei processori PowerPC.

LLVM è nato nel 2000 all’Università dell’Illinois di Urbana-Champaign e nel 2005 Apple, convintasi della bontà delle idee su cui era basato, ha assunto uno dei due progettisti in capo, creando un team per integrarne i risultati nei suoi sistemi di sviluppo (SDK).
L’anno scorso, quando Snow Leopard ha esordito, le due componenti erano ancora immature e non rappresentavano un’alternativa definitiva a gcc, tant’è che al momento in Mac OS X è possibile utilizzare varie combinazioni di nuovo e vecchio, anche miste, per la compilazione.

La situazione, però, sta rapidamente evolvendo.

Agli inizi di febbraio è stato annunciato che Clang è in grado di compilare con successo sé stesso e LLVM (per un totale di oltre 550’000 linee di codice C++).
Alla fine dello stesso mese è invece stato fatto un ulteriore miglioramento nel dialogo tra LLVM e gcc, con il plugin Dragonegg per GCC-4.5.
Queste ed altre novità sono culminate nel rilascio -alla fine di aprile- di LLVM 2.7, frutto di sei mesi di lavoro.

Il crescente grado di maturità di LLVM nonché di Clang è dimostrato anche da un progetto sperimentale chiamato ClangBSD, per certi versi parallelo a quello di Apple e che consta nell’integrare le stesse tecnologie in FreeBSD.
In un messaggio sulla mailing list freebsd-current è stato fatto notare che -su procoessori i386/amd64- è già possibile la build del kernel e di quasi tutta la userland di FreeBSD.

Ma anche se LLVM è utilizzato da varie software house, tra cui Adobe, l’azienda che più si sta affidando all’accoppiata LLVM + Clang è Apple. Lo aveva anticipato John Siracusa nell’agosto 2009 scrivendo che Apple, memore delle esperienze amare del passato, ha capito che non può affidarsi a strumenti di terzi ma deve essere pronta e avere il più possibile controllo degli strumenti di sviluppo per evitare rallentamenti e intoppi.

È in quest’ottica che va visto il costante potenziamento di Xcode con l’adozione di LLVM, la graduale sostituzione di gcc e finanche il divieto -sui dispositivi mobile- di usare strumenti di sviluppo e layer intermedi di terzi.
Apple si sta dotando di un sistema moderno e versatile e lo sta imponendo con forza (forse troppa) ai suoi sviluppatori sotto forma di SDK ufficiale. Ne va del futuro del Macintosh, dell’iPhone e dell’iPad.

Nota: il logo di LLVM con il dragone è “courtesy of Apple”

Ti consigliamo anche

Link copiato negli appunti