Esta semana ha habido un post en las news de FWH que me ha llamado poderosamente la atención. Es este post se preguntaba por la incompatibilidad entre xHarbour y versiones de FWH previas a la 2.5 y Walter Negro, componente del equipo de xHarbour al que nunca le agradeceremos las explicaciones que nos dá, aclaraba:
Es verdad, xHarbour es compatible con FWH 2.4 hasta la Beta 1.1 que acaba desalir, pero ya no con el último CVS.
Sin embargo haciendo unas pequeñas modificaciones y recompilando el xHarbour por completo, es posible mantener la compatibilidad con FWH 2.4 y anteriores.
El que xHarbour no sea compatible, no es un problema de xHarbour.
A decir verdad, la causa de esta incompatibilidad surge de una necesidad y
de una propuesta hecha por el equipo de desarrollo de xHarbour.
Esta propuesta se comunicó al equipo de desarrollo de Harbour junto con la
propuesta de como mantener la compatibilidad, al menos durante un tiempo
necesario para que Antonio pudiera brindar las actualizaciones necesarias al
código, actualizaciones que prometió tener prontamente.
El equipo de desarrollo de Harbour no quiso mantener la compatibilidad con
FWH e hizo el cambio directamente y es así que FWH 2.4 solo es compatible
hasta la versión 0.43 y de la misma forma, FWH 2.5 sólo es compatible con
0.44.
Lo que se hizo en xHarbour ahora, es ser compatible con Harbour y con FWH
2.5, aunque sigue existiendo la posibilidad de recompilarlo para mantener la
compatibilidad con FWH 2.4 Dejan de ser compatibles por la misma razón que lo fué Harbour. Esto es, se pasó de SHORT a LONG el registro que indica la cantidad de referencias que existe sobre un array u objeto.
De momento, la manera de solucionar esta incompatibilidad es esta – GRACIAS WALTER -:
Para poder seguir usando el xHarbour actual con FWH 2.4, hay que restaurar
los archivo hbvmpub.h y hbdefs.h anteriores al cambio.
Una forma sencilla de conseguirlo, es en SourceForge.
http://cvs.sourceforge.net/viewcvs.py/*checkout*/xharbour/xharbour/include/hbvmpub.h?rev=1.31
http://cvs.sourceforge.net/viewcvs.py/*checkout*/xharbour/xharbour/include/hbdefs.h?rev=1.55
En este otro link, se puede apreciar en colores las líneas eliminadas
http://cvs.sourceforge.net/viewcvs.py/xharbour/xharbour/include/hbvmpub.h?r1=1.31&r2=1.32
http://cvs.sourceforge.net/viewcvs.py/xharbour/xharbour/include/hbdefs.h?r1=1.55&r2=1.56
Pero yo creo que el tema no es que cada uno se monte de nuevo xHarbour para mantener la compatibilidad. Como decía TheFull en el mismo hilo, no es cosa de que un compilador sea compatible con una librería, sino al revés. No se en que medida estos cambios afectan a FWH, pero creo que sería un detallazo que FiveTechSoft publicase los parches adecuados para que FWH mantuviera la compatibilidad con xHarbour.
Gracias Jose Luis por tus comentarios.
De paso comento que se espera otra «oleada» de grandes e importantes cambios durante un tiempo en Harbour y xHarbour.
En estos últimos días en Harbour se han hecho grandes cambios para ser tener compatibilidad con 64bits y otras plataformas (Alpha)
Estos cambios seguramente no son definitivos y necesitan de un tiempo de testeo para ser considerados estables.
Sin embargo, de una forma, a mi parecer, muy poco entendible, Antonio Linares decidió sacar el build de Octubre de FWH 2.5 compatible *sólo* con estos cambios.
Esto hace incompatible a este build con cualquier Harbour y xHarbour anterior, e incluso con el recien salido xHarbour 0.99.2 que venía a traer la compatibilidad con FWH 2.5
No se si Antonio Linares quiso sacar partido de este cambio para volver a traer a los usuarios hacia Harbour, pero lo cierto es que esto le hace muy pero muy mal a la comunidad y a los usuarios de FW en general.
Asi que guarden muuuy bien su copia actual de FWH y su copia actual de [x]Harbour.
No hagan actualizaciones del CVS a menos que sepan concretamente lo que estan bajando y su compatibilidad con lo que estan usando.
¡¡ Gracias Walter !! Eres el enlace de los hispanohablantes con xHarbour, y la verdad es que gracias a ti seguimos perfectamente el proyecto.
Saludos,