Clang + FreeBSD: ClangBSD consegue se auto-compilar completamente
O ClangBSD é um ramo do FreeBSD que busca integrar o compilador livre clang (+llvm), substituindo o GCC na função de compilador do sistema. E ele acaba de atingir um marco interessante para um projeto com esta finalidade: o clang conseguiu compilar a si próprio, a um kernel FreeBSD funcional e a todo o código dos pacotes que compõem o FreeBSD nas plataformas i386 e amd64 (inclusive os aplicativos em C++).
Interessante ver o progresso em um compilador livre tão recente. Caso você tenha interesse em contribuir, no momento o que o pessoal do ClangBSD busca é o apoio dos interessados que queiram testar – seja em i386/amd64 ou em outras plataformas. (via osnews.com)
Todo mundo fugindo da GPL.
Eu não estou fugindo da GPL.
Tambem não estou fugindo da GPL, mas acho importantissimo ter um outro compilador do mesmo nivel e ainda mais com uma licensa BSD.
Todo mundo ganha com mais opções.
Só o pessoal do BSD é que quer fugir da GPL e entregar tudo de mão beijada para empresas como a Apple e Microsoft.
No dia em que a Microsoft decidir fazer um windows server ou qualquer outro produto proprietário usando kernel BSD e colocando um simples
“copyrighted by The Regents of the University of California.”
como ela já faz com os utilitários de rede como telnet e ftp no windows eu vou rir muito.
o problema aqui não é GPL e sim conseguir brigar com os desenvolvedores do GCC para inserir certo tipo de modificações. Não é qualquer um que consegue facilmente contribuir para o GCC pois a base de código é grande e funções usadas internamente em NENHUM projeto opensource grande é documentada.
ACHO que a questão está mais para conseguir ter uma alternativa que tenha uma base de código mais fácil e assim possa atrair mais contribuidores.
Sinceramente não acredito que se a Microsoft ou a Apple utilizarem esse compilador para melhorarem seus produtos seria uma coisa ruim.
Eu uso software opensource porque gosto da qualidade, mas isso não quer dizer que outros produtos não tenham qualidade também. Espero que o Windows sempre exista e que outras opções de SO também. Até porque é sempre bom ter concorrência para que não fiquemos sempre na mesmice.
@GPL
Acorda meu filho! Bem vindo ao mundo real. O clang é patrocinado pela Apple.
Por acaso você tem acesso a uma versão livre do CL.EXE (VC++) ou do xLC (IBM) ou do ICC (Intel) ?
Pára de chorar…
Eu não espero que sempre existam softwares com restrições jurídicas e técnicas artificiais que me impeçam de usar a tecnologia existente de forma plena. Eu não espero que sempre existam softwares que omitam a forma como funcionam, que possuam backdoors para satisfazer leis autoritárias, que sejam inseguros e mal-projetados e que tratem o conhecimento como propriedade particular.
OBS: Meu comentário é uma resposta ao @cajahyba. Não tem à ver com o FreeBSD ou o Clang.
@BobEsponja
Sei sim que a Apple é patrocinadora do Clang e é justamente por isso que eu vejo o interesse da galera do BSD em compilar tudo com Clang. Fica mais fácil entregar o código para a Apple assim, que não precisará nem adaptar para compilar no MacOS X futuro :-)
Justamente porque não existem versões livres do ICC e do VC++ é que o gcc tem tanta importância. Pena que o pessoal do BSD fique com essa picuinha de querer a todo custo se livrar do gcc só por causa da GPL.
Várias partes do mac são compiladas sobre clang, mas enfim gostei da idéia, temos de sair dessa história só gnu/linux, eu gosto e muito, mas opções são bem-vindas, e até hoje a roda não foi reinventada, está na hora de uma arvore unix, nascer sem código gnu, libc é bom, mas uma outra visão seria bem vinda, principalmente para estudos
@GPL
A picuinha não vem por parte deles, mas sim por conta da GPL v3. Os incomodados que se mudem? Ok, eles tiveram culhões de dizer “Não, obrigado”, e agora estão incrementando o CLang.
Eu torço muito pelo projeto. Se já não me agrada depender de empresas, me agrada menos ainda depender de comunidades.
@Harry,
Compartilho de sua opinião. Todavia, não foi isso que eu disse. Apenas falei que se outros SOs (ou produtos) resolvessem usar esse compilador para melhorar a qualidade seria uma coisa bem vinda.
Disse também que a concorrência deve ser cultivada (acrescento agora o de “forma saudável”) e que eu uso opensource porque gosto da qualidade.
Se um produto tem qualidade, IMHO, não importa se é free ou não.
Qual a “picuinha” que a GPL v. 3 traz afinal? Qual o problema desta versão da licença?
@cajahyba
OK. A minha única discordância com você então é que eu não acho sem importância o fato de um produto ser livre ou não e nas minhas escolhas pessoais esse fato tem um peso grande no modo subjetivo pelo qual eu avalio a qualidade de um produto. Normalmente eu penso na qualidade não em como um produto é melhor para mim, mas no quanto ele seria melhor para a sociedade caso o seu uso fôsse “universalizado”.
Não sei sobre alguma picuinha, mas acho que é interessante destacar que o projeto FreeBSD está se movendo para talvez *adotar* o Clang/LLVM – não foi o FreeBSD que decidiu criá-lo, nem que se encarregou da parte principal de seu desenvolvimento.
Para quem tem interesse de saber qual a lacuna tecnológica que o Clang procura preencher, esta apresentação (de 2008, antes de o projeto se aproximar do nível atual de maturidade) pode dar boas pistas, inclusive quanto aos diferenciais em relação ao GCC.
E eu concordo com quem diz que isso é uma implementação prática do velho adágio “os incomodados que se mudem”. Não me parece que a mudança, do ponto de vista de quem optou por criar o Clang e o LLVM, tenha relação com alguma picuinha com a GPLv3 especificamente, mas sim muito mais com características e recursos do GCC, e interesse em características e recursos que não eram prioritários no GCC.
Pois é. A principal diferença da GPLv3 das anteriores foi
http://en.wikipedia.org/wiki/GNU_General_Public_License#Version_3
“the most important changes are in relation to software patents, free software license compatibility, the definition of “source code”, and hardware restrictions on software modification (“tivoization”). Other changes relate to internationalization, how license violations are handled, and how additional permissions can be granted by the copyright holder.
Other notable changes include allowing authors to add certain additional conditions or requirements to their contributions. One of those new optional requirements, sometimes referred to as the Affero clause, is intended to fulfill a request regarding software as a service; adding this clause produces the GNU Affero General Public License version 3.”
@lucas, @Renato e@Harry
A picuinha que o @GPL se refere e a respeito dos desenvolvedores/usuários do BSD e não da licensa GPL por si.
No mais acho coerente que eles, por coerencia com a licensa deles, criem um compilador que segue a licensa deles. A liberdade de opção reside no fato que se pode usar o GCC, que é livre, e não o contrário.
licensa? bem…
Não gosto de evoluir software proprietário e não quero concorrentes proprietários .
Não estou falando do caso do clang,mas da licença BSD .
“licensa” oops, estrangeirizando.
Mas olha aí o título de um dos projetos BSD no summer of code: Improving Second Extended File system (ext2fs) and making it GPL free.
A GPLv3 não permite que programas cujos códigos estejam licenciados sob ela sejam distribuídos com programas de código fechado ou licenças permissivas estilo BSD. O FreeBSD teria que usar a última versão do GCC a ser licenciada sob a GPLv2 na distribuição de seu sistema operacional ou colocar o GCC no ports, para ser baixado e compilado por fora. Mas isso vai contra a pólitica do FreeBSD de não distribuir uma dependência do sistema base no ports.
Desse modo o FreeBSD optou pela traumática ruptura com o GCC e escolheu o LLVM/Clang para substituí-lo. Por enquanto o GCC ainda está sendo usado por padrão até que o LLVM/Clang esteja pronto para substituílo por completo, o que pode demorar um pouco ainda, faltam MUITOS testes e o time do FreeBSD está a procura de pessoas interessadas em realiza-los.
Mas essa notícia já é um grande passo.
Ué @erico
“Mas olha aí o título de um dos projetos BSD no summer of code: Improving Second Extended File system (ext2fs) and making it GPL free.”
Mas é claro, se o módulo tiver código GPL eles não podem distribuir “ativado” por padrão, senão eles serão obrigados a trocar a licença do kernel deles de BSD para GPL. Aí mesmo que você tenha uma preferência pessoal muito forte pela GPL, tem que admitir que é inadmissível historicamente para o FreeBSD trocar a licença de seu kernel.
O Tivolization é um câncer e deve ser combatido, graças a GPLv3 temos uma forma de faze-lo, mas infelizmente o Torvalds não adotou essa versão e por achar inutil a ele mesmo, tende a não adotar.
O LLVM/CLANG é bem-vindo, mas seria muito legal se usassem GPLv3, mas como está sendo criado para justamente resolver o problema do port do FreeBSD como informa o Antonio Pessoa, deve continuar como BSD o que não é ruim.
Como eu tinha escrito lá em cima @curioso, é coerente que eles façam isso. Eu coloquei o link apenas para ilustrar que o anúncio do clang não é isolado, de que há uma preocupação das comunidades BSD de usar código em acordo com a licença deles. Preocupação essa inflada pélos financiadores privados que assim também podem incorporar isso nos seus produtos.