GCC ha sido insustituible en todos estos años en todos los entornos de software libre porque ha sido el único compilador (de C) portable, usable y libre. Con la aparición de LLVM/Clang la cosa cambia un poco. Hasta ahora LLVM era bastante dependiente de GCC y que Clang sea autónomo y se compilie a si mismo y a toda la infraestructura asociada es un hito muy importante en independencia. Recordemos que en los entornos BSD se ve con muy buenos ojos reemplazar a GCC [barrapunto.com].
Por otro lado la aparición de LLVM y su modularidad "de serie" ha servido de acicate para que los desarrolladores de GCC decidieran montar y facilitar un sistema de plugins para usar la información intermedia del compilador para, por ejemplo, hacer análisis estático de código.
El resumen rápido, tal y como yo lo veo es que la competencia es buena, al más puro estilo bazar [wikipedia.org]
LLVM es difícil de explicar:). Es un backend de compilador (toma un código intermedio de tipo RISC y lo compila a nativo). La gracia es que tiene capacidad de compilar y optimizar dinámicamente (aparte de compilar en estático). Para ello dispone de un sistema muy simple de tipos (nada de objetos). No es una MV de alto nivel, pero podría construirse una máquina virtual sobre LLVM, usándolo como una especie de framework de desarrollo.
Es un compilador de C/C++/ObjC hecho por los de Apple, con varias ventajas (para ellos) sobre GCC:
Mejor integración con su LLVM (el backend que usan ellos)
Mayor rapidez en el desarrollo
Licencia BSD (en lugar de GPL)
Seguramente más ligereza al estar hecho de cero y no ofrecer más que 3 lenguajes
Si te refieres a lo de compilarse a sí mismo, es un test básico para cualquier compilador escrito en el mismo lenguaje que compila, como es el caso. De esta manera se independizan definitivamente de GCC, que era el objetivo.
por
pobrecito hablador
el Miércoles, 10 Febrero de 2010, 10:36h
(#1202553)
¿Qué fue antes, el compilador que compilaba el código compilado para compilar compiladores o el compilador que se autocompilaba de un compilador que ya compilaba?
por
pobrecito hablador
el Miércoles, 10 Febrero de 2010, 13:03h
(#1202599)
Mientras las distribuciones libres promocionadas por el proyecto GNU y la FSF (incluso su propia distribución, gNewSense) usan sin problemas software con licencia BSD, los programadores de los BSD están que no cagan con buscar un sustituto a GCC reinventando la rueda por que (¡oh! ¡maldición!) es GPL. Eso sin contar con que ponen todo el software GPL en una carpeta aparte, cosa que, por cierto, no hacen con los blobs binarios.
Y mientras tanto a los que defendemos la GPL nos llaman zelotes, fanáticos y malditos comunistas en los foros de freebsd.
Ver para creer.
por
pobrecito hablador
el Miércoles, 10 Febrero de 2010, 15:20h
(#1202632)
Se compila a sí mismo, pero aún no soporta todo el ISO C++, y menos aún Boost y similares (según su página, sólo funcion alguna suelta). Tampoco soporta las extensiones GCC, las cuales son ya un requisito en cualquier compilador *nix.
Sobre proyectos reales, aún no compila Qt ni muchos otros.
Bien, el primer paso es autocompilarse, pero dicha autocompilación está trucada, porque han usado explícitamente código que "funciona" en su compilador, pero no código C++. No me parece ni mal ni bien, aunque hubiera estado bien que, para desarrollar su compilador, hubieran usado todo el potencial de C++, Boost, etc; y dejar para el final el que se auto-compilase, porque en el momento que pueda compilar Boost, Qt y similares va a poder compilarse a sí mismo también.
y eso para que sirve?
(Puntos:3, Inspirado)( http://www.galizalivre.org/ )
(no es ironia, es ignorancia, si alguien me lo puede explicar se lo agradeceré)
nem guerra entre povos, nem paz entre classes!
Re:y eso para que sirve?
(Puntos:5, Informativo)( https://twitter.com/yapw | Última bitácora: Viernes, 13 Mayo de 2011, 21:21h )
Por otro lado la aparición de LLVM y su modularidad "de serie" ha servido de acicate para que los desarrolladores de GCC decidieran montar y facilitar un sistema de plugins para usar la información intermedia del compilador para, por ejemplo, hacer análisis estático de código.
El resumen rápido, tal y como yo lo veo es que la competencia es buena, al más puro estilo bazar [wikipedia.org]
Aquí había una firma
Re:y eso para que sirve?
(Puntos:4, Interesante)( http://ignaciocalvo.com/ )
LLVM es difícil de explicar :). Es un backend de compilador (toma un código intermedio de tipo RISC y lo compila a nativo). La gracia es que tiene capacidad de compilar y optimizar dinámicamente (aparte de compilar en estático). Para ello dispone de un sistema muy simple de tipos (nada de objetos). No es una MV de alto nivel, pero podría construirse una máquina virtual sobre LLVM, usándolo como una especie de framework de desarrollo.
El artículo básico sobre LLVM [llvm.org] es bastante fácil de leer y muy recomendable.
Saludos! Mandel
Re:y eso para que sirve?
(Puntos:5, Informativo)( http://ignaciocalvo.com/ )
Es un compilador de C/C++/ObjC hecho por los de Apple, con varias ventajas (para ellos) sobre GCC:
Si te refieres a lo de compilarse a sí mismo, es un test básico para cualquier compilador escrito en el mismo lenguaje que compila, como es el caso. De esta manera se independizan definitivamente de GCC, que era el objetivo.
Saludos! Mandel
Oh, Dios mío!
(Puntos:1, Divertido)Duda
(Puntos:0)Estos fanáticos de la GPL
(Puntos:1, Interesante)Muy bien, pero cuidado
(Puntos:1, Interesante)Sobre proyectos reales, aún no compila Qt ni muchos otros.
Bien, el primer paso es autocompilarse, pero dicha autocompilación está trucada, porque han usado explícitamente código que "funciona" en su compilador, pero no código C++. No me parece ni mal ni bien, aunque hubiera estado bien que, para desarrollar su compilador, hubieran usado todo el potencial de C++, Boost, etc; y dejar para el final el que se auto-compilase, porque en el momento que pueda compilar Boost, Qt y similares va a poder compilarse a sí mismo también.
no tengo ni idea
(Puntos:0)