O Clang / LLVM está pronto para o horário nobre? [fechadas]


9

O Clang pode ser usado em vez do gcc? Qual sua experiência nisso? Que desvantagens ainda existem?

O desempenho da compilação é muito melhor que o gcc, mas o desempenho do código gerado durante a execução?

Existem boas ferramentas como IDE (front-end) para executar no Linux ou Windows?

EDIT: Quero dizer compilador C. C ++ ainda não é tão bom.

Respostas:


9

Atualização: Agora (2013) Clang está pronto para o horário nobre e usado por algumas empresas como o Google. No entanto, não é totalmente utilizável no Windows, o trabalho nesta plataforma é um "trabalho em andamento". Atualmente, o LLVM / Clang é o compilador padrão no MacOSX / XCode, mas não é exatamente o mesmo lançamento que o LLVM, portanto, cuidado com as pequenas diferenças (principalmente a diferença dos números de versão).


Bem, seguindo a lista de discussão clang dev , recentemente a versão do tronco foi criada com sucesso:

  • o kernel do linux (uma revisão recente)
  • Qt (com seu processo de compilação especial também, aparentemente)
  • Crómio (uma revisão recente)

Então, eu diria que a próxima versão (2.9) pode ser um bom compilador "pronto para o horário nobre".

No entanto, se o seu projeto tiver planejamento e orçamento, talvez não seja uma boa ideia tentar um compilador que ainda não foi testado. Se você tem permissão para experimentar e fornecer feedbacks para a comunidade de desenvolvedores do Clang, vá em frente, é uma vantagem para todos. Caso contrário, talvez você deva usar um compilador maduro e muito usado como o gcc (em suas versões recentes) para ter uma "base estável" na qual confiar enquanto estiver trabalhando no seu projeto.


Apenas para complementar, não é um projeto profissional ... ainda, é quase um projeto de 20% de tempo de trabalho.
— Maniero

Eu teria tentado clang em um projeto multiplataforma não profissional. Na verdade, é isso que estou tentando agora.
— Klaim

Obrigado. Minha preocupação é com o futuro do projeto. Começarei como um experimento, mas desejo fazer mais do que isso em breve.
— Maniero

Se for um projeto de longo prazo, ele poderá se beneficiar do CLang assim que estiver estável, correto, otimizado e com C ++ 0x completo (se você usar c ++). Porque o objetivo é ser o compilador mais rápido e, aparentemente, ele já é. E é importante.
— Klaim

11
Clang também está construindo iOS, Xcode e praticamente tudo o que a Apple está enviando.
— Mike Weller 28/05

8

Bem, certamente está pronto para o horário nobre no Mac OS X, pois muitos aplicativos para Mac OS X são compilados usando o clang. Mas, mesmo em outras plataformas, o suporte ao C é bastante sólido, e a equipe fez grandes progressos com o suporte ao C ++.

De um modo geral, o clang compila o código mais rapidamente que o gcc, mas o gcc gera um código melhor otimizado. (Existem casos extremos onde isso não é verdade, mas, em geral, esse é o status atual.)


Eu vejo o mesmo problema, Clang ainda está muito vinculado ao MacOS / BSD.
— Maniero

Eu tentei CLang no Windows 7 e funcionou corretamente. Eu também tentei no Ubuntu. Acho que suas informações não estão atualizadas, mas isso é lógico, pois muitos esforços de correções entre plataformas foram feitos nos últimos meses. Portanto, talvez não seja tão centralizado quando a próxima versão for lançada.
— Klaim

11
@Klaim: Eu não estou falando sobre Clang em si , mas sobre todo o ecossistema. Eu tentei algumas coisas sobre problemas de apagamento do Win7, mas apenas o compilador no CLI.
— Maniero

Descobri que o Clang criou um binário mais rápido que o GCC para o meu projeto. Vale a pena pelo menos experimentar.
— Kendall Hopkins

Além disso, agora é o compilador padrão para iOS.
— mamcx 01/10/12

3

Você realmente não deve depender de um compilador específico, a menos que realmente precise. Portanto, você deve poder alterar o compilador em um Makefile ou algo assim e tudo deve funcionar bem.

Aqui eu uso principalmente clang para meus projetos de brinquedos, porque é mais rápido e muito mais importante: suas mensagens de erro são muito mais claras. Mas quando eu preciso usar o gdb, eu compilo com o gcc e -ggdb. Portanto, o clang ainda não está completo e não pode ser meu único compilador.

(BTW: Estou no x86 gentoo, e os projetos estão em C e C ++)

editar : para esclarecer, o clang roda mais rápido (em alguns casos, muito mais rápido). Não me importo com otimizações sofisticadas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.