Gustavo Freitas escreveu: > Li a reportagem sobre o Suporte Clang/LLVM na site FUG, gostaria de > saber qual seria > as vantagens/desvantagens em usar ao inves do GCC, > será somente pelo simples fato de usar licença GPL. ? >
Por enquanto sao so desvantagens. O gcc e mais consolidado, trabalhado por mais tempo, testado amplamente em multiplas plataformas, tem mais bagagem, e uma comunidade propria de desenvolvedores. A dupla clang/llvm consome tempo e recurso humano de desenvolvedores BSD que poderiam estar trabalhando nos seus respectivos sistemas, mas estao trabalhando na suite de compilacao. Isso eh desvio de atencao, formalmente. Quase tao prejudicial a produtividade quanto retrabalho, em uma organizacao. Pra piorar, a necessidade de um novo compilador gera divergencia dentro da comunidade BSD. Enquanto alguns investem (tempo e dinheiro) no clang-llvm outros investem tempo e dinheiro[1] no pcc[2]. Existe uma comparacao de pros e contras do clang vs gcc e vs pcc: http://clang.llvm.org/comparison.html Enquanto os pros sao justos e verdadeiros, nao sao uma constante. Algumas das "otimizacoes alienigenas" do gcc que sao lixo, por exemplo, so acontece com -O3. Quase nada eh compilado com -O3. Alem disso, a vantagem mais repetida, sobre velocidade de compilacao e binario pequeno, eu sou cetico. Profiling recente no Darwin[3] mostra que apesar da velocidade e consumo mais "eficiente" de memoria, o produto final gerado em clang tem menos performance que o mesmo objeto de baixo nivel gerado pelo gcc. Em miudos, de nada vale a velocidade de compilacao. O que importa eh o objeto compilado. Lembro que foi um impacto quando saimos do FreeBSD 4 pro 5 e todos notaram "nossa o buildworld no 4 era 5x mais rapido, nossa o 5 ta super lento, nossa isso, nossa aquilo". Gcc 2.95 pro gcc 3 foi um salto. Lembro o trampo que deu virar os ports, estabilizar o source, pra no final tudo demorar mais. E no Linux mesma coisa, todos fizeram quase-festa quando o Kernel 2.4.17 do LX la em 2002 compilou sem problemas no gcc 4, e gerou resultados melhores que no gcc 2.96. Mas todos reclamavam que demorava. Dessa otica simplista devemos ficar mais felizes com o gcc no FreeBSD 4 do que no FreeBSD 5, ou FreeBSD 7, por exemplo. Os Linuxers deveriam ficar mais felizes com o que era em 2002 do que hoje. Mas a coisa nao eh assim. O gcc passou a demorar mais depois do "chute" que levou da Intel (quando o icc esmagou o gcc em performance de objeto resultante). O gcc3 demorou mas comecou gerar resultados iguais ou melhores que o icc. O side-effect foi o tempo de compilacao necessario pra tantas otimizacoes q ficou cada vez mais alto. Ate hoje o icc pisa no calo do gcc[4]. Estamos vendo ai, recurso humano sendo recrutado pra testes[5], slots do Google SoC ocupados[6] com desenvolvimento o clang, Apple tuxando dinheiro e RH. Mas por enquanto estamos so correndo atras do prejuizo. Culpa do louco (ok eu deveria preguejar mais contra o cara, talvez como dieguito maradonna pregueja contra a impresa eauahuahua) do RMS e sua GPL3. Acredito que teremos uma disputa competitiva entre um compilador BSD e um GPL logo, mas nao antes de gastarmos pelo menos mais 1 ano de recursos. Nao gosto de ver eh metade do tempo sendo gasto com PCC e outra metade com LLVM. Isso eh oneroso. Mas enfim... Por isso penso que LLVM eh um mal necessario. Um dia espero que colhamos os "louros". A vantagem imediata que vejo eh se livrar dessa praga chamada GPL no code-base. Depois dizem que BSD eh isso e aquilo, mas eh na mao do louco-varrido-sujo-fedorento-arrogante-barbudo (RMS, nao o Lula) que o mundo Open Source fica refem. Nem o Torvalds vai por seu kernel em GPL3. Nem os maiores vendors que apoiam o Linux comercialmente vao financiar produto GPL3. E ainda falam mal dos perigos da licenca BSD... hipocrisia. Bom, desculpem compartilhar meu longo ponto de vista, que nao eh de festa, mas de esperanca de podermos aproveitar a oportunidade. No momento so o que o mundo BSD tem eh problema e oportunidade. Alias nao eh essa a definicao basica de risco? [1] http://www.thejemreport.com/content/view/369/ http://pcc.ludd.ltu.se/ [2] http://bsdfund.org/projects/pcc/ [3] http://lists.apple.com/archives/objc-language/ [4] http://blog.alphagemini.org/2008/03/icc-vs-gcc-43.html [5] http://www.fug.com.br/content/view/659/2/ [6] http://wiki.freebsd.org/BuildingFreeBSDWithClang ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

