Historias
Slashboxes
Comentarios
 

Clang ya se autocompila

editada por mig21 el 10 de Febrero 2010, 08:00h   Printer-friendly   Email story
desde el dept. modularizando-compiladores
Como puede leer en el blog de LLVM/Clang, el compilador con licencia similar a la BSD patrocinado por Apple: ¡Clang ha completado su primera autocompilación! Hemos compilado toda la LLVM y el propio Clang con Clang, unas 550k líneas de código en C++. Los binarios resultantes han pasado todos los test de regresión y el Clang resultante puede además generar toda la LLVM y Clang de nuevo. Este tercer Clang resultó plenamente funcional, completando así el bootstraping .Más comentarios en OSNews y reddit. En noticias relacionadas, el sistema de plugins de GCC va dando sus frutos y la fundación Mozilla ha desarrollado Dehydra y Treehydra, unos plugins para hacer análisis estático de código C++.

Historias relacionadas

[+] Publicado LLVM 2.4 13 comentarios
Acaba de ser anunciada la versión 2.4 de LLVM (Low Level Virtual Machine). A LLVM y su compilador asociado clang se les ha querido ver como un competidor de GCC, en parte por su licencia BSD, por su diseño más modular, por su novedoso enfoque de las optimizaciones y por el apoyo de Apple. La versión 2.4 trae una buena cantidad de novedades entre las que destacan la mejora en la generación de código, compilación más rápida y soporte para la arquitectura PIC16. En el propio anuncio se apunta a una serie de presentaciones y vídeos para saber más. [Vía reddit]
[+] El sistema de plugins cada vez más cerca de GCC 68 comentarios
Hace bastante tiempo que se viene discutiendo el por qué de la falta de sistema de plugins en el compilador libre por excelencia, GCC. Al parecer el principal problema era legal, es decir, el miedo a fomentar la proliferación de plugins propietarios. Pues bien, ya se ha establecido el marco de licencias que pueden regir ese sistema, que es la nueva versión de la GCC Runtime Library Exception y con ello su desarrollo está cada vez más cerca. Además esta nueva versión de la licencia permitirá la actualización a la licencia GPLv3 de algunas librerías del propio GCC. La FSF ha proporcionado un documento con las razones para esta licencia y las preguntas más frecuentes sobre ella. Más información en Slashdot: Plug-In Architecture On the Way For GCC.
[+] FreeBSD planea abandonar GCC por Clang/LLVM 11 comentarios
Pirx nos cuenta: «Hace unos días saltó la noticia de que Debian tiene la intención de sustituir la libc de GNU. Hoy leo que FreeBSD planea cambiar la colección de compiladores de GNU (GCC) por Clang/LLVM. Aunque ambas noticias suponen una pérdida de influencia para el proyecto GNU, parecen tener distintas causas. Lo de Debian está claro que viene de roces con Ulrich Drepper. Debian existe para un buen número de arquitecturas empotradas que Drepper califica con su acostumbrada diplomacia como "embedded crap" :-) Lo de FreeBSD podría ser más cuestión de familia. El proyecto LLVM creo que está patrocinado por Apple y tiene licencia BSD».
[+] Publicado GCC 4.5 36 comentarios
GCC 4.5 acaba de ser publicado. En la lista de cambios se pueden leer las novedades de esta versión. De ellas las más visibles para los usuarios pueden ser las mejoras en el mostrado de errores como indicar la columna por defecto, evitar mostrar más errores en caso de falta de un fichero de inclusión o no mostrar los parámetros por defecto de las plantillas, con la ganancia de legibilidad que eso supondrá. Además viene con mejoras en las optimizaciones, en los lenguajes y plataformas soportadas y con un gran avance en el soporte experimental de C++0x, la nueva estandarización de C++, prevista para el año que viene, además de la inclusión en la rama principal del sistema de plugins.
[+] FreeBSD/Clang preparado para pruebas 14 comentarios
Cuentan en la lista de correo freebsd.current:ClangBSD es una rama de FreeBSD que trata de integrar Clang en FreeBSD reemplazando a GCC como compilador del sistema. Recientemente hemos llegado al punto en el que Clang es capaz de compilar todo FreeBSD en las plataformas i386 y amd64, incluyendo todas las aplicaciones escritas en C++ y el kernel. Creemos que ha llegado la hora de pedir a la comunidad de FreeBSD unas pruebas más amplias de esas plataformas y ayuda con las otras.Las instrucciones para generar el sistema con Clang se encuentran en la wiki del proyecto.
[+] LLDB: nuevo depurador desarrollado sobre LLVM 8 comentarios
wfox nos cuenta:«Según veo en el blog del proyecto LLVM se ha anunciado el desarrollo del depurador LLDB el cual hará uso de todas las herramientas que provee LLVM. Según comentan en reddit, el depurador venía siendo desarrollado por Apple internamente y decidió liberarlo. Es interesante ver todo lo que ha avanzado este año tanto LLVM como Clang. Por ejemplo, ya hay soporte del estándar ISO C++ 2003 y ya se logró compilar BoostEn noticias relacionadas la ACM ha premiado a Chris Lattner y al proyecto LLVM con el Programming Languages Software Award por el impacto que dicho proyecto ha tenido tanto en entornos de investigación como en la industria.
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • y eso para que sirve?

    (Puntos:3, Inspirado)
    por obreiro (37284) el Miércoles, 10 Febrero de 2010, 08:38h (#1202519)
    ( http://www.galizalivre.org/ | Última bitácora: Lunes, 18 Febrero de 2008, 21:04h )
    y eso para que sirve? Que utilidad tiene?

    (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)
      por mig21 (7781) <{mig21bp} {at} {gmail.com}> el Miércoles, 10 Febrero de 2010, 08:49h (#1202524)
      ( http://yapw.blogspot.com/ | Última bitácora: Jueves, 11 Noviembre de 2010, 09:53h )
      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]
      --
      Y tú ¿Ya usas tu bitácora [barrapunto.com] para hablar de las noticias que te interesan?
      [ Padre ]
      • Re:y eso para que sirve?

        (Puntos:4, Interesante)
        por mandel (23280) el Miércoles, 10 Febrero de 2010, 09:58h (#1202541)
        ( 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
        [ Padre ]
      • 2 respuestas por debajo de tu umbral de lectura actual.
    • Re:y eso para que sirve?

      (Puntos:5, Informativo)
      por mandel (23280) el Miércoles, 10 Febrero de 2010, 08:50h (#1202526)
      ( http://ignaciocalvo.com/ )

      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.

      --
      Saludos! Mandel
      [ Padre ]
    • 2 respuestas por debajo de tu umbral de lectura actual.
  • Oh, Dios mío!

    (Puntos:1, Divertido)
    por pobrecito hablador el Miércoles, 10 Febrero de 2010, 08:42h (#1202521)
    Noo! Un programa que se autocompila él solito! Es el principio del fin! En un par de años tendremos cosas como ésta [alanbaxteronline.com]!!!
  • Estos fanáticos de la GPL

    (Puntos:1, Interesante)
    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.
  • Muy bien, pero cuidado

    (Puntos:1, Interesante)
    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.
  • 2 respuestas por debajo de tu umbral de lectura actual.