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.

Maniero
fonte

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.

Klaim
fonte
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.)

mipadi
fonte
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.


fonte