Compilador livre: Clang torna-se capaz de compilar a si próprio efetivamente
| Tweet |
|
O Clang, compilador em código aberto sendo desenvolvido no bojo do projeto LLVM (iniciado em 2000 na Universidade de Illinois), cada vez mais se aproxima de ser uma excelente opção para projetos que exijam compilação de C, C++ e Objective-C (e, em graus variados, também das demais linguagens para as quais já tem front-end implementado ou em andamento), contando também com a vantagem de ser oferecido sob uma licença verdadeiramente livre.

E a novidade do final da semana passada é que o Clang agora é um compilador self-hosted na prática, ou seja, é capaz de compilar o seu próprio código-fonte (o Clang mais o LLVM, equivalente a mais de 550K linhas de código em C++) integralmente, gerando um executável funcional capaz de novamente compilar o mesmo código-fonte, gerando mais uma vez um compilador funcional capaz do mesmo feito, e assim sucessivamente.
Parabéns aos desenvolvedores pelo atingimento deste importante marco! Aguardo noticiar em breve os próximos. A proposta do LLVM e as metas do Clang, em especial, são muito bem-vindas por mim.
Como a curiosidade a respeito é natural, vale mencionar que o Clang continua sendo um trabalho em andamento, e que ainda não é capaz de compilar o kernel Linux. Mas ele já compila o kernel do FreeBSD (para i386/amd64) há um ano, e o do DragonflyBSD também desde o ano passado. Em meados do ano passado ele já era capaz de compilar 99% do FreeBSD, e já era pública a discussão sobre adotá-lo como o compilador do FreeBSD, que já vinha levando a grande atenção aos ajustes, implementações e correções ainda necessários ao Clang para permitir uma migração completa. (via h-online.com)
• Link direto para este post: http://br-l.org/!18087
• Siga no Twitter: @brlinuxblog e @augustocc
• Mais posts do mesmo tema: Desenvolvedores, Destaque









Não entendi o termo “puxar o saco”?
Engraçado, às vezes comento e o comentário não sai.
Tentarei de novo…
O que faz com que um código em C seja compilável por qualquer compilador C que use o padrão ansi é ser escrito usando o padrão ansi, ok? Isto significa que o Linux ao menos não usa este padrão (nunca tentei compilar o linux com um -ansi, mas tentarei), e o FreeBSD, por compilar com gcc e llvm, certamente mais provavelmente está mais perto de tal feito.
Alguém sabe se existe alguma iniciativa do tipo no desenvolvimento do Linux?
E, mais uma vez, não houve a real necessidade de colocar no texto “licença verdadeiramente livre”, que só aparece quando se trata de um software licenciado do tipo BSD/MIT. Bem que o autor poderia ter citado somente “com uma licença baseada nas licenças BSD/MIT”.