PDA

View Full Version : LLVM: Prossimo OS X proccessor-indipendent?!!


Criceto
20-11-2005, 12:02
Apple continua a sorprendere!

Per Apple lavora il principale sviluppatore di questa interessantissima tecnologia LLVM (http://llvm.cs.uiuc.edu/) (di cui è la prima volta che sento parlare) ma che potrebbe portare a sviluppi notevoli!

E ha proposto l'integrazione di questa tecnologia con il compilatore OpenSource GCC, usato anche da Apple come base dei suoi tools di sviluppo: email (http://gcc.gnu.org/ml/gcc/2005-11/msg00888.html) .

Infatti, se non ho capito male, questo LLVM permetterebbe l'ottimizzazione del codice in vari stadi della compilazione, anche in runtime con un JIT a basso livello che pare abbia prestazioni paragonabili al codice nativo, non dipendendo la linguaggi fondati sulla garbage collection (comoda, ma che rende il codice potenzialmente più lento).

Un approccio simile a Java o al CLR di Vista o meglio al vecchio Oberon di Niklaus Wirth che provai tanti anni fà ed era incredibilmente leggero ed efficiente (non come Java!) nonostante avessa una compilazione real-time specifica per ogni processore. Anzi, all'epoca un codice Oberon JIT era più veloce da caricare di uno compilato staticamente perchè più compatto (di circa la metà) del codice nativo!

Insomma una ficata, che potrebbe permettere di eseguire lo stesso codice su PowerPC o Intel, ottimizzandolo inoltre per ogni tipo di processore presente e futuro senza la necessità di avere versioni differenti di binari come ora.

v1ruz
21-11-2005, 09:17
nella sezione developer del sito Apple c'e' un documento che parla di: UniversalBinary o simile..in poche parole permette di creare un programma che puo' essere eseguito sia su proc PPC che intel..ci sono gia' applicazioni che usano questo metodo. per esempio SubEthaEdit

Criceto
21-11-2005, 10:29
nella sezione developer del sito Apple c'e' un documento che parla di: UniversalBinary o simile..in poche parole permette di creare un programma che puo' essere eseguito sia su proc PPC che intel..ci sono gia' applicazioni che usano questo metodo. per esempio SubEthaEdit

Sì però l'universal binary è composto da due binari singoli, uno per PPC e uno per x86. Inoltre in generale compilati per il "minimo comune denominatore" dei processori, quindi non specificatamente ottimizzati (ad esempio) per il G5 o per Yonah.

Con l'approccio JIT, che permetterebbe questa tecnologia LLVM, il "binario" (in realtà una rappresentazione intermedia tra il codice sorgente ed il codice eseguibile) rimarrebbe uno ed il compilatore JIT ottimizzarebbe il codice all'atto dell'esecuzione per ogni specifico processore. Invece del JIT questa tecnologia permette anche una compilazione "back-end" statica del codice intermedio al momento dell'installazione con il vantaggio di poter "perdere" più tempo per le ottimizzazioni specifiche e quindi generare codice migliore.

Con entrambi questi approcci il processore presente diventa irrilevante per lo svilluppatore e anche processori usciti dopo l'uscita dell'applicazione potrebbero eseguire codice ottimizzato per loro. Credo risolverebbe anche il problema 32/64 bit perchè il codice intermedio è compilato per un processore RISC virtuale con infiniti registri a 32 o 64 bit a seconda del codice, ma non sono sicuro di quest'ultimo punto.

La tecnologia LLVM inoltre è stata sviluppata principalmente per permettere l'ottimizzazione del codice in vari stadi della "vita" dell'applicazione e sono previste ottimizzazioni dinamiche anche tra un esecuzione e l'altra, ecc. Quindi potenzialmente la velocità del codice eseguito potrebbe migliorare nel tempo sia con l'evoluzione dei compilatori back-end sia con l'uso, senza necessità di interventi o ricompilazioni da parte degli sviluppatori.

Insomma, secondo me, una cosa decisamente rivoluzionaria che spero sarà pronta per Leopard!

Cecilia76
21-11-2005, 11:38
@criceto

Nell'altro 3d che ho aperto sul supporto PPC volevo solo sapere quali sono le previsioni per la vita dell'architettura.
Anche se una tecnologia fantastica permette di avere programmi portabili al massimo grado non è detto che venga adottato o che, ad esempio, il Photoshop venga mantenuto per tutti i sistemi.
Se l'Adobe decidesse di smettere il Photoshop per PPC che fanno gli utenti già possessori di Mac, cambiano computer?
O meglio: quando accadrà cio? 2 anni? 3 anni??

C.

pokestudio
21-11-2005, 12:26
@criceto

Nell'altro 3d che ho aperto sul supporto PPC volevo solo sapere quali sono le previsioni per la vita dell'architettura.
Anche se una tecnologia fantastica permette di avere programmi portabili al massimo grado non è detto che venga adottato o che, ad esempio, il Photoshop venga mantenuto per tutti i sistemi.
Se l'Adobe decidesse di smettere il Photoshop per PPC che fanno gli utenti già possessori di Mac, cambiano computer?
O meglio: quando accadrà cio? 2 anni? 3 anni??

C.

Sai il fatto è che, per dire con Photoshop, la percentuale di utenti che ha PPC è TUTTI, ora... non me la sentirei di abbandonare il tutto per una roba che è uscita da poco...

penso che per altri 4 o 5 anni continuerà un supporto normale, i G3 di quanto tempo fa sono? Credo siano del 1998, e vanno ancora... lenti ma vanno.

Cecilia76
21-11-2005, 13:01
Sono d'accordo, ma il G3 era comunque un PPC mentre ora si parla di un cambio di architettura.
Insomma, se compro un Mac oggi lo userò con i programmi aggiornati fino al 2009??

C

pokestudio
21-11-2005, 13:11
Sono d'accordo, ma il G3 era comunque un PPC mentre ora si parla di un cambio di architettura.
Insomma, se compro un Mac oggi lo userò con i programmi aggiornati fino al 2009??

C

Eh nessuno fa sibilla di cognome, vedremo un pò... ma sarebbe assurdo lasciare tutti a piedi per una piccola percentuale di utenti dei sistemi nuovi. Sono comunque convinto che ci sarà la ressa quando escono i sistemi Mac-Intel... prevedo la solita situazione di domanda superiore all'offerta...

E comunque prenderò un Rev.B ammenochè non ci siano prove che danno i Rev.A come assolutamente stabili (finora m'è capitato solo col Mac Mini... di avere il Mac perfetto e Rev.A)

Cecilia76
21-11-2005, 14:01
Ti quoto in pieno.
A me interessano i PowerBook: i rumors dicono che a gennaio usciranno gli iBook con Intel e a aprile-maggio i PB.
Non mi sembra una stima perfetta ma in ogni caso se poi voglio aspettare la Rev. B probabilmente se ne parla a ottobre 2006, cioè fra circa un anno.
Mi vien da dire che forse si può comprare anche ora un PB nuovo...

Criceto
21-11-2005, 18:07
@criceto

Nell'altro 3d che ho aperto sul supporto PPC volevo solo sapere quali sono le previsioni per la vita dell'architettura.
Anche se una tecnologia fantastica permette di avere programmi portabili al massimo grado non è detto che venga adottato o che, ad esempio, il Photoshop venga mantenuto per tutti i sistemi.
Se l'Adobe decidesse di smettere il Photoshop per PPC che fanno gli utenti già possessori di Mac, cambiano computer?
O meglio: quando accadrà cio? 2 anni? 3 anni??

La tecnologia non sembrerebbe lontanissima dal poter essere adottata, visto che hanno proposto fin da ora di integrara con il GCC, e quindi si suppone sia ad uno stadio abbastanza maturo. Pare che per quel che serve ad Apple manchi un supporto per i debugger, la possibilità di mettere codice assembler in-line e il supporto per le unità vettoriali, funzionalità alle quali stanno lavorando.

Quindi potrebbe essere pronta per Leopard, ma anche se fosse pronta per la versione dopo, diciamo fra 3 anni, la Adobe di turno quando farà la sua versione CS4 di Photoshop, la compilerà in questo formato bytecode e quindi da quel momento in poi sarà portatile per sempre e non ci sarà più l'obsolescenza della piattaforma PPC. Anzi, Apple senza alcuno sforzo potrebbe continuare a fare anche macchine PPC se queste si dimostrassero competitive... Insomma le possibilità che apre sono notevoli!