run mac installing how golang descargar compilador go gccgo

mac - ¿Cuáles son las principales diferencias entre ''gc'' y ''gccgo''?



installing go mac (1)

Puedes ver más en " Configuración y uso de gccgo ":

gccgo, un compilador para el lenguaje Go. El compilador gccgo es una nueva interfaz para GCC.
Tenga en cuenta que gccgo no es el compilador gc

Como se explica en " Gccgo en GCC 4.7.1 " (julio de 2012)

El lenguaje Go siempre ha sido definido por una especificación, no una implementación. El equipo de Go ha escrito dos compiladores diferentes que implementan esa especificación: gc y gccgo.

  • Gc es el compilador original, y la herramienta ir lo usa de forma predeterminada.
  • Gccgo es una implementación diferente con un enfoque diferente

Comparado con gc, gccgo es más lento para compilar código pero admite optimizaciones más potentes, por lo que un programa vinculado a la CPU creado por gccgo generalmente se ejecutará más rápido.

También:

  • El compilador gc solo admite los procesadores más populares: x86 (32 bits y 64 bits) y ARM.
  • Gccgo, sin embargo, admite todos los procesadores compatibles con GCC.
    No todos esos procesadores han sido probados exhaustivamente para gccgo, pero muchos lo han hecho, incluidos x86 (32 bits y 64 bits), SPARC, MIPS, PowerPC e incluso Alpha.
    Gccgo también se ha probado en sistemas operativos que el compilador gc no admite, especialmente Solaris.

si instala el comando go desde una versión estándar de Go, ya admite gccgo a través de la opción -compiler : go build -compiler gccgo myprog .

En resumen: gccgo: más optimización, más procesadores .

Sin embargo, como commented OneOfOne ( source ), a menudo hay una desincronización entre go admitida por gccgo y la última versión de go:

gccgo solo admite hasta la versión v1.2 , por lo que si necesita algo nuevo en 1.3 / 1.4 (sugerencia) no se puede usar gccgo. -

La versión 4.9 de GCC contendrá la versión Go 1.2 (no 1.3) de gccgo .
Los calendarios de publicación para los proyectos GCC y Go no coinciden, lo que significa que 1.3 estará disponible en la rama de desarrollo, pero que la próxima versión de GCC, 4.10, probablemente tendrá la versión Go 1.4 de gccgo.

twotwotwo menciona en los comentarios la presentación de Brad Fitzpatrick

gccgo genera muy buen código
... pero carece de análisis de escape: mata el rendimiento con muchos pequeños allocs + basura
... GC no es preciso. Malo para 32 bits.

twotwotwo agrega:

Otra diapositiva menciona que la generación de código ARM no gccgo es poco sólida.
Suponiendo que es una opción interesante para su proyecto, probablemente compare los binarios para su caso de uso en su arquitectura de destino.

Como comments peterSO , Go 1.5 ahora (Q3 / Q4 2015) significa:

El compilador y el tiempo de ejecución ahora están escritos completamente en Go (con un pequeño ensamblador).
C ya no está involucrado en la implementación, por lo que el compilador de C que una vez fue necesario para construir la distribución se ha ido .

La diapositiva "Go in Go" menciona:

C se ha ido.
Nota al margen: gccgo sigue siendo fuerte.

¿Cuáles son las principales diferencias entre los dos populares compiladores de Go, ''gc'' y ''gccgo''? ¿Desarrollar el rendimiento? ¿Desempeño en tiempo de ejecución? Opciones de línea de comando? ¿Licenciamiento?

No estoy buscando opiniones sobre cuál es la mejor, solo una descripción básica de sus diferencias, para poder decidir cuál es la mejor para mis necesidades.