El artículo técnico explora el uso de la bandera -toolexec en el comando go build para insertar código propio en el proceso de compilación de Go. Este mecanismo permite a los desarrolladores ejecutar herramientas externas en cada paso del pipeline, como el compilador, el ensamblador o el enlazador, sin modificar el código fuente original del compilador. El texto detalla cómo el comando go build invoca múltiples subprocesos para cada paquete, generando archivos de configuración de importación (importcfg) que definen el mundo visible para el compilador. Al utilizar -toolexec, se puede reemplazar o envolver estas herramientas, como se demuestra con un cronómetro personalizado que mide el tiempo de ejecución de cada paso y registra los resultados. El autor, quien trabaja en Datadog y mantiene el proyecto otelc, explica que esta funcionalidad fue introducida inicialmente por Russ Cox en 2015 para facilitar pruebas bajo entornos como Valgrind. Hoy, se utiliza para instrumentación, optimización y análisis de rendimiento. El artículo incluye un ejemplo práctico de creación de un wrapper de cronómetro y analiza cómo el sistema de caché de Go puede interferir con estas pruebas si no se reconstruye todo el proyecto. Finalmente, se presenta otelc, una herramienta real de instrumentación de OpenTelemetry que aprovecha esta interfaz para mejorar el rendimiento de las aplicaciones Go, demostrando la utilidad práctica de esta capacidad de inyección en el ciclo de vida del desarrollo.
