El compilador oficial actual de Go (http://code.google.com/p/go/) utiliza actualmente un generador de código artesanal, posiblemente arcano, que incluye la inyección de secciones personalizadas en el Binario ELF.¿Por qué Go usa su propio generador de código?
Este enfoque ha engendrado bastantes errores relacionados con las utilidades que leen o escriben directamente información ELF, como , objdump
o strip
.
creo que esto podría haberse evitado mediante el uso de un generador de código multiplataforma welltested, como LLVM, y luego sólo tiene que utilizar las instalaciones de enlace suministrados con el sistema operativo, como ld
en Unix/Linux (o ld.exe
en las ventanas w/MinGW) o link.exe
en Windows con Visual Studio.
Entonces, ¿por qué Go usa su propio generador de código? ¿Realmente es solo reinventar la rueda? ¿O hay razones más importantes detrás de esto?
Tendría que preguntarle a alguien sobre ese proyecto por qué hicieron esa elección. – dmckee
Para tener control completo de lo que hacen. – OscarRyz
@dmckee: O podría leer su respuesta a esta pregunta. – peterSO