Tabla de Contenidos

MIGRATION GUIDE TO HARBOUR

As we know, Harbour and xHarbour have an origin and a common basis. In fact, xHarbour is a fork or derived from Harbour, and since that incident occurred the two have walked through different paths, but in parallel. During all this time there have been occasions when some parts of xHarbour were ported into Harbour to maintain compatibility, and the reverse has also happened.

However, and although both are compatible compilers by 99%, there are some differences to be taken into account if we want that our programs written on Xailer for xHarbour will also function on Xailer for Harbour.

This paper aims to show and how to overcome those differences. It is based on the experience of migration Xailer sources of xHarbour to Harbour, so it should cover almost all cases that can be given to any programmer.

The list of differences is divided into three blocks, as affecting the PRG code, C code, or Xailer itself. Some of the differences are easily detected by the compiler, either PRG level or C-level, but others are not detected at compile time, making it more difficult to fix. This is indicated in each difference.

At the PRG level

UPDATE: This was fixed later in Harbour, and only applies to Xailer 2.7. Newer versions are free of this lack.
You may search in your project for expressions that contain the minus sign (-) inside brackets with this regular expression: \[[^\]]*-[^\[]*\].

With this, you will get all the possible conflicting cases. Surely some more cases will arrive that will not be incorrect, but it will help on doing the job.

At the C level

Inside Xailer

UPDATE: This only applies to Xailer 2.7. Since Xailer 3.0 it's no longer needed, and any Harbour's nightly-build may be used for Xailer. However, Xailer will only support our official Harbour's distro which is available from the Xailer's download area.