Clang / LLVM è pronto per la prima serata? [chiuso]


9

Clang è in grado di essere utilizzato al posto di gcc? Qual è la tua esperienza al riguardo? Quali svantaggi ci sono ancora?

Le prestazioni della compilazione sono molto migliori di gcc ma riguardo alle prestazioni del codice generato durante l'esecuzione?

Esistono buoni strumenti come front-end (IDE) per l'esecuzione su Linux o Windows?

EDIT: intendo compilatore C. C ++ non è ancora così buono.

Risposte:


9

Aggiornamento: Now (2013) Clang è pronto per la prima serata e utilizzato da alcune aziende come Google. Tuttavia non è totalmente utilizzabile su Windows, i lavori su questa piattaforma sono un "work in progress". LLVM / Clang è attualmente il compilatore predefinito su MacOSX / XCode ma non è esattamente le stesse versioni di quelle LLVM, quindi fai attenzione alle differenze minori (principalmente la differenza dei numeri di versione).


Ben seguendo la mailing list di clang dev , recentemente la versione trunk è stata costruita con successo:

  • il kernel linux (una recente revisione)
  • Qt (a quanto pare anche con il suo processo di compilazione speciale)
  • Chromium (una recente revisione)

Quindi, direi che la prossima versione (2.9) potrebbe essere un buon compilatore "pronto per la prima serata".

Tuttavia, se il tuo progetto ha una pianificazione e un budget, forse non è una buona idea provare un compilatore che non è ancora stato pesantemente testato. Se ti è permesso sperimentare e fornire feedback alla comunità degli sviluppatori di Clang, allora provaci, è vantaggioso per tutti. Altrimenti, forse dovresti usare un compilatore molto usato come gcc (nelle sue ultime versioni) per avere un "terreno stabile" su cui fare affidamento mentre lavori sul tuo progetto.


Solo a complemento, non è un progetto professionale ... eppure, è quasi un progetto del 20% sull'orario di lavoro.
Maniero,

Avrei provato a suonare un progetto multipiattaforma non professionale. In effetti è quello che sto provando in questo momento.
Klaim,

Grazie. La mia preoccupazione riguarda il futuro del progetto. Inizierò come esperimento ma desidero fare presto molto di più.
Maniero,

Se è un progetto a lungo termine, potrebbe trarre vantaggio da CLang una volta che è stabile, corretto, ottimizzato e con funzionalità C ++ 0x complete (se usi c ++). Perché il suo obiettivo è quello di essere il compilatore più veloce là fuori e apparentemente lo è già. Ed è importante
Klaim,

1
Clang sta anche realizzando iOS, Xcode e praticamente tutto ciò che Apple sta spedendo.
Mike Weller,

8

Bene, è sicuramente pronto per la prima serata su Mac OS X, poiché molte app per Mac OS X vengono compilate usando clang. Ma anche su altre piattaforme, il supporto C è piuttosto solido e il team ha fatto passi da gigante con il supporto C ++.

In generale, clang compila il codice più velocemente di gcc, ma gcc genera codice meglio ottimizzato. (Ci sono casi limite in cui ciò non è vero, ma in generale è lo stato corrente.)


Vedo lo stesso problema, Clang è ancora troppo legato a MacOS / BSD.
Maniero,

Ho provato CLang su Windows 7 e ha funzionato correttamente. L'ho provato anche su Ubuntu. Penso che le tue informazioni non siano aggiornate, ma questa è la logica poiché negli ultimi mesi sono stati fatti molti tentativi di correzione multipiattaforma. Quindi forse non sarà così macentrico quando uscirà la prossima versione.
Klaim,

1
@Klaim: non sto dicendo di per sé Clang , ma l'intero ecosistema. Ho provato alcune cose sui problemi di whiteout di Win7, ma solo il compilatore su cli.
Maniero,

Ho scoperto che Clang ha creato un binario più veloce di GCC per il mio progetto. Vale la pena almeno provarlo.
Kendall Hopkins,

Inoltre, è ora il compilatore predefinito per iOS.
mamcx,

3

Non dovresti davvero dipendere da un compilatore specifico a meno che non sia davvero necessario. Quindi dovresti essere in grado di cambiare il compilatore in un Makefile o qualcosa del genere e tutto dovrebbe funzionare bene.

Qui uso principalmente clang per i miei progetti di giocattoli, perché è più veloce e molto più importante: i suoi messaggi di errore sono così dannatamente più chiari. Ma quando ho bisogno di usare gdb, compilo con gcc e -ggdb. Quindi clang non è ancora completo di funzionalità e non potrebbe essere il mio unico compilatore.

(A proposito: sono su x86 gentoo e i progetti sono in C e C ++)

modifica : per chiarire, clang corre più veloce (in alcuni casi, molto più veloce). Non mi interessano le ottimizzazioni fantasiose.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.