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.