Tabla de Contenidos

GUÍA DE MIGRACIÓN A HARBOUR

Como bien sabemos, Harbour y xHarbour tienen un origen y una base común. De hecho, xHarbour es un fork o un derivado de Harbour, y desde que ese hecho se produjo ambos han seguido caminos separados aunque paralelos. Durante todo este tiempo ha habido ocasiones en las que se han llevado partes de Harbour a xHarbour para mantener la compatibilidad, y lo contrario también ha ocurrido.

No obstante, y aunque ambos compiladores son compatibles entre sí en un 99%, hay algunas diferencias que hay que tener en cuenta si queremos que los programas escritos en Xailer para xHarbour puedan funcionar en Xailer para Harbour.

El presente documento pretende mostrar dichas diferencias y cómo superarlas. Está basado en la propia experiencia de migración de los fuentes de Xailer de xHarbour a Harbour, por lo que debería cubrir prácticamente todos los casos que se puedan dar a cualquier programador.

Esta lista de diferencias está dividida en tres bloques, según afecte al código PRG, C o al propio de Xailer. Algunas de las diferencias serán fácilmente detectadas por el compilador, bien a nivel PRG o bien a nivel C, pero otras no son detectadas en tiempo de compilación, lo que hace más difícil su corrección. Esto se indica en cada diferencia.

A nivel PRG

ACTUALIZACIÓN: Esto fue corregido posteriormente en Harbour, y solamente afecta a Xailer 2.7. Las versiones posteriores están libres de esta limitación.
Puede buscar dentro de un proyecto cualquier expresión que contenga un signo menos (-) dentro de unos corchetes con esta expresión regular: \[[^\]]*-[^\[]*\]

Con esto, obtendrá todos los posibles casos conflictivos. Lógicamente saldrán más casos, que no son incorrectos, pero ya deberá discriminarlos manualmente.

A nivel C

Dentro de Xailer

ACTUALIZACIÓN: Esto sólo se aplica a Xailer 2.7. En Xailer 3.0 ya no es necesario, y se puede utilizar cualquier versión nightly-build de Harbour, aunque lógicamente sólo se dará soporte a la versión de Harbour que publica oficialmente Xailer en su área de descargas.