2005-03-19 Cuando obtienes un "compiler error" y te vuelve loco!
Avanzado el projecto de MUTIS me he topado con unos pares de bestias tremendas. Los errores de compilador son de lo peor!

Me refiero a estos dos:

(compiler error): symbol is not linked in executable

y

[Fatal Error] F2084 Internal Error: ILLK14301

Especialmente este ya tiene una solucion... afortunadamente. Pero el primero aun no :( (todavia estoy en la fase de identificación).

Estos errores ocurren principalmente debido a definiciones de codigo poco comunes... lo cual me remite al hecho que MUTIS es un port de un proyecto hecho originalmente en Java/C# y cuando se importan ciertas cosas dentro de Delphi pueden ocurrir casos inesperados....

Como se pude lidiar con este tipo de problemas?. La unica forma real es:

- Copiar el proyecto con problemas con otro nombre
- ELIMINAR todos los units. TODOS.
- Ir agregando uno a uno. Parar hasta donde se pueda compilar aunque no se tengan todos los untis originales
- Ver si ocurre el error
- Si no ocurre ir agregando y ver en que punto ocurre
- Cuando vuelva a ocurrir, entonces ya se sabe por lo menos en que conjunto de units esta el problema. Ir revisando uno a uno.... y esperar que se arregle!
- Cuando quede listo, entonces reportar a Quality Central (Delphi 2005 tiene el cliente de Quality Central integrado en el menú tools) el hallazgo, junto al código de ejemplo y como se puede solucionar... de esa manera los ingenieros de Borland tendrán un caso reproducible que puedan solucionar y nosotros los usuarios una oportunidad de resolver estos problemas mientras tanto.

Lo que recuerda lo importante de tener una jerarquia de clases bien estructurada, porque si no se pueden separar las clases por tener dependencias muy fuertes este trabajo se vuelve MUY dificil. Afortunadamente, con buenas practicas de desarrollo y programación con MUTIS fue posible aislar facilmente y en poco tiempo las clases con problemas. Poco a poco se va "limpiando" el codigo hasta que quede otra vez bien!

Adicionalmente, contar con una herramienta de control de código fuente es muuuuy útil porque le ayuda a uno a hacer cambios sin miedos y poder despues hacer un diff (diferencia) del código para detectar los puntos de cambio.

Etiquetas: