Hi All,

 it become more and more difficult for 3-rd party products developers
 to fight with differences between Harbour and xHarbour and between
 versions of the same compiler.

 Just a couple of examples.
 
 1) At() - hb_At() issue in Harbour. As a result now we have At() in
 xHarbour and in official Harbour distribution, which accept 4
 parameters, At() in new Harbour code, which accepts only 2 and
 hb_At() in new Harbour, accepting 4 parameters, which is absent in
 xHarbour and in older Harbour.
 The only decision I've found to get a code, working with ALL
 versions, is to duplicate hb_At() with a new name in my code ( HwGUI,
 Leto db server ).

 2) Recently the base workarea structure was changed in xHarbour. You
 know that every RDD have it's own workarea structure with first
 fields from a basic and some other, specific for this RDD, after the
 basic, and this structure is kept in a new header file.
 Now, if I want to keep the Leto RDD working for both Harbour and
 xHarbour, it's latest and previous versions, I need to provide two
 header files and leave a note for users of latest xharbour to rename
 xrddleto.h to rddleto.h before compiling the RDD.

 I understand and agree that such kind of changes is unavoidable and
 suggest the following:

 1) Introduce a [x]Harbour internal version number, at least, at C
 level for to be possible to use constructions like
 
 #if HARBOUR_VERSION >= 188

 and increment this number after every change, which may require
 changes in 3-rd party code ( not 3-rd party only, end applications,
 too ).

 2) Try to do such changes together with other changes of this type
 for to have too much version numbers.

 3) Create a special log in [x]Harbour repository for such changes -
 for people could know what they need to correct and don't spend hours
 looking the root of a problem.

 4) It would be nice to introduce such version number and appropriate
 pp possibilities on Harbour level, too.

 I ask xHarbour developers, who read this list, to discuss the
 possibility to introduce such a C level version number - for now, at
 least, in hbapirdd.h, something like #define WORKAREA_VERSION NNN, to
 be possible for 3-rd party RDD creators to write in new RDD structure
 definition:

 #ifdef __XHARBOUR__
 #if WORKAREA_VERSION >= NNN
    USHORT uiFieldHidden;         /* Total number of fields hidden */
 #endif
 #endif

 It's not my only problem, the same is for other RDD's - Mediator, for
 example.
 

Regards,
 Alexander

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to