martes, abril 25, 2006

Peligro: compilador!

Perdon por el articulo tecnico, pero si no lo cuento (aqui ya busque y encontre una victima a la que soltarle el lloro) reviento. Si aun no has visto el video de Gomaespuma, tira para abajo y olvidate de estos rollos.

Llevaba toda la tarde peleandome con un error absolutamente imbecil que me daba un programa (en C, a mas senhas). Tras jugar y hacer pruebas diversas, descubro que el simple hecho de sumarle 0.0 a una variable en una expresion ya existente era suficiente para causar el fallo. El error, debo decir, no era al compilar (compilaba sin problemas) sino al correr el programa, que de salida producia basura.

Tras llegar a este nivel de absurdo, se me ocurrio abrir el Makefile. Y que veo ahi? La bonita opcion -O3 (optimizacion) del compilador gcc. Y si...? Efectivamente, quito la opcion de optimizar y hop! todo funciona perfectamente.

Putos compiladores del demonio... Que carallo de magia negra hacen al optimizar para poder dar errores tan estupidos?

Hablando de errores, he aprendido yo del mio? No. En vez de usar gcc sin -O, me he pasado a usar un bonito compilador de pago, el pathcc de PathScale... al que de nuevo le estoy metiendo optimizacion a deguello. Hasta que algo pete, claro, y yo vuelva a perder el tiempo como un gilipollas hasta darme cuenta de lo que era.

------------------------------------------------

Por cierto, hoy es el aniversario de la Revolucion de los Claveles. Ahi abajo hay un articulo relacionado, por si se te habia escapado.

2 comentarios:

Pablo dijo...

Le he comentado lo de los compiladores a los informáticos del curro, y dicen que lo que pasa es que, como te habrás dado cuenta, cada compilador optimiza como le da la gana, y una vez que se uno se pone a optimizar (y por ello a cambiar el código: desenredar bucles, optimización de registros, cambiar el orden de las instrucciones...), vete tú a saber qué coño es lo que hace el compilador respecto a lo que querías que hiciese.

Saul dijo...

Si ya lo se, uno ya va siendo perro viejo y mil veces he tenido aviso del peligro de las optimizaciones, aparte de que ya alguna vez habia visto las chorradas que pueden llegar a hacer. Pero soy un histerico y tenia que poner en la red mi grito de desconsuelo tras el rato perdido por una causa tan gilipollas.

Por cierto, a los biologos les ha molado la pelicula que finalmente hice cuando consegui compilar.