EGCS
# EGCS

EGCS es la sigla de Experimental/Enhanced GNU Compiler System (sistema de compilación GNU mejorado/experimental). Fue un sistema de compilación que surgió a raíz de una bifurcación del compilador GCC (GNU C Compiler) en 1997 y que fue reintegrado al proyecto principal en abril de 1999.

En 1991 GCC 1.x había alcanzado una gran estabilidad, pero las limitaciones de la arquitectura interna impedían muchas de las mejoras que se creían necesarias. Por ello, la Free Software Foundation (FSF) y otros colaboradores como Cygnus Solutions comenzaron a trabajar en la siguiente versión de GCC que solucionaría estos problemas. El desarrollo estaba dirigido por la FSF, que decidía qué mejoras se integraban en la versión oficial de GCC.

Dado que GCC era software libre, hubo otros grupos que trabajaron en ampliar las capacidades de GCC en la dirección que más les interesaba, produciendo diferentes versiones alternativas. Cygnus Solutions, que vivía de dar soporte a las herramientas GNU, estaba interesado en que GCC mejorase más rápidamente. Por ejemplo, el avance en la compilación de código C++ era muy lenta. Intel, por su lado, estaba interesado en que GCC generase código optimizado para su microprocesador Pentium. Sin embargo, las mejoras introducidas en la versión de Intel implicaban profundos cambios en el compilador y hacían que solo funcionase en ordenadores de arquitectura x86.

Aunque muchas de estas versiones alternativas eran ineficientes y poco manejables, las mejoras que proponían eran importantes. La dificultad para que estos trabajos fuesen aceptados en la versión oficial de GCC producía gran frustración. El férreo control al que la FSF sometió al desarrollo de esta nueva versión de GCC hizo que Eric S. Raymond lo nombrase como ejemplo de modelo de desarrollo al estilo catedral en su ensayo «La catedral y el bazar».

En 1997 un grupo de desarrolladores, liderados por Cygnus Solutions formaron EGCS mezclando varias versiones experimentales de GCC en un único proyecto. Los proyectos integrados incluían g77 (compilador para Fortran), PGCC (GCC optimizado para procesadores Pentium), muchas mejoras sobre C++ así como nuevas arquitecturas y variantes de sistemas operativos.

El desarrollo de EGCS se mostró considerablemente más sólido que el desarrollo de GCC hasta tal punto que la FSF detuvo oficialmente el desarrollo de su compilador GCC 2.x, aceptó EGCS como la versión oficial de GCC y nombró al proyecto EGCS como proyecto oficial de GCC en abril de 1999. Además, el proyecto adoptó explícitamente el modelo de desarrollo al estilo bazar en contraposición al modelo catedral anterior. Con la publicación de GCC 2.95 en julio de 1999, que era la versión 1.2 de EGCS, los dos compiladores se reunieron de nuevo.

