GCC – O compilador lendário celebra 25 anos
Equipa disponibilizou o GCC 4.7.0 como forma de comemoração
O GNU Compiler Collection (usualmente designado apenas como GCC) é um conjunto de compiladores para as mais diversas linguagens de programação . Apesar de ter sido originalmente desenvolvido para a linguagem de programação C, o GCC suporta actualmente C++, Fortran, Ada, Java, Objective-C, Go, entre outras e é distribuído pela Free Software Foundation com a licença GNU GPL. O compilador GCC foi escrito em 1987 por Richard Stallman (derivado do compilador Pastel) para servir de suporte ao projecto GNU.
Para celebrar os 25 anos do projecto, a equipa responsável pelo mesmo anunciou aqui disponibilizou a versão 4.7.0 do GCC. Vamos conhecer as novidades.
Disponibilizado no dia 22 de Março, o GCC 4.7.0 foi disponibilizado como forma de comemoração dos 25 anos desde completo compilador.
Principais novidade dos GCC 4.7.0
- Suporte para novas extensões GNU para o formato de depuração de informação DWARF
- Melhorias ao´nível da estabilidade e estabilidade do Framework link-time optimization (LTO)
- Suporte melhorado para o padrão ISO C++11 no compilador de C e C++
- Suporte para a versão 3.1 da API OpenMP para C, C++ e Fortran
Todas as novidades e melhorias podem ser consultadas aqui
Actualização no MacOS
A Apple deixou de distribuir o GCC e e passou a adoptar como compilador padrão o Clang mais o llvm-gcc. Para quem pretender extrair, compilar e instalar as bibliotecas necessárias e o próprio GCC, basta executar o script disponibilizado por Dann Luciano.
#! /bin/bash PREFIX=/usr/local/gcc BUILD_FOLDER=gcc_build if [ $UID -ne 0 ] ; then echo "Root Please" exit 1 fi mkdir -p $BUILD_FOLDER cd $BUILD_FOLDER echo "Download need files" wget ftp://ftp.gmplib.org/pub/gmp-5.0.4/gmp-5.0.4.tar.bz2 -c wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.bz2 -c wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz -c wget ftp://gcc.gnu.org/pub/gcc/snapshots/4.7.0-RC-20120302/gcc-4.7.0-RC-20120302.tar.bz2 -c echo "Compiling gmp" tar xfz gmp-5.0.4.tar.bz2 cd gmp* mkdir build cd build ../configure --prefix=$PREFIX make make check make install cd ../../ echo "Compiling mpfr" tar xfz mpfr-3.1.0.tar.bz2 cd mpfr* mkdir build cd build ../configure --prefix=$PREFIX --with-gmp=$PREFIX make make install cd ../../ echo "Compiling mpc" tar xfz mpc-0.9.tar.gz cd mpc* mkdir build cd build ../configure --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX make make install cd ../../ echo "Compiling GCC" tar xfz gcc-4.7.0-RC-20120302.tar.bz2 cd gcc* mkdir build cd build ../configure --prefix=$PREFIX --enable-checking=release --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --program-suffix=-4.7 make -j 2 make install echo "GCC Build Complete in " $PREFIX cd ../../../ read -p "Erase your build directories (y/n)?" [ "$REPLY" == "y" ] || rm -rf $BUILD_FOLDER |
Para outros sistemas operativos, podem descarregar o GCC 4.7.0 via servidor FTP do projecto aqui
Alguma vez usou o GCC para desenvolvimento de algum projecto?
Este artigo tem mais de um ano
Para ser totalmente correcto:
GCC – A compilação (ou colecção) de compiladores lendários celebra 25 anos
E que 25 anos… O melhor de todos, no que conta a optimizações 🙂
É pena ainda não suportar a 100% o C++11, mas está muito perto de o fazer.
Congratulations GCC!
É bastante bom, mas está longe do ser o melhor.
Um bom exemplo é o compilador da intel, que em muitas situações em 10 vezes mais rápido (por exemplo fazendo uma decomposição LU com as MKL).
Não esta correcta a tua avaliação…!!
O compilador da Intel refere-se apenas a uma arquitectura, e não a todas as que o gcc suporta….
Fazendo a mesma analogia que fizes-te,
posso te dizer que o gcc é milhões de vezes mais rápido que o da Intel para a arquitectura AVR,ou MIPS ou ARM, entre muitas outras?!
que tens a dizer da minha afirmação?
cmps
O que estava em causa era a qualidade do compilador. O compilador intel é ordens de magnitude superior.
Quanto à arquitectura, isso é uma pura mentira. Embora não para isso que foi construido, um compilador intel um ARM faz a mesma figura que outros compiladores.
Quanto ao custo… tudo depende da utilidade. Para muitas coisas uso o gcc que dá muito bem. Quando corro calculos num cluster é impensavel usar o GCC. Operações com matrizes usando Blas ou Lapack chegam a ser 10 a 20 vezes mais rápidas. Isto é falar de 1 semana ou 10 semanas. 😉
Claro que o uso das flags adequadas ajuda, mas não faz milagres. Para além disso, o ic é totalmente vectorizado, enquanto que o gcc está a anos luz de isso acontecer.
Conclusão: O compilador intel com as MKL afinadinhas vale os milhares de euros que custa.
Boas..
eu não disse que para essa arquitectura é mau!É evidente que terá que ser o melhor, agora para as outras não acredito nem de longe que seja melhor que o gcc!!
A comparação que fizes-te parece-me errada, pois estás a comparar algo que é feito apenas para uma arquitectura com algo que existe para imensas arquitecturas, e essa comparação é errada, é nesse sentido que o meu comentário vai.
cmps
Sem contar que o compilador Intel não produz resultados _correctos_, e compila deliberadamente opcodes lentos para plataformas não-Intel.
com certeza que sim, daí não poder ser feita a comparação que o colega NS fez acima.
cmps
@lmx, mi:
Eu estou chocado! chocado!!! que o compilador da Intel esteja otimizado para processadores Intel.
Só falta virem dizer que o compilador da IBM está otimizado para processadores da IBM, que o da AMD está otimizado para processadores AMD e que o da ARM está otimizado para processadores ARM…
Boas…
lol,
de facto não percebo o porquê de as pessoas trazerem sempre algo que é muito especifico e que está patenteado, para um mundo onde existe algo grandioso, e que cobre a maioria das arquitecturas existentes, tendo um desempenho fantástico, para a situação em que é proposto, software livre(não podendo de forma alguma conter código patenteado pelas respectivas marcas de processadores, e outros).
Mesmo assim e sem introduzir optimizações na altura de compilar, tem uma performance muito boa, e não apenas para c/c++, mas sim para todas as outras linguagens que suporta.
É evidente que este compilador(que na pratica não é bem um compilador, pois um compilador tem um preprocessador de texto(macros),compilador, assembler e linker…(o que não é o caso!!!))não pode ter a mesma performance que um criado pela própria marca e que se encontra patenteado…
O GCC usa o Pacote binUtils para fazer assembler e linker.
É estranho quando alguém diz que está longe de ser o melhor e depois compara-o com um compilador de uma única arquitectura patenteada :S .
quando na Prática o GCC é muito mais do que um compilador, obviamente em conjunto com binutils.
cmps
cmps
assim de cabeça…
o compilador gcc contem mais de 450 megas de CODIGO FONTE, mais uns quantos do pacote binutils e mais uns quantos da GLIBC.
É um montro(funciona para varias linguagens e arquitecturas) …mas é um monstro bonito 😉
cmps
Qual é a única arquitetura patenteada?
A da IBM, a da ARM ou a da Intel?
É verdade que toda a gente fabrica processadores ARM (principalmente a Samsung) mas isso não quer dizer que não haja patentes às paletes. Para além do processador base cujo design é propriedade da ARM, o processador ARM dependendo de quem o fabrica usa patentes da Samsung, da Apple, da Qualcommm, da PowerVR, e mais uma carrada delas, incluindo da Intel ou não tivesse sido a intel a criar o primeiro microprocessador comercial, e o célebre sr. Moore (o da Lei de Moore) um dos seus fundadores.
São todas como é evidente, e expectável que um compilador não possa usar código patenteado?Penso que isso é óbvio!
Não faz sentido dizer que o compilador da intel é melhor em algumas coisas, porque este foi criado primeiro e tem codigo patenteado…que não pode ser usado noutros compiladores…
O problema da evolução é mesmo a treta das patentes, se assim não fosse o gcc daria-lhe um baile na arquitectura x86, porque não outras da-lhe um bailinho lol.
cmps
Estou a dar os 1º passos na programação usando o C. O único que compilador que utilizei até agora foi o gcc.
No caso da Apple o compilador padrão é o LLVM e não Clang. O Clang é um dos front-end possíveis, havendo em alternativa o front-end do GCC – daí LLVM-GCC. Em ambos os casos considera-se que o compilador é o LLVM.
Parabéns ao GCC!
O Richard Stallman (criador do GCC) veio a Lisboa à Semana Informática do IST, a qual coordenei e tive o prazer de fazer de “babysitter” dele. Nem sabia que já eram 25 anos, bolas!
Boas…
Sortuda 😉 !
Eu ainda não tive o prazer de o conhecer 🙁 .
cmps
Prazer?
O homem é um fanático fundamentalista do opensource, é o género de pessoa que faz as outras pessoas pensarem que há algo errado com o opensource.
OPEN SOURCE??????
Já eras excomungado por ele!
SOFTWARE LIVRE, FREE SOFTWARE.
A sério, não imaginas o stress que foi para meter na cabeça dos jornalistas esta diferença, porque ele passa-se quando as pessoas confundem os termos.
Mais info: http://www.gnu.org/philosophy/free-software-for-freedom.html
Boas…
existem de facto diferenças entre opensource e software livre…
Mas de uma forma geral partilho muitos dos valores deste SENHOR, e dou graças a deus ele ter existido, pois hoje temos escolha.
Escolha essa que inclusive permite aos mais necessitados poderem ter acesso ao ensino (informático e não só), que eu considero um valor fundamental de uma sociedade supostamente humana, sendo que a informática abre as portas a muito conhecimento, inclusive externo a esta ciência, como por exemplo o uso da Internet.
Este SENHOR conhecido como o ultimo dos Grandes GURUS gerados pelo MIT, tem sido um
impulsionador do software livre a todos os níveis, não podia deixar de estar de acordo com estes valores humanos, que também eu tenho orgulho em possuir, mas que não me permitem dada a minha insignificância, comparativamente a este SENHOR, produzir tamanho feito.
É de louvar que existam ainda neste mundo, feito de pseudo seres-humanos, pessoas como ele.
O fanatismo é relativo, depende sempre do ponto de vista de cada um.
Para a Microsoft, ele é visto como um vírus, já para mim…eu é que vejo a Microsoft como um vírus lol, e a ele vejo-o como um ser humano Verdadeiramente difícil de igualar, assim como muitos outros que teem ficado na historia, pela positiva como é óbvio.
Tudo na vida tem sempre varias interpretações e possíveis soluções, depende de que lado estamos colocados…
cmps
Olá,
@ Ana Narciso
já que foste a ama dele, LOL, sabes onde posso encontrar o video da palestra do teu protegido.
Obrigado.
\o/