Two Harbour versions:
I have got some more info about Przemyslaw Czerpak (Harbour 3.2) and Viktor Szakats (Harbour 3.4) Harbour versions and both is quite the same. All keeping Clipper 100% compatible but 3.4 has more than 2000 commits more and in HB_LEGACY_LEVEL5, obsolete functions must replaced at our source codes, in case. But this is normal thing.
What is HB_LEGACY_LEVEL ?
Klas Engwall wrote:There are two HB_LEGACY_LEVEL[n] macros #defined in include\hbsetup.ch,
HB_LEGACY_LEVEL4 and HB_LEGACY_LEVEL5
Any code guarded with one of those macros will be compiled, code guarded with lower HB_LEGACY_LEVEL[n] macros will be skipped when Harbour itself is built. Those portions of the Harbour source code can now be removed, if they still exist, since they make no difference in current Harbour builds. When, in the future, the HB_LEGACY_LEVEL4 macro is removed from
the header file, sections of code marked with that macro will then be ignored while building Harbour.
So this is a way to say that "this code will exist for a while but will be removed after the next stable release" or "... after the second stable release from now", etc. New HB_LEGACY_LEVEL6, HB_LEGACY_LEVEL7 etc macros will set the date for deprecating other code sections in the
There is no magic in it, just code that depends on that a certain macro is #defined, just like anything else guarded with an #ifdef