Harbour

Version: 
3.0.0
Release date: 
Friday, 30 March, 2007

License:

Interface:

Authors/Port authors:

Harbour is a 100% clipper compatible xbase language compiler. Another valid alternative for this compiler is xHarbour.

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. See below for download link(s).

You can install the prerequisites with rpm running the following string in a command line:

yum install libc libcx libgcc1 libssp libstdc++6 libstdc++ libsupc++6 libsupc++ libgcc-fwd gcc gcc-stack-protector gcc-stdc++-shared-library gcc-supc++-shared-library gcc-wlink gcc-wrc

Following ones are the download links for manual installation:

Harbour v. 3.0.0 (GCC 4.x.x, 20/7/2011)
 sourceforge.net/projects/harbour-project/files/binaries-os2/3.0.0/harbour-3.0.0.bin-os2.gcc452.zip/download
Harbour v. 3.0.0 (GCC 3.x.x, 20/7/2011)
 sourceforge.net/projects/harbour-project/files/binaries-os2/3.0.0/harbour-3.0.0.bin-os2.gcc335aout.zip/download
Harbour v. 3.0.0 (Open Watcom, 20/7/2011)
 sourceforge.net/projects/harbour-project/files/binaries-os2/3.0.0/harbour-3.0.0.bin-os2.watcom.zip/download
Harbour v. 2.0.0 (GCC 3.x.x, 26/12/2009) Readme/What's new
Version 2.0.0 (2009-12-??) Note ============================= Too many to list, it's yet to be collected and sorted in digestible form. [ Incomplete, unordered. This section only contains update between 2008-12-19 19:46 UTC+0100 and 2009-03-11 08:51 UTC+0100. 2008-08/09 - 2008-12-19 and 2009-03-11 - 2009-12-22 are missing. ] General ============================= - Build configuration changes: - PRG_USR -> HB_USER_PRGFLAGS - C_USR -> HB_USER_CFLAGS - L_USR -> HB_USER_LDFLAGS - A_USR -> HB_USER_AFLAGS - MK_USR -> HB_USER_MAKEFLAGS - HB_ARCHITECTURE -> HB_PLATFORM - HB_PLATFORM=w32 -> HB_PLATFORM=win - CCPATH -> HB_CCPREFIX - CCPREFIX -> HB_CCPATH - GNU-make system revised to give optimal support -j<n> multi-threaded parallel builds, which can dramatically increase build speed in multi-core/multi-CPU systems. - HB_WINCE -> HB_OS_WIN_CE - HB_OS_WIN_32_USED -> HB_OS_WIN_USED - HB_OS_WIN_32 -> HB_OS_WIN - Cleaned references of '32' in context of Windows and Windows API. - New macro names introduced: - SUCCESS -> HB_SUCCESS - FAILURE -> HB_FAILURE - ERRCODE -> HB_ERRCODE (old ones still work for compatibility, but please switch your code to use the new ones) - Fixed dynamic library creation on Solaris OSes. - hbrun will now open .dbf files when passed on the command line. - Added web-server written in Harbour: uHTTPD - POCC WinCE builds are now supported. - Open Watcom 1.8 (RC3) compiler is now supported. - Removed HB_LEGACY_LEVEL support. - #define HB_FM_WIN32_ALLOC renamed to HB_FM_WIN_ALLOC. - Protected incompatible changes with HB_LEGACY_LEVEL2. (HB_SUCCESS, HB_FAILURE, HB_ERRCODE, HB_WINCE, HB_OS_WIN_32*, __RDDGETTEMPALIAS(), __HRB*(), some class functions, Harbour -go option) These features are still available, and will be removed in next major version (Harbour 1.2). To test your code for compatibility, you can turn it off manually by #defining HB_LEGACY_OFF. (HB_USER_CFLAGS=-DHB_LEGACY_OFF) - New Harbour Project homepage, thanks for Vailton Renato. http://www.harbour-project.org/ - GNU Make system now supports parallel builds. (needs GNU Make newer than 3.79.1) - GNU Make system allows to install in Harbour source tree on all platforms. - GNU Make system for bcc and msvc options synced with non-GNU build methods. - GNU Make system no longer needs -r parameter. - GNU Make system will now generate hbfm and hbfmmt lib for all compilers. Added few more similar unification cleanups. - Implemented .dll generation for msvc, msvc64, bcc and watcom when using GNU Make system. - Added support for Open Watcom 1.8 (it's recommended over 1.7). - Added support for import lib generation when using GNU Make with msvc and vcc. Enable it with 'set HB_DIR_IMPLIB=yes' plus set HB_DIR_* envvars. - -mtune=pentiumpro optimization is now default for mingw/cygwin. - Cleaned new mingw 4.3.3 warnings. - Certain features will require Windows NT or upper when building Harbour on Windows, so this is now a requirement for a proper build. - hb-mkslib.sh renamed to hb-mkdyn.sh. Old name stil works, but it's now deprecated. - x64 msvc compiler got a distinct HB_COMPILER value: msvc64. - msvcce compiler made compatible with older MSVC/WinCE versions. - Added support for Intel(R) C++ compiler (icc) on Linux and Windows. - Added new INSTALL document giving a quick describing of the build process on all supported platforms and compilers. - Several steps to make the build process simpler and requiring the less amount of preparation. - Fixed missing watcom support for HB_USER_LDFLAGS. - Added support for MSVC IA64 mode. (untested) - Added support for HB_CONTRIBLIBS=no to disable building of all contribs. - Added ability to generate Windows installer and .zip distribution file. - Fully transitioned to GNU Make system for all compilers. Now msvc, msvcce and bcc builds need GNU Make, see INSTALL for more information. "non-GNU" make systems got deleted from the source tree. - Cygwin renamed from gcc to cygwin. (NOTE: Cygwin doesn't work since some versions, and support may be removed in the future.) - Fixed #pragma -k? options to be case-insensitive. - Explicitly bind system libraries with harbour shared library. RPM/DEB packages should automatically detect these dependencies. - Warning cleanup (minors) for Intel compiler. - Pelles C workarounds for compiler bugs. - Added support for extended definition files in Harbour compiler switches: -u+<file> - Fixed memory leak when repeated -u[<file>] options are used. Core ============================= - Added MT (Multi thread) support. - Added complete i18n support with API and tool to compile .po files (hbi18n). - Added hb_fsCreateTempEx(), hb_fileCreateTempEx() C level APIs. - Fixed to not use C RTL CP dependent character functions in Harbour code. (islower(), toupper(), etc) Added new macros instead. - __NATISNEGATIVE() and __NATISAFFIRM() are now using CP sensitive case conversion. - Added hb_charIsUpper()/hb_charIsLower() APIs. - CURDRIVE() and DISKNAME() fixed for systems that don't support drive letters. - Xbase++ compatible TBROWSE()/TBCOLUMN()/GET() related methods moved to derived classes xpp_TBrowse()/xpp_TBColumn()/xpp_Get(). - Fixed potential GPF in HB_RASCAN(). - Debugger improvements and fixes. - Most Harbour level code prepared for MT. - Fixed few potential GPFs in RDDNTX, RDDCDX code. - Added own hb_snprintf() implementation. - Fixed HB_VERSION( HB_VERSION_BUILD_DATE ) - Added hbuddall library holding all core supplied user RDDs. - Fixed to successfully build all user RDD examples. - Fixed dbCreate() behaviour in arrayrdd user RDD. - Added new LOGRDD user RDD. - Added DBFNSX RDD. - Fixed FWRITE() potential GPF and security hole. - Added __FILE__ support for .prg code. - Added: HB_MILLISECONDS() HB_FTEMPCREATEEX( @<cName>, <cDir>, <cPrefix>, <cExt> ) -> <nHandle> HB_STRDECODESCAPE( <cEscSeqStr> ) -> <cStr> HB_STRCDECODE( <cStr> [, @<lCont> ] ) -> <cResult> | NIL HB_STRXOR( <cStr1>, <cStr2> | <nNum> ) -> <cResult> HB_PROGNAME() -> <cProgramNameWithPath> HB_DISPOUTATBOX() similar to HB_DISPOUTAT() but for drawing chars. HB_FGETATTR( <cFileName>, @<nAttr> ) -> <lSuccess> HB_FSETATTR( <cFileName>, <nAttr> ) -> <lSuccess> HB_FSETDATETIME( <cFileName>, [<dDate>], [<cTime HH:MM:SS>], [<nMilliSec>] ) -> <lSuccess> HB_FGETDATETIME() HB_WILDMATCHI() like HB_WILDMATCH() but case-insentitive. HB_CDPSELECT() same as HB_SETCODEPAGE() (please upgrade to new function name). HB_CDPUNIID( <cHarbourCP> ) -> <cCPName> HB_GTINFO( HB_GTI_CARGO[, <xValue ] ) -> <xPrevValue> HB_DIRBASE() -> <cBaseDirectory> HB_DBCREATETEMP()/DBCREATETEMP() to create temporary tables. HB_MMIDDLEDOWN/MMIDDLEDOWN() new Harbour function. DBINFO( DBI_ISTEMPORARY ) HB_VERSION( HB_VERSION_BUILD_PLAT ) HB_VERSION( HB_VERSION_BUILD_COMP ) HB_STRFORMAT() C-like string formatting function (also as C level API named hb_StrFormat()) HB_SETENV( <cEnvName>, [<cNewVal>] [, <lOsCP>] ) -> <lOK> (also as C level API named hb_setenv()) - Fixed UNSELECTED color updating in SetColor(). - GTWVT, GTWIN HB_GTI_CODEPAGE support. - GTWVT now supports drawing chars even if the selected codepage doesn't support them. - GTWVT HB_GTI_BOXCP support. - GTWVT disabled K_MM*DOWN non-Clipper (and other GT) compatible mouse events. - Fixed TBROWSE(), TPOPUP() to display drawing chars properly. - Fixed DISKSPACE() and HB_DISKSPACE() to return proper values on Darwin. - Fixed DIRECTORY() when called with "V" (label) parameter (on Windows). - New HB_SIZEOFARRAY() macro. - Added C APIs: hb_charIsDigit(), hb_charIsAlpha(), hb_charIsLower(), hb_charIsUpper() - Added support to specify OS codepage: Set( _SET_OSCODEPAGE[, <cCPID> ] ) -> <cOldCPID> C level: hb_setGetOSCODEPAGE() Conversion is done automatically in existing functions. - Added hb_osDecode(), hb_osEncode() C APIs. - HB_GETENV() extended with 3rd parameter to control OS codepage conversion (on by default). - Added CPU dump support for AMD64/x64. - Added module listing on GPF for x86 and x64. - GTXWC potential GPF fixed. - Added process handling: HB_PROCESSOPEN(), HB_PROCESSVALUE(), HB_PROCESSCLOSE() - Added HB_GTI_BOXCP to control box drawing CP for GTs. - Using Heap instead of Local memory when HB_FM_WIN32_ALLOC is set. - Added __objHasMsgAssigned( object, "msgName" ) - File find API fixes for OS/2. - DBOI_BAGNAME made compatible for RDDCDX, RDDNSX. - Added Intel C compiler and Wine detection. - Codepage fixes and cleanups (BGMIK). - Fixed cursor handling in TEDITOR/MemoEdit(). - Now GTXWC generates HB_K_RESIZE on resize. - GTWIN fixed HB_GTI_KBDSHIFTS handling. - GTWVT added 'layered window' support (always enabled, except when in Terminal mode). - GTWVT fixed not to generate RTE if class is already been registered. - GTXWC added support for HB_GTI_PALETTE, HB_GTI_FONTSEL, HB_GTI_CLOSABLE, HB_GTI_RESIZABLE. - GTTRM added support for HB_GTI_PALETTE. - New compiler expression optimizations, and some fixes for rare cases. - Some compiler optimizations are now enabled using new -ko switch. - Added array preallocation on AADD(). - Optimization to string reallocation. - Added detection of unused variable assigments. Code cleaned in all Harbour for such warnings. - Fixed possible problem with _SET_PRINTFILE, _SET_DEFAULT, _SET_EXTRAFILE. - __HRB*() functions marked as compatibility, please update your code to use HB_HRB*(). - __RDDGETTEMPALIAS() marked as compatibility, please update your code to use HB_RDDGETTEMPALIAS(). - Added hb_spFileExists() a more efficient version of hb_spFile(). Modified Harbour code to use the new API. - HSX index MT support. - Fixed potentially uninitialized internal HB_GT_INFO structure. - Using more efficient hb_fsFileExists() instead of hb_fsFile() in core. - Added char * hb_cmdargARGVN( int argc ). - HB_PROCNAME() support for symbol evaluation. - HB_SYMBOL_UNUSED() moved to std.ch. NOTE: This macro is no longer present in common.ch so if you're overriding std.ch, make sure to add this macro to your header file. - BIN2W(), BIN2I(), BIN2L(), I2BIN(), L2BIN(), BIN2U(), W2BIN(), U2BIN() functions rewritten in a more efficient way. Previous pure GPL license changed to standard Harbour license (including exception). - Fixed Ukrainian localization files. - Using local implementation of hb_snprintf() for all C level code. - Fixed localized date format for RU, UA, IT, BE, BG, NL, SL. - Added __FILE__ and __LINE__ predefined dynamic PP macros. - Added Windows 7 and Server 2008 R2 version detection. - Replaced old hbmk.bat, hbmk bash script and Harbour Make tool with portable make tool written in Harbour: hbmk. This tool can create a Harbour executable on any platforms using minimal effort. It autodetects OS and compiler environment. Support script and parameter files, can act as a linker, C compiler, Harbour compiler, static and dynamic library creator, resource compiler (on Windows). Core features are completed on all major platforms. Some non-mainstream features and platforms may be completed later. All existing features of hbmk bash script (for gcc) and of hbmk.bat are supported in this new tool, and much more. Replaced Win/DOS specific .bat files with portable .hbp and .hbm files. - Added all missing non-multibyte codepages. - LISTBOX() doesn't modify _SET_EXACT settings anymore in :Find*() methods. - HVM pcode evaluation speed improvement. - Fixed _SET_EXACT handling in core. - hb_gtInfo( HB_GTI_PALLETE ) now uses zero based color indexes in core (GTWVT, GTXWC). This creates a small incompatibility with older version. Also notice that GTWVG still uses 1-based indexes for compatibility. - Fixed very old bug showing wrong default status for -n option on Harbour help screen. - Added support for reading FoxPro .mem files - Clipper compatibility. - Fixed very old bug which disabled writing to .mem files strings longer then 32Kb. - hbrun now accepts .dbf file as paramater, which it will open after startup. - hbrun now accepts -v option which makes it display its own version after startup. - Borland C++ compiler is now called 'bcc' instead of 'bcc32'. Please update your system. - Removed almost all DOS/WIN specific build/make batch files. - Fixed __M[V]CLEAR()/ __M[V]RESTORE() to be exactly Clipper compatible and do not release PUBLIC GetList value. - bcc compiler in GNU Make now supports older Windows NT with limited command line length. - Removed support for following compilers: dos/bcc16, dos/rsx32, win/dmc, win/rsxnt, os2/icc, win/icc (IBM). - Fixed static variables indexes in the generated PCODE when static variables are declared inside extended codeblocks - in some cases wrong PCODE was generated. - Fixed initialization PCODE for thread static variables declared inside extended codeblocks. - Fixed modulename generated for debugger to always contain function name part for extended codeblock declared as file wide static variables. In such case "(_INITSTATICS)" is used as function name. Without it debugger does not register entering such codeblocks and GPFs. - Added support for automatic adding 1-st function with the same name as compiled .prg file if some code statements are used before 1-st function/procedure declared explicitly in .prg file. Such mode can be enabled by -n2 new harbour compiler switch. This switch is used by default by new hbmk tool. - speedtst updated to work with CA-Cl*pper. - Added protection against pushing new private variable on HVM stack if such private variable is already created by the same function. Clipper also has such protection. - Respect HB_START_PROCEDURE in all builds if such public function/procedure exists. - Disabled HB_MSC_STARTUP in C++ MSVC builds. - Forbid some usage of __clsModMsg() and unblock some others It should make some xHarbour users using OVERRIDE METHOD happy but please remember it's still undocumented and unsupported functionality - use for your own risk. - Fixed typo in HB_INETDATAREADY() - the second parameter (timeout) was ignored. - Changed the NOT operator precedence - it should be bigger then logical .and./.or. operators in #if expressions. - Fixed HB_REGEXMATCH(). Now the HAS/LIKE mode can be controlled by 5th logical parameter (was 3rd), so 3rd parameter is solely controlling case-sensitivity as indicated in the documentation. Users are recommended to use HB_REGEXHAS() and HB_REGEXLIKE() functions as unambiguous alternatives, which work equally well on all Harbour versions. HB_REGEXMATCH() is now deprecated, but kept for compatibility. - ACHOICE() fixed to redisplay itself when exiting with <Esc> or equivalent. Contrib ============================= - hbblat new Blat interface class for Windows (Contributed by Francesco Saverio Giudice). - hbmzip fixed GPF in HB_ZIPDELETEFILE() when file has comment. - hbmzip fixed handling attributes in HB_ZIPFILECREATE(). - hbmzip fixed timestamps stored in .zip files. - hbmzip added HB_ZIPSTOREFILEHANDLE(), HB_UNZIPEXTRACTCURRENTFILETOHANDLE() functions. - hbwin WIN_REGREAD()/GETREGISTRY() got new parameter to supply a default value when the entry isn't found. - hbtip FTP handling fixed some accidental typos. - hbtip new MIME types. - hbtip fixes and optimization to HB_BASE64(). - rddads now autodetects version 9.10. - hbct XTOC(), FTOC() and CTOF() fixed to be properly multiplatform. - hbct unbuffered drawing speed improvement in windowing code. - hbct DIRNAME() fixed. - hbct other fixes. - hbct FILESEEK(), FILEATTR(), FILESIZE(), FILEDATE() now MT compatible. - hbct added support for thread local current window pointer in CT Windows. - hbwin made steps towards creating a unified Windows API wrapper layer. - Added hbcrypt, hbssl and rddsql (with mysql, pgsql, fbsql plugins) to contribs. - hbct windowing extended with new low level API, better shadow handling. - gtwvg lots of improvements. - gtwvg Xbase++ compatible UI objects. - hbw32 library renamed to hbwin. - hbwin added WIN_ABORTDOC(), WIN_RUNDETACHED(), WIN_SHELLEXECUTE(), WIN_LOADRESOURCE(). - dbu patch now adds SET DATE ANSI and SET CENTURY ON. - hbwin WIN_MULDIV(), WIN_RECTANGLE(), WIN_SETBKMODE() extended to accept handles passed using alternate methods. - hbwin function names changed as below: - W32_REGPATHSPLIT() -> WIN_REGPATHSPLIT() - W32_REGREAD() -> WIN_REGREAD() - W32_REGWRITE() -> WIN_REGWRITE() - WIN32_REGCREATEKEYEX() -> WIN_REGCREATEKEYEX() - WIN32_REGOPENKEYEX() -> WIN_REGOPENKEYEX() - WIN32_REGQUERYVALUEEX() -> WIN_REGQUERYVALUEEX() - WIN32_REGSETVALUEEX() -> WIN_REGSETVALUEEX() - WIN32_REGCLOSEKEY() -> WIN_REGCLOSEKEY() - WIN32_ARC() -> WIN_ARC() - WIN32_BITMAPSOK() -> WIN_BITMAPSOK() - WIN32_CREATEDC() -> WIN_CREATEDC() - WIN32_CREATEFONT() -> WIN_CREATEFONT() - WIN32_DELETEDC() -> WIN_DELETEDC() - WIN32_DRAWBITMAP() -> WIN_DRAWBITMAP() - WIN32_ELLIPSE() -> WIN_ELLIPSE() - WIN32_ENDDOC() -> WIN_ENDDOC() - WIN32_ENDPAGE() -> WIN_ENDPAGE() - WIN32_ENUMFONTS() -> WIN_ENUMFONTS() - WIN32_FILLRECT() -> WIN_FILLRECT() - WIN32_GETCHARSIZE() -> WIN_GETCHARSIZE() - WIN32_GETDEVICECAPS() -> WIN_GETDEVICECAPS() - WIN32_GETEXEFILENAME() -> WIN_GETEXEFILENAME() - WIN32_GETPRINTERFONTNAME() -> WIN_GETPRINTERFONTNAME() - WIN32_GETTEXTSIZE() -> WIN_GETTEXTSIZE() - WIN32_LINETO() -> WIN_LINETO() - WIN32_LOADBITMAPFILE() -> WIN_LOADBITMAPFILE() - WIN32_MULDIV() -> WIN_MULDIV() - WIN32_OS_ISWIN9X() -> WIN_OS_ISWIN9X() - WIN32_RECTANGLE() -> WIN_RECTANGLE() - WIN32_SETBKMODE() -> WIN_SETBKMODE() - WIN32_SETCOLOR() -> WIN_SETCOLOR() - WIN32_SETDOCUMENTPROPERTIES() -> WIN_SETDOCUMENTPROPERTIES() - WIN32_SETMAPMODE() -> WIN_SETMAPMODE() - WIN32_SETPEN() -> WIN_SETPEN() - WIN32_STARTDOC() -> WIN_STARTDOC() - WIN32_STARTPAGE() -> WIN_STARTPAGE() - WIN32_TEXTOUT() -> WIN_TEXTOUT() - WIN32PRN class -> WIN_PRN class - WIN32BMP class -> WIN_BMP class - hbct GPF and wrong RTE messages fixed in: CHARADD(), CHARSUB(), CHARAND(), CHAROR(), CHARXOR() - hbct string optimizations in thrown RTEs. - hbziparc fixed <acFiles> behavior if the parameter is not passed. - hbhpdf added HPDF_VERSION_TEXT() to replace former macro with the same name. - hbhpdf fixed HPDF_SETINFODATEATTR() function. - Added experimental terminal server written in Harbour. Find it in /examples. - hbgt now properly checks for package version and includes feature accordingly. - hbwin added WAPI_GETCOMMANDLINE(), WIN_GETCOMMANDLINEPARAM(), WAPI_GETLASTERROR(), WAPI_SETLASTERROR(), WAPI_SETERRORMODE(). - hbwhat removed from contrib list and moved to examples instead. - xhb OVERRIDE / EXTEND CLASS emulation in xhbcls.ch header. (this feature is there to help xhb compatibility, but can break inheritance scheme and internal class definitions in both compilers) - xhb added DBF2TXT() with critical fixes. - xhb added HB_REGEXREPLACE(). - hbwin WINPORTWRITE() GPF when wrong parameter type is passed. - Added Darwin/MacPorts support for following contribs: gtalleg, hbmysql, hbpgsql, sddmy, sddpg, hbfimage. - hbtpathy now builds on Darwin. - xhb disabled dangerous bitop compatibility macros in hbcompat.ch. Enable them with #define XHB_BITOP. Or even better to change code to use HB_BIT*() functions natively. Known build issues ============================= - Windows 64-bit builds may generate a large amount of type conversion warnings. This is currently normal and will be addressed in a future version. - Contrib hbfimage won't currently compile on Linux/Darwin systems. This will be addressed in a future version. - Contrib hbsqlit3 will not embed foreign sqlite3 library code for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems. For these compilers you will have to supply sqlite3 library yourself. For other compilers, some warnings are expected and normal in this non-Harbour code. - Using Pelles C 5.00.1 in 64-bit mode, HB_INET*() functions won't work. - Using Pelles C 6.00.6 in 64-bit mode, there will be missing symbols at link time due to bugs in Pelles C. - gtalleg contrib may not compile on all platforms/compilers. - hbssl won't work with watcom on win platform due to OpenSSL header compatibility problems.
 sourceforge.net/projects/harbour-project/files/binaries-os2/2.0.0/harbour-2.0.0.bin-os2.gcc335aout.zip/download
Harbour v. 2.0.0 (GCC 4.x.x, 26/12/2009) Readme/What's new
Version 2.0.0 (2009-12-??) Note ============================= Too many to list, it's yet to be collected and sorted in digestible form. [ Incomplete, unordered. This section only contains update between 2008-12-19 19:46 UTC+0100 and 2009-03-11 08:51 UTC+0100. 2008-08/09 - 2008-12-19 and 2009-03-11 - 2009-12-22 are missing. ] General ============================= - Build configuration changes: - PRG_USR -> HB_USER_PRGFLAGS - C_USR -> HB_USER_CFLAGS - L_USR -> HB_USER_LDFLAGS - A_USR -> HB_USER_AFLAGS - MK_USR -> HB_USER_MAKEFLAGS - HB_ARCHITECTURE -> HB_PLATFORM - HB_PLATFORM=w32 -> HB_PLATFORM=win - CCPATH -> HB_CCPREFIX - CCPREFIX -> HB_CCPATH - GNU-make system revised to give optimal support -j<n> multi-threaded parallel builds, which can dramatically increase build speed in multi-core/multi-CPU systems. - HB_WINCE -> HB_OS_WIN_CE - HB_OS_WIN_32_USED -> HB_OS_WIN_USED - HB_OS_WIN_32 -> HB_OS_WIN - Cleaned references of '32' in context of Windows and Windows API. - New macro names introduced: - SUCCESS -> HB_SUCCESS - FAILURE -> HB_FAILURE - ERRCODE -> HB_ERRCODE (old ones still work for compatibility, but please switch your code to use the new ones) - Fixed dynamic library creation on Solaris OSes. - hbrun will now open .dbf files when passed on the command line. - Added web-server written in Harbour: uHTTPD - POCC WinCE builds are now supported. - Open Watcom 1.8 (RC3) compiler is now supported. - Removed HB_LEGACY_LEVEL support. - #define HB_FM_WIN32_ALLOC renamed to HB_FM_WIN_ALLOC. - Protected incompatible changes with HB_LEGACY_LEVEL2. (HB_SUCCESS, HB_FAILURE, HB_ERRCODE, HB_WINCE, HB_OS_WIN_32*, __RDDGETTEMPALIAS(), __HRB*(), some class functions, Harbour -go option) These features are still available, and will be removed in next major version (Harbour 1.2). To test your code for compatibility, you can turn it off manually by #defining HB_LEGACY_OFF. (HB_USER_CFLAGS=-DHB_LEGACY_OFF) - New Harbour Project homepage, thanks for Vailton Renato. http://www.harbour-project.org/ - GNU Make system now supports parallel builds. (needs GNU Make newer than 3.79.1) - GNU Make system allows to install in Harbour source tree on all platforms. - GNU Make system for bcc and msvc options synced with non-GNU build methods. - GNU Make system no longer needs -r parameter. - GNU Make system will now generate hbfm and hbfmmt lib for all compilers. Added few more similar unification cleanups. - Implemented .dll generation for msvc, msvc64, bcc and watcom when using GNU Make system. - Added support for Open Watcom 1.8 (it's recommended over 1.7). - Added support for import lib generation when using GNU Make with msvc and vcc. Enable it with 'set HB_DIR_IMPLIB=yes' plus set HB_DIR_* envvars. - -mtune=pentiumpro optimization is now default for mingw/cygwin. - Cleaned new mingw 4.3.3 warnings. - Certain features will require Windows NT or upper when building Harbour on Windows, so this is now a requirement for a proper build. - hb-mkslib.sh renamed to hb-mkdyn.sh. Old name stil works, but it's now deprecated. - x64 msvc compiler got a distinct HB_COMPILER value: msvc64. - msvcce compiler made compatible with older MSVC/WinCE versions. - Added support for Intel(R) C++ compiler (icc) on Linux and Windows. - Added new INSTALL document giving a quick describing of the build process on all supported platforms and compilers. - Several steps to make the build process simpler and requiring the less amount of preparation. - Fixed missing watcom support for HB_USER_LDFLAGS. - Added support for MSVC IA64 mode. (untested) - Added support for HB_CONTRIBLIBS=no to disable building of all contribs. - Added ability to generate Windows installer and .zip distribution file. - Fully transitioned to GNU Make system for all compilers. Now msvc, msvcce and bcc builds need GNU Make, see INSTALL for more information. "non-GNU" make systems got deleted from the source tree. - Cygwin renamed from gcc to cygwin. (NOTE: Cygwin doesn't work since some versions, and support may be removed in the future.) - Fixed #pragma -k? options to be case-insensitive. - Explicitly bind system libraries with harbour shared library. RPM/DEB packages should automatically detect these dependencies. - Warning cleanup (minors) for Intel compiler. - Pelles C workarounds for compiler bugs. - Added support for extended definition files in Harbour compiler switches: -u+<file> - Fixed memory leak when repeated -u[<file>] options are used. Core ============================= - Added MT (Multi thread) support. - Added complete i18n support with API and tool to compile .po files (hbi18n). - Added hb_fsCreateTempEx(), hb_fileCreateTempEx() C level APIs. - Fixed to not use C RTL CP dependent character functions in Harbour code. (islower(), toupper(), etc) Added new macros instead. - __NATISNEGATIVE() and __NATISAFFIRM() are now using CP sensitive case conversion. - Added hb_charIsUpper()/hb_charIsLower() APIs. - CURDRIVE() and DISKNAME() fixed for systems that don't support drive letters. - Xbase++ compatible TBROWSE()/TBCOLUMN()/GET() related methods moved to derived classes xpp_TBrowse()/xpp_TBColumn()/xpp_Get(). - Fixed potential GPF in HB_RASCAN(). - Debugger improvements and fixes. - Most Harbour level code prepared for MT. - Fixed few potential GPFs in RDDNTX, RDDCDX code. - Added own hb_snprintf() implementation. - Fixed HB_VERSION( HB_VERSION_BUILD_DATE ) - Added hbuddall library holding all core supplied user RDDs. - Fixed to successfully build all user RDD examples. - Fixed dbCreate() behaviour in arrayrdd user RDD. - Added new LOGRDD user RDD. - Added DBFNSX RDD. - Fixed FWRITE() potential GPF and security hole. - Added __FILE__ support for .prg code. - Added: HB_MILLISECONDS() HB_FTEMPCREATEEX( @<cName>, <cDir>, <cPrefix>, <cExt> ) -> <nHandle> HB_STRDECODESCAPE( <cEscSeqStr> ) -> <cStr> HB_STRCDECODE( <cStr> [, @<lCont> ] ) -> <cResult> | NIL HB_STRXOR( <cStr1>, <cStr2> | <nNum> ) -> <cResult> HB_PROGNAME() -> <cProgramNameWithPath> HB_DISPOUTATBOX() similar to HB_DISPOUTAT() but for drawing chars. HB_FGETATTR( <cFileName>, @<nAttr> ) -> <lSuccess> HB_FSETATTR( <cFileName>, <nAttr> ) -> <lSuccess> HB_FSETDATETIME( <cFileName>, [<dDate>], [<cTime HH:MM:SS>], [<nMilliSec>] ) -> <lSuccess> HB_FGETDATETIME() HB_WILDMATCHI() like HB_WILDMATCH() but case-insentitive. HB_CDPSELECT() same as HB_SETCODEPAGE() (please upgrade to new function name). HB_CDPUNIID( <cHarbourCP> ) -> <cCPName> HB_GTINFO( HB_GTI_CARGO[, <xValue ] ) -> <xPrevValue> HB_DIRBASE() -> <cBaseDirectory> HB_DBCREATETEMP()/DBCREATETEMP() to create temporary tables. HB_MMIDDLEDOWN/MMIDDLEDOWN() new Harbour function. DBINFO( DBI_ISTEMPORARY ) HB_VERSION( HB_VERSION_BUILD_PLAT ) HB_VERSION( HB_VERSION_BUILD_COMP ) HB_STRFORMAT() C-like string formatting function (also as C level API named hb_StrFormat()) HB_SETENV( <cEnvName>, [<cNewVal>] [, <lOsCP>] ) -> <lOK> (also as C level API named hb_setenv()) - Fixed UNSELECTED color updating in SetColor(). - GTWVT, GTWIN HB_GTI_CODEPAGE support. - GTWVT now supports drawing chars even if the selected codepage doesn't support them. - GTWVT HB_GTI_BOXCP support. - GTWVT disabled K_MM*DOWN non-Clipper (and other GT) compatible mouse events. - Fixed TBROWSE(), TPOPUP() to display drawing chars properly. - Fixed DISKSPACE() and HB_DISKSPACE() to return proper values on Darwin. - Fixed DIRECTORY() when called with "V" (label) parameter (on Windows). - New HB_SIZEOFARRAY() macro. - Added C APIs: hb_charIsDigit(), hb_charIsAlpha(), hb_charIsLower(), hb_charIsUpper() - Added support to specify OS codepage: Set( _SET_OSCODEPAGE[, <cCPID> ] ) -> <cOldCPID> C level: hb_setGetOSCODEPAGE() Conversion is done automatically in existing functions. - Added hb_osDecode(), hb_osEncode() C APIs. - HB_GETENV() extended with 3rd parameter to control OS codepage conversion (on by default). - Added CPU dump support for AMD64/x64. - Added module listing on GPF for x86 and x64. - GTXWC potential GPF fixed. - Added process handling: HB_PROCESSOPEN(), HB_PROCESSVALUE(), HB_PROCESSCLOSE() - Added HB_GTI_BOXCP to control box drawing CP for GTs. - Using Heap instead of Local memory when HB_FM_WIN32_ALLOC is set. - Added __objHasMsgAssigned( object, "msgName" ) - File find API fixes for OS/2. - DBOI_BAGNAME made compatible for RDDCDX, RDDNSX. - Added Intel C compiler and Wine detection. - Codepage fixes and cleanups (BGMIK). - Fixed cursor handling in TEDITOR/MemoEdit(). - Now GTXWC generates HB_K_RESIZE on resize. - GTWIN fixed HB_GTI_KBDSHIFTS handling. - GTWVT added 'layered window' support (always enabled, except when in Terminal mode). - GTWVT fixed not to generate RTE if class is already been registered. - GTXWC added support for HB_GTI_PALETTE, HB_GTI_FONTSEL, HB_GTI_CLOSABLE, HB_GTI_RESIZABLE. - GTTRM added support for HB_GTI_PALETTE. - New compiler expression optimizations, and some fixes for rare cases. - Some compiler optimizations are now enabled using new -ko switch. - Added array preallocation on AADD(). - Optimization to string reallocation. - Added detection of unused variable assigments. Code cleaned in all Harbour for such warnings. - Fixed possible problem with _SET_PRINTFILE, _SET_DEFAULT, _SET_EXTRAFILE. - __HRB*() functions marked as compatibility, please update your code to use HB_HRB*(). - __RDDGETTEMPALIAS() marked as compatibility, please update your code to use HB_RDDGETTEMPALIAS(). - Added hb_spFileExists() a more efficient version of hb_spFile(). Modified Harbour code to use the new API. - HSX index MT support. - Fixed potentially uninitialized internal HB_GT_INFO structure. - Using more efficient hb_fsFileExists() instead of hb_fsFile() in core. - Added char * hb_cmdargARGVN( int argc ). - HB_PROCNAME() support for symbol evaluation. - HB_SYMBOL_UNUSED() moved to std.ch. NOTE: This macro is no longer present in common.ch so if you're overriding std.ch, make sure to add this macro to your header file. - BIN2W(), BIN2I(), BIN2L(), I2BIN(), L2BIN(), BIN2U(), W2BIN(), U2BIN() functions rewritten in a more efficient way. Previous pure GPL license changed to standard Harbour license (including exception). - Fixed Ukrainian localization files. - Using local implementation of hb_snprintf() for all C level code. - Fixed localized date format for RU, UA, IT, BE, BG, NL, SL. - Added __FILE__ and __LINE__ predefined dynamic PP macros. - Added Windows 7 and Server 2008 R2 version detection. - Replaced old hbmk.bat, hbmk bash script and Harbour Make tool with portable make tool written in Harbour: hbmk. This tool can create a Harbour executable on any platforms using minimal effort. It autodetects OS and compiler environment. Support script and parameter files, can act as a linker, C compiler, Harbour compiler, static and dynamic library creator, resource compiler (on Windows). Core features are completed on all major platforms. Some non-mainstream features and platforms may be completed later. All existing features of hbmk bash script (for gcc) and of hbmk.bat are supported in this new tool, and much more. Replaced Win/DOS specific .bat files with portable .hbp and .hbm files. - Added all missing non-multibyte codepages. - LISTBOX() doesn't modify _SET_EXACT settings anymore in :Find*() methods. - HVM pcode evaluation speed improvement. - Fixed _SET_EXACT handling in core. - hb_gtInfo( HB_GTI_PALLETE ) now uses zero based color indexes in core (GTWVT, GTXWC). This creates a small incompatibility with older version. Also notice that GTWVG still uses 1-based indexes for compatibility. - Fixed very old bug showing wrong default status for -n option on Harbour help screen. - Added support for reading FoxPro .mem files - Clipper compatibility. - Fixed very old bug which disabled writing to .mem files strings longer then 32Kb. - hbrun now accepts .dbf file as paramater, which it will open after startup. - hbrun now accepts -v option which makes it display its own version after startup. - Borland C++ compiler is now called 'bcc' instead of 'bcc32'. Please update your system. - Removed almost all DOS/WIN specific build/make batch files. - Fixed __M[V]CLEAR()/ __M[V]RESTORE() to be exactly Clipper compatible and do not release PUBLIC GetList value. - bcc compiler in GNU Make now supports older Windows NT with limited command line length. - Removed support for following compilers: dos/bcc16, dos/rsx32, win/dmc, win/rsxnt, os2/icc, win/icc (IBM). - Fixed static variables indexes in the generated PCODE when static variables are declared inside extended codeblocks - in some cases wrong PCODE was generated. - Fixed initialization PCODE for thread static variables declared inside extended codeblocks. - Fixed modulename generated for debugger to always contain function name part for extended codeblock declared as file wide static variables. In such case "(_INITSTATICS)" is used as function name. Without it debugger does not register entering such codeblocks and GPFs. - Added support for automatic adding 1-st function with the same name as compiled .prg file if some code statements are used before 1-st function/procedure declared explicitly in .prg file. Such mode can be enabled by -n2 new harbour compiler switch. This switch is used by default by new hbmk tool. - speedtst updated to work with CA-Cl*pper. - Added protection against pushing new private variable on HVM stack if such private variable is already created by the same function. Clipper also has such protection. - Respect HB_START_PROCEDURE in all builds if such public function/procedure exists. - Disabled HB_MSC_STARTUP in C++ MSVC builds. - Forbid some usage of __clsModMsg() and unblock some others It should make some xHarbour users using OVERRIDE METHOD happy but please remember it's still undocumented and unsupported functionality - use for your own risk. - Fixed typo in HB_INETDATAREADY() - the second parameter (timeout) was ignored. - Changed the NOT operator precedence - it should be bigger then logical .and./.or. operators in #if expressions. - Fixed HB_REGEXMATCH(). Now the HAS/LIKE mode can be controlled by 5th logical parameter (was 3rd), so 3rd parameter is solely controlling case-sensitivity as indicated in the documentation. Users are recommended to use HB_REGEXHAS() and HB_REGEXLIKE() functions as unambiguous alternatives, which work equally well on all Harbour versions. HB_REGEXMATCH() is now deprecated, but kept for compatibility. - ACHOICE() fixed to redisplay itself when exiting with <Esc> or equivalent. Contrib ============================= - hbblat new Blat interface class for Windows (Contributed by Francesco Saverio Giudice). - hbmzip fixed GPF in HB_ZIPDELETEFILE() when file has comment. - hbmzip fixed handling attributes in HB_ZIPFILECREATE(). - hbmzip fixed timestamps stored in .zip files. - hbmzip added HB_ZIPSTOREFILEHANDLE(), HB_UNZIPEXTRACTCURRENTFILETOHANDLE() functions. - hbwin WIN_REGREAD()/GETREGISTRY() got new parameter to supply a default value when the entry isn't found. - hbtip FTP handling fixed some accidental typos. - hbtip new MIME types. - hbtip fixes and optimization to HB_BASE64(). - rddads now autodetects version 9.10. - hbct XTOC(), FTOC() and CTOF() fixed to be properly multiplatform. - hbct unbuffered drawing speed improvement in windowing code. - hbct DIRNAME() fixed. - hbct other fixes. - hbct FILESEEK(), FILEATTR(), FILESIZE(), FILEDATE() now MT compatible. - hbct added support for thread local current window pointer in CT Windows. - hbwin made steps towards creating a unified Windows API wrapper layer. - Added hbcrypt, hbssl and rddsql (with mysql, pgsql, fbsql plugins) to contribs. - hbct windowing extended with new low level API, better shadow handling. - gtwvg lots of improvements. - gtwvg Xbase++ compatible UI objects. - hbw32 library renamed to hbwin. - hbwin added WIN_ABORTDOC(), WIN_RUNDETACHED(), WIN_SHELLEXECUTE(), WIN_LOADRESOURCE(). - dbu patch now adds SET DATE ANSI and SET CENTURY ON. - hbwin WIN_MULDIV(), WIN_RECTANGLE(), WIN_SETBKMODE() extended to accept handles passed using alternate methods. - hbwin function names changed as below: - W32_REGPATHSPLIT() -> WIN_REGPATHSPLIT() - W32_REGREAD() -> WIN_REGREAD() - W32_REGWRITE() -> WIN_REGWRITE() - WIN32_REGCREATEKEYEX() -> WIN_REGCREATEKEYEX() - WIN32_REGOPENKEYEX() -> WIN_REGOPENKEYEX() - WIN32_REGQUERYVALUEEX() -> WIN_REGQUERYVALUEEX() - WIN32_REGSETVALUEEX() -> WIN_REGSETVALUEEX() - WIN32_REGCLOSEKEY() -> WIN_REGCLOSEKEY() - WIN32_ARC() -> WIN_ARC() - WIN32_BITMAPSOK() -> WIN_BITMAPSOK() - WIN32_CREATEDC() -> WIN_CREATEDC() - WIN32_CREATEFONT() -> WIN_CREATEFONT() - WIN32_DELETEDC() -> WIN_DELETEDC() - WIN32_DRAWBITMAP() -> WIN_DRAWBITMAP() - WIN32_ELLIPSE() -> WIN_ELLIPSE() - WIN32_ENDDOC() -> WIN_ENDDOC() - WIN32_ENDPAGE() -> WIN_ENDPAGE() - WIN32_ENUMFONTS() -> WIN_ENUMFONTS() - WIN32_FILLRECT() -> WIN_FILLRECT() - WIN32_GETCHARSIZE() -> WIN_GETCHARSIZE() - WIN32_GETDEVICECAPS() -> WIN_GETDEVICECAPS() - WIN32_GETEXEFILENAME() -> WIN_GETEXEFILENAME() - WIN32_GETPRINTERFONTNAME() -> WIN_GETPRINTERFONTNAME() - WIN32_GETTEXTSIZE() -> WIN_GETTEXTSIZE() - WIN32_LINETO() -> WIN_LINETO() - WIN32_LOADBITMAPFILE() -> WIN_LOADBITMAPFILE() - WIN32_MULDIV() -> WIN_MULDIV() - WIN32_OS_ISWIN9X() -> WIN_OS_ISWIN9X() - WIN32_RECTANGLE() -> WIN_RECTANGLE() - WIN32_SETBKMODE() -> WIN_SETBKMODE() - WIN32_SETCOLOR() -> WIN_SETCOLOR() - WIN32_SETDOCUMENTPROPERTIES() -> WIN_SETDOCUMENTPROPERTIES() - WIN32_SETMAPMODE() -> WIN_SETMAPMODE() - WIN32_SETPEN() -> WIN_SETPEN() - WIN32_STARTDOC() -> WIN_STARTDOC() - WIN32_STARTPAGE() -> WIN_STARTPAGE() - WIN32_TEXTOUT() -> WIN_TEXTOUT() - WIN32PRN class -> WIN_PRN class - WIN32BMP class -> WIN_BMP class - hbct GPF and wrong RTE messages fixed in: CHARADD(), CHARSUB(), CHARAND(), CHAROR(), CHARXOR() - hbct string optimizations in thrown RTEs. - hbziparc fixed <acFiles> behavior if the parameter is not passed. - hbhpdf added HPDF_VERSION_TEXT() to replace former macro with the same name. - hbhpdf fixed HPDF_SETINFODATEATTR() function. - Added experimental terminal server written in Harbour. Find it in /examples. - hbgt now properly checks for package version and includes feature accordingly. - hbwin added WAPI_GETCOMMANDLINE(), WIN_GETCOMMANDLINEPARAM(), WAPI_GETLASTERROR(), WAPI_SETLASTERROR(), WAPI_SETERRORMODE(). - hbwhat removed from contrib list and moved to examples instead. - xhb OVERRIDE / EXTEND CLASS emulation in xhbcls.ch header. (this feature is there to help xhb compatibility, but can break inheritance scheme and internal class definitions in both compilers) - xhb added DBF2TXT() with critical fixes. - xhb added HB_REGEXREPLACE(). - hbwin WINPORTWRITE() GPF when wrong parameter type is passed. - Added Darwin/MacPorts support for following contribs: gtalleg, hbmysql, hbpgsql, sddmy, sddpg, hbfimage. - hbtpathy now builds on Darwin. - xhb disabled dangerous bitop compatibility macros in hbcompat.ch. Enable them with #define XHB_BITOP. Or even better to change code to use HB_BIT*() functions natively. Known build issues ============================= - Windows 64-bit builds may generate a large amount of type conversion warnings. This is currently normal and will be addressed in a future version. - Contrib hbfimage won't currently compile on Linux/Darwin systems. This will be addressed in a future version. - Contrib hbsqlit3 will not embed foreign sqlite3 library code for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems. For these compilers you will have to supply sqlite3 library yourself. For other compilers, some warnings are expected and normal in this non-Harbour code. - Using Pelles C 5.00.1 in 64-bit mode, HB_INET*() functions won't work. - Using Pelles C 6.00.6 in 64-bit mode, there will be missing symbols at link time due to bugs in Pelles C. - gtalleg contrib may not compile on all platforms/compilers. - hbssl won't work with watcom on win platform due to OpenSSL header compatibility problems.
 sourceforge.net/projects/harbour-project/files/binaries-os2/2.0.0/harbour-2.0.0.bin-os2.gcc433.zip/download
Harbour v. 2.0.0 (Open Watcom, 26/12/2009) Readme/What's new
Version 2.0.0 (2009-12-??) Note ============================= Too many to list, it's yet to be collected and sorted in digestible form. [ Incomplete, unordered. This section only contains update between 2008-12-19 19:46 UTC+0100 and 2009-03-11 08:51 UTC+0100. 2008-08/09 - 2008-12-19 and 2009-03-11 - 2009-12-22 are missing. ] General ============================= - Build configuration changes: - PRG_USR -> HB_USER_PRGFLAGS - C_USR -> HB_USER_CFLAGS - L_USR -> HB_USER_LDFLAGS - A_USR -> HB_USER_AFLAGS - MK_USR -> HB_USER_MAKEFLAGS - HB_ARCHITECTURE -> HB_PLATFORM - HB_PLATFORM=w32 -> HB_PLATFORM=win - CCPATH -> HB_CCPREFIX - CCPREFIX -> HB_CCPATH - GNU-make system revised to give optimal support -j<n> multi-threaded parallel builds, which can dramatically increase build speed in multi-core/multi-CPU systems. - HB_WINCE -> HB_OS_WIN_CE - HB_OS_WIN_32_USED -> HB_OS_WIN_USED - HB_OS_WIN_32 -> HB_OS_WIN - Cleaned references of '32' in context of Windows and Windows API. - New macro names introduced: - SUCCESS -> HB_SUCCESS - FAILURE -> HB_FAILURE - ERRCODE -> HB_ERRCODE (old ones still work for compatibility, but please switch your code to use the new ones) - Fixed dynamic library creation on Solaris OSes. - hbrun will now open .dbf files when passed on the command line. - Added web-server written in Harbour: uHTTPD - POCC WinCE builds are now supported. - Open Watcom 1.8 (RC3) compiler is now supported. - Removed HB_LEGACY_LEVEL support. - #define HB_FM_WIN32_ALLOC renamed to HB_FM_WIN_ALLOC. - Protected incompatible changes with HB_LEGACY_LEVEL2. (HB_SUCCESS, HB_FAILURE, HB_ERRCODE, HB_WINCE, HB_OS_WIN_32*, __RDDGETTEMPALIAS(), __HRB*(), some class functions, Harbour -go option) These features are still available, and will be removed in next major version (Harbour 1.2). To test your code for compatibility, you can turn it off manually by #defining HB_LEGACY_OFF. (HB_USER_CFLAGS=-DHB_LEGACY_OFF) - New Harbour Project homepage, thanks for Vailton Renato. http://www.harbour-project.org/ - GNU Make system now supports parallel builds. (needs GNU Make newer than 3.79.1) - GNU Make system allows to install in Harbour source tree on all platforms. - GNU Make system for bcc and msvc options synced with non-GNU build methods. - GNU Make system no longer needs -r parameter. - GNU Make system will now generate hbfm and hbfmmt lib for all compilers. Added few more similar unification cleanups. - Implemented .dll generation for msvc, msvc64, bcc and watcom when using GNU Make system. - Added support for Open Watcom 1.8 (it's recommended over 1.7). - Added support for import lib generation when using GNU Make with msvc and vcc. Enable it with 'set HB_DIR_IMPLIB=yes' plus set HB_DIR_* envvars. - -mtune=pentiumpro optimization is now default for mingw/cygwin. - Cleaned new mingw 4.3.3 warnings. - Certain features will require Windows NT or upper when building Harbour on Windows, so this is now a requirement for a proper build. - hb-mkslib.sh renamed to hb-mkdyn.sh. Old name stil works, but it's now deprecated. - x64 msvc compiler got a distinct HB_COMPILER value: msvc64. - msvcce compiler made compatible with older MSVC/WinCE versions. - Added support for Intel(R) C++ compiler (icc) on Linux and Windows. - Added new INSTALL document giving a quick describing of the build process on all supported platforms and compilers. - Several steps to make the build process simpler and requiring the less amount of preparation. - Fixed missing watcom support for HB_USER_LDFLAGS. - Added support for MSVC IA64 mode. (untested) - Added support for HB_CONTRIBLIBS=no to disable building of all contribs. - Added ability to generate Windows installer and .zip distribution file. - Fully transitioned to GNU Make system for all compilers. Now msvc, msvcce and bcc builds need GNU Make, see INSTALL for more information. "non-GNU" make systems got deleted from the source tree. - Cygwin renamed from gcc to cygwin. (NOTE: Cygwin doesn't work since some versions, and support may be removed in the future.) - Fixed #pragma -k? options to be case-insensitive. - Explicitly bind system libraries with harbour shared library. RPM/DEB packages should automatically detect these dependencies. - Warning cleanup (minors) for Intel compiler. - Pelles C workarounds for compiler bugs. - Added support for extended definition files in Harbour compiler switches: -u+<file> - Fixed memory leak when repeated -u[<file>] options are used. Core ============================= - Added MT (Multi thread) support. - Added complete i18n support with API and tool to compile .po files (hbi18n). - Added hb_fsCreateTempEx(), hb_fileCreateTempEx() C level APIs. - Fixed to not use C RTL CP dependent character functions in Harbour code. (islower(), toupper(), etc) Added new macros instead. - __NATISNEGATIVE() and __NATISAFFIRM() are now using CP sensitive case conversion. - Added hb_charIsUpper()/hb_charIsLower() APIs. - CURDRIVE() and DISKNAME() fixed for systems that don't support drive letters. - Xbase++ compatible TBROWSE()/TBCOLUMN()/GET() related methods moved to derived classes xpp_TBrowse()/xpp_TBColumn()/xpp_Get(). - Fixed potential GPF in HB_RASCAN(). - Debugger improvements and fixes. - Most Harbour level code prepared for MT. - Fixed few potential GPFs in RDDNTX, RDDCDX code. - Added own hb_snprintf() implementation. - Fixed HB_VERSION( HB_VERSION_BUILD_DATE ) - Added hbuddall library holding all core supplied user RDDs. - Fixed to successfully build all user RDD examples. - Fixed dbCreate() behaviour in arrayrdd user RDD. - Added new LOGRDD user RDD. - Added DBFNSX RDD. - Fixed FWRITE() potential GPF and security hole. - Added __FILE__ support for .prg code. - Added: HB_MILLISECONDS() HB_FTEMPCREATEEX( @<cName>, <cDir>, <cPrefix>, <cExt> ) -> <nHandle> HB_STRDECODESCAPE( <cEscSeqStr> ) -> <cStr> HB_STRCDECODE( <cStr> [, @<lCont> ] ) -> <cResult> | NIL HB_STRXOR( <cStr1>, <cStr2> | <nNum> ) -> <cResult> HB_PROGNAME() -> <cProgramNameWithPath> HB_DISPOUTATBOX() similar to HB_DISPOUTAT() but for drawing chars. HB_FGETATTR( <cFileName>, @<nAttr> ) -> <lSuccess> HB_FSETATTR( <cFileName>, <nAttr> ) -> <lSuccess> HB_FSETDATETIME( <cFileName>, [<dDate>], [<cTime HH:MM:SS>], [<nMilliSec>] ) -> <lSuccess> HB_FGETDATETIME() HB_WILDMATCHI() like HB_WILDMATCH() but case-insentitive. HB_CDPSELECT() same as HB_SETCODEPAGE() (please upgrade to new function name). HB_CDPUNIID( <cHarbourCP> ) -> <cCPName> HB_GTINFO( HB_GTI_CARGO[, <xValue ] ) -> <xPrevValue> HB_DIRBASE() -> <cBaseDirectory> HB_DBCREATETEMP()/DBCREATETEMP() to create temporary tables. HB_MMIDDLEDOWN/MMIDDLEDOWN() new Harbour function. DBINFO( DBI_ISTEMPORARY ) HB_VERSION( HB_VERSION_BUILD_PLAT ) HB_VERSION( HB_VERSION_BUILD_COMP ) HB_STRFORMAT() C-like string formatting function (also as C level API named hb_StrFormat()) HB_SETENV( <cEnvName>, [<cNewVal>] [, <lOsCP>] ) -> <lOK> (also as C level API named hb_setenv()) - Fixed UNSELECTED color updating in SetColor(). - GTWVT, GTWIN HB_GTI_CODEPAGE support. - GTWVT now supports drawing chars even if the selected codepage doesn't support them. - GTWVT HB_GTI_BOXCP support. - GTWVT disabled K_MM*DOWN non-Clipper (and other GT) compatible mouse events. - Fixed TBROWSE(), TPOPUP() to display drawing chars properly. - Fixed DISKSPACE() and HB_DISKSPACE() to return proper values on Darwin. - Fixed DIRECTORY() when called with "V" (label) parameter (on Windows). - New HB_SIZEOFARRAY() macro. - Added C APIs: hb_charIsDigit(), hb_charIsAlpha(), hb_charIsLower(), hb_charIsUpper() - Added support to specify OS codepage: Set( _SET_OSCODEPAGE[, <cCPID> ] ) -> <cOldCPID> C level: hb_setGetOSCODEPAGE() Conversion is done automatically in existing functions. - Added hb_osDecode(), hb_osEncode() C APIs. - HB_GETENV() extended with 3rd parameter to control OS codepage conversion (on by default). - Added CPU dump support for AMD64/x64. - Added module listing on GPF for x86 and x64. - GTXWC potential GPF fixed. - Added process handling: HB_PROCESSOPEN(), HB_PROCESSVALUE(), HB_PROCESSCLOSE() - Added HB_GTI_BOXCP to control box drawing CP for GTs. - Using Heap instead of Local memory when HB_FM_WIN32_ALLOC is set. - Added __objHasMsgAssigned( object, "msgName" ) - File find API fixes for OS/2. - DBOI_BAGNAME made compatible for RDDCDX, RDDNSX. - Added Intel C compiler and Wine detection. - Codepage fixes and cleanups (BGMIK). - Fixed cursor handling in TEDITOR/MemoEdit(). - Now GTXWC generates HB_K_RESIZE on resize. - GTWIN fixed HB_GTI_KBDSHIFTS handling. - GTWVT added 'layered window' support (always enabled, except when in Terminal mode). - GTWVT fixed not to generate RTE if class is already been registered. - GTXWC added support for HB_GTI_PALETTE, HB_GTI_FONTSEL, HB_GTI_CLOSABLE, HB_GTI_RESIZABLE. - GTTRM added support for HB_GTI_PALETTE. - New compiler expression optimizations, and some fixes for rare cases. - Some compiler optimizations are now enabled using new -ko switch. - Added array preallocation on AADD(). - Optimization to string reallocation. - Added detection of unused variable assigments. Code cleaned in all Harbour for such warnings. - Fixed possible problem with _SET_PRINTFILE, _SET_DEFAULT, _SET_EXTRAFILE. - __HRB*() functions marked as compatibility, please update your code to use HB_HRB*(). - __RDDGETTEMPALIAS() marked as compatibility, please update your code to use HB_RDDGETTEMPALIAS(). - Added hb_spFileExists() a more efficient version of hb_spFile(). Modified Harbour code to use the new API. - HSX index MT support. - Fixed potentially uninitialized internal HB_GT_INFO structure. - Using more efficient hb_fsFileExists() instead of hb_fsFile() in core. - Added char * hb_cmdargARGVN( int argc ). - HB_PROCNAME() support for symbol evaluation. - HB_SYMBOL_UNUSED() moved to std.ch. NOTE: This macro is no longer present in common.ch so if you're overriding std.ch, make sure to add this macro to your header file. - BIN2W(), BIN2I(), BIN2L(), I2BIN(), L2BIN(), BIN2U(), W2BIN(), U2BIN() functions rewritten in a more efficient way. Previous pure GPL license changed to standard Harbour license (including exception). - Fixed Ukrainian localization files. - Using local implementation of hb_snprintf() for all C level code. - Fixed localized date format for RU, UA, IT, BE, BG, NL, SL. - Added __FILE__ and __LINE__ predefined dynamic PP macros. - Added Windows 7 and Server 2008 R2 version detection. - Replaced old hbmk.bat, hbmk bash script and Harbour Make tool with portable make tool written in Harbour: hbmk. This tool can create a Harbour executable on any platforms using minimal effort. It autodetects OS and compiler environment. Support script and parameter files, can act as a linker, C compiler, Harbour compiler, static and dynamic library creator, resource compiler (on Windows). Core features are completed on all major platforms. Some non-mainstream features and platforms may be completed later. All existing features of hbmk bash script (for gcc) and of hbmk.bat are supported in this new tool, and much more. Replaced Win/DOS specific .bat files with portable .hbp and .hbm files. - Added all missing non-multibyte codepages. - LISTBOX() doesn't modify _SET_EXACT settings anymore in :Find*() methods. - HVM pcode evaluation speed improvement. - Fixed _SET_EXACT handling in core. - hb_gtInfo( HB_GTI_PALLETE ) now uses zero based color indexes in core (GTWVT, GTXWC). This creates a small incompatibility with older version. Also notice that GTWVG still uses 1-based indexes for compatibility. - Fixed very old bug showing wrong default status for -n option on Harbour help screen. - Added support for reading FoxPro .mem files - Clipper compatibility. - Fixed very old bug which disabled writing to .mem files strings longer then 32Kb. - hbrun now accepts .dbf file as paramater, which it will open after startup. - hbrun now accepts -v option which makes it display its own version after startup. - Borland C++ compiler is now called 'bcc' instead of 'bcc32'. Please update your system. - Removed almost all DOS/WIN specific build/make batch files. - Fixed __M[V]CLEAR()/ __M[V]RESTORE() to be exactly Clipper compatible and do not release PUBLIC GetList value. - bcc compiler in GNU Make now supports older Windows NT with limited command line length. - Removed support for following compilers: dos/bcc16, dos/rsx32, win/dmc, win/rsxnt, os2/icc, win/icc (IBM). - Fixed static variables indexes in the generated PCODE when static variables are declared inside extended codeblocks - in some cases wrong PCODE was generated. - Fixed initialization PCODE for thread static variables declared inside extended codeblocks. - Fixed modulename generated for debugger to always contain function name part for extended codeblock declared as file wide static variables. In such case "(_INITSTATICS)" is used as function name. Without it debugger does not register entering such codeblocks and GPFs. - Added support for automatic adding 1-st function with the same name as compiled .prg file if some code statements are used before 1-st function/procedure declared explicitly in .prg file. Such mode can be enabled by -n2 new harbour compiler switch. This switch is used by default by new hbmk tool. - speedtst updated to work with CA-Cl*pper. - Added protection against pushing new private variable on HVM stack if such private variable is already created by the same function. Clipper also has such protection. - Respect HB_START_PROCEDURE in all builds if such public function/procedure exists. - Disabled HB_MSC_STARTUP in C++ MSVC builds. - Forbid some usage of __clsModMsg() and unblock some others It should make some xHarbour users using OVERRIDE METHOD happy but please remember it's still undocumented and unsupported functionality - use for your own risk. - Fixed typo in HB_INETDATAREADY() - the second parameter (timeout) was ignored. - Changed the NOT operator precedence - it should be bigger then logical .and./.or. operators in #if expressions. - Fixed HB_REGEXMATCH(). Now the HAS/LIKE mode can be controlled by 5th logical parameter (was 3rd), so 3rd parameter is solely controlling case-sensitivity as indicated in the documentation. Users are recommended to use HB_REGEXHAS() and HB_REGEXLIKE() functions as unambiguous alternatives, which work equally well on all Harbour versions. HB_REGEXMATCH() is now deprecated, but kept for compatibility. - ACHOICE() fixed to redisplay itself when exiting with <Esc> or equivalent. Contrib ============================= - hbblat new Blat interface class for Windows (Contributed by Francesco Saverio Giudice). - hbmzip fixed GPF in HB_ZIPDELETEFILE() when file has comment. - hbmzip fixed handling attributes in HB_ZIPFILECREATE(). - hbmzip fixed timestamps stored in .zip files. - hbmzip added HB_ZIPSTOREFILEHANDLE(), HB_UNZIPEXTRACTCURRENTFILETOHANDLE() functions. - hbwin WIN_REGREAD()/GETREGISTRY() got new parameter to supply a default value when the entry isn't found. - hbtip FTP handling fixed some accidental typos. - hbtip new MIME types. - hbtip fixes and optimization to HB_BASE64(). - rddads now autodetects version 9.10. - hbct XTOC(), FTOC() and CTOF() fixed to be properly multiplatform. - hbct unbuffered drawing speed improvement in windowing code. - hbct DIRNAME() fixed. - hbct other fixes. - hbct FILESEEK(), FILEATTR(), FILESIZE(), FILEDATE() now MT compatible. - hbct added support for thread local current window pointer in CT Windows. - hbwin made steps towards creating a unified Windows API wrapper layer. - Added hbcrypt, hbssl and rddsql (with mysql, pgsql, fbsql plugins) to contribs. - hbct windowing extended with new low level API, better shadow handling. - gtwvg lots of improvements. - gtwvg Xbase++ compatible UI objects. - hbw32 library renamed to hbwin. - hbwin added WIN_ABORTDOC(), WIN_RUNDETACHED(), WIN_SHELLEXECUTE(), WIN_LOADRESOURCE(). - dbu patch now adds SET DATE ANSI and SET CENTURY ON. - hbwin WIN_MULDIV(), WIN_RECTANGLE(), WIN_SETBKMODE() extended to accept handles passed using alternate methods. - hbwin function names changed as below: - W32_REGPATHSPLIT() -> WIN_REGPATHSPLIT() - W32_REGREAD() -> WIN_REGREAD() - W32_REGWRITE() -> WIN_REGWRITE() - WIN32_REGCREATEKEYEX() -> WIN_REGCREATEKEYEX() - WIN32_REGOPENKEYEX() -> WIN_REGOPENKEYEX() - WIN32_REGQUERYVALUEEX() -> WIN_REGQUERYVALUEEX() - WIN32_REGSETVALUEEX() -> WIN_REGSETVALUEEX() - WIN32_REGCLOSEKEY() -> WIN_REGCLOSEKEY() - WIN32_ARC() -> WIN_ARC() - WIN32_BITMAPSOK() -> WIN_BITMAPSOK() - WIN32_CREATEDC() -> WIN_CREATEDC() - WIN32_CREATEFONT() -> WIN_CREATEFONT() - WIN32_DELETEDC() -> WIN_DELETEDC() - WIN32_DRAWBITMAP() -> WIN_DRAWBITMAP() - WIN32_ELLIPSE() -> WIN_ELLIPSE() - WIN32_ENDDOC() -> WIN_ENDDOC() - WIN32_ENDPAGE() -> WIN_ENDPAGE() - WIN32_ENUMFONTS() -> WIN_ENUMFONTS() - WIN32_FILLRECT() -> WIN_FILLRECT() - WIN32_GETCHARSIZE() -> WIN_GETCHARSIZE() - WIN32_GETDEVICECAPS() -> WIN_GETDEVICECAPS() - WIN32_GETEXEFILENAME() -> WIN_GETEXEFILENAME() - WIN32_GETPRINTERFONTNAME() -> WIN_GETPRINTERFONTNAME() - WIN32_GETTEXTSIZE() -> WIN_GETTEXTSIZE() - WIN32_LINETO() -> WIN_LINETO() - WIN32_LOADBITMAPFILE() -> WIN_LOADBITMAPFILE() - WIN32_MULDIV() -> WIN_MULDIV() - WIN32_OS_ISWIN9X() -> WIN_OS_ISWIN9X() - WIN32_RECTANGLE() -> WIN_RECTANGLE() - WIN32_SETBKMODE() -> WIN_SETBKMODE() - WIN32_SETCOLOR() -> WIN_SETCOLOR() - WIN32_SETDOCUMENTPROPERTIES() -> WIN_SETDOCUMENTPROPERTIES() - WIN32_SETMAPMODE() -> WIN_SETMAPMODE() - WIN32_SETPEN() -> WIN_SETPEN() - WIN32_STARTDOC() -> WIN_STARTDOC() - WIN32_STARTPAGE() -> WIN_STARTPAGE() - WIN32_TEXTOUT() -> WIN_TEXTOUT() - WIN32PRN class -> WIN_PRN class - WIN32BMP class -> WIN_BMP class - hbct GPF and wrong RTE messages fixed in: CHARADD(), CHARSUB(), CHARAND(), CHAROR(), CHARXOR() - hbct string optimizations in thrown RTEs. - hbziparc fixed <acFiles> behavior if the parameter is not passed. - hbhpdf added HPDF_VERSION_TEXT() to replace former macro with the same name. - hbhpdf fixed HPDF_SETINFODATEATTR() function. - Added experimental terminal server written in Harbour. Find it in /examples. - hbgt now properly checks for package version and includes feature accordingly. - hbwin added WAPI_GETCOMMANDLINE(), WIN_GETCOMMANDLINEPARAM(), WAPI_GETLASTERROR(), WAPI_SETLASTERROR(), WAPI_SETERRORMODE(). - hbwhat removed from contrib list and moved to examples instead. - xhb OVERRIDE / EXTEND CLASS emulation in xhbcls.ch header. (this feature is there to help xhb compatibility, but can break inheritance scheme and internal class definitions in both compilers) - xhb added DBF2TXT() with critical fixes. - xhb added HB_REGEXREPLACE(). - hbwin WINPORTWRITE() GPF when wrong parameter type is passed. - Added Darwin/MacPorts support for following contribs: gtalleg, hbmysql, hbpgsql, sddmy, sddpg, hbfimage. - hbtpathy now builds on Darwin. - xhb disabled dangerous bitop compatibility macros in hbcompat.ch. Enable them with #define XHB_BITOP. Or even better to change code to use HB_BIT*() functions natively. Known build issues ============================= - Windows 64-bit builds may generate a large amount of type conversion warnings. This is currently normal and will be addressed in a future version. - Contrib hbfimage won't currently compile on Linux/Darwin systems. This will be addressed in a future version. - Contrib hbsqlit3 will not embed foreign sqlite3 library code for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems. For these compilers you will have to supply sqlite3 library yourself. For other compilers, some warnings are expected and normal in this non-Harbour code. - Using Pelles C 5.00.1 in 64-bit mode, HB_INET*() functions won't work. - Using Pelles C 6.00.6 in 64-bit mode, there will be missing symbols at link time due to bugs in Pelles C. - gtalleg contrib may not compile on all platforms/compilers. - hbssl won't work with watcom on win platform due to OpenSSL header compatibility problems.
 sourceforge.net/projects/harbour-project/files/binaries-os2/2.0.0/harbour-2.0.0.bin-os2.watcom.zip/download
Harbour v. 1.0.1 (EMX GCC, 18/9/2008) Readme/What's new
Version 1.0.1 (2008-09-10) General ============================= - Digital Marc C build fixed. - Debian, RPM packaging fixes. - Several code quality enhancements, warning fixes. - Doc quality fixes, formatting. - Fixed so that build-time PRG_USR always overrides default options in GNU-make. - Added openSUSE package requirements to doc/linux1st.txt. - Unnecessary compiler options and lib dependencies cleaned from build processes. - Fixed Darwin (OS X) builds broken due to a change shortly before 1.0.0. - Non-critical filename casing related cleanups. - Non-ASCII chars stripped from several source files for better portability. - Added RDD regression test code. - Fixed potential buffer overruns in PP, GTCRS, GTPCA, GTSTD, hbfbird, hbwhat32. - Eliminated remaining non-safe string manipulation calls: strncpy(), strcpy() -> hb_strncpy() strncat(), strcat() -> hb_strncat() - Some contrib name collisions fixed in non-GNU builds. - gtalleg GT moved to the contrib area to enable it for non-GNU builds and non-*nix builds in general. Use HB_INC_ALLEGRO or HB_DIR_ALLEGRO (for non-GNU make only) to specify the location of the headers or the package (respectively). - Harbour compiler now defaults to -gc0 switch (was -gc2) to generate the smallest possible .c output by default. - Fixed to compile under Cygwin. - -mno-cygwin option removed from MinGW builds. You may need to readd this to C_USR if you use very old MinGW compilers, like Cygnus MinGW32 2.95. - Fixed WinCE harbour.dll generation in non-GNU builds. - Fixed WinCE build warnings in non-GNU builds. - Synced build options between BCC/MSVC GNU make and non-GNU make. - Default HB_VISUALC_VER envvar value changed uniformly to 80 for both core and contrib and WinCE build in non-GNU make. You may need change your environment if you relied on the default. - Non-GNU MSVC WinCE builds are now integrated into mainstream non-GNU MSVC make. make_vcce.bat was removed. Please read instructions in make_vc.bat, how to initiate a WinCE build. - Now Harbour is able to build and run properly in MSVC C mode in AMD64 (64-bit) mode. - Added experimental Pelles C WinCE GNU-make file. It doesn't yet work properly. - Post batch file called from core non-GNU make files was renamed, please update your system if you're using them: exit_err.bat -> hbmkpost.bat - Added experimental MSVC WinCE GNU-make file. - Added Darwin autodetection to non-GNU .sh make files. - Changed GNU-make name of MinGW WinCE compiler (HB_COMPILER) from 'cemgw' to 'mingwce'. Please update your system, if you've been using this directly (and not via make_*ce.sh scripts). - Memory statistics module now turned off by default for optimal performance. It can be turned on by setting HB_FM_STATISTICS macro. Core ============================= - Added HB_LEGACY_LEVEL macro to control inclusion of certain deprecated Harbour elements. This macro is enabled by default, and will be disabled (and legacy parts probably removed) in Harbour 1.1. You can disable it now manually by #defining HB_LEGACY_LEVEL_OFF, in order to check what elements needs to be changed, and if they were properly and fully changed in your local code. - HB_DBG_*() internal functions moved to the internal function namespace __DBG*(). Some of these - potentially used by 3rd party packages - are still accessible under the old name, when HB_LEGACY_LEVEL is #defined. - Removed old __VM*() macros which were aliased to __DBG*() functions. - Macro name change __EXPORT__ -> HB_DYNLIB This shouldn't normally affect users, but if you happen to use it, please update it. - Some internal macro names changed as follows: OS_UNIX_COMPATIBLE * -> HB_OS_UNIX_COMPATIBLE OS_DOS_COMPATIBLE -> !defined( HB_OS_UNIX_COMPATIBLE ) OS_PATH_LIST_SEPARATOR -> HB_OS_PATH_LIST_SEP_CHR OS_PATH_DELIMITER * -> HB_OS_PATH_DELIM_CHR OS_PATH_DELIMITER_STRING -> HB_OS_PATH_DELIM_STR OS_PATH_DELIMITER_LIST -> HB_OS_PATH_DELIM_LIST OS_FILE_MASK -> HB_OS_ALLFILE_MASK OS_DRIVE_DELIMITER -> HB_OS_DRIVE_DELIM_CHR OS_HAS_DRIVE_LETTER -> HB_OS_HAS_DRIVE_LETTER OS_OPT_DELIMITER_LIST -> HB_OS_OPT_DELIM_LIST OS_EOL_LEN -> HB_OS_EOL_LEN HARBOUR_GCC_OS2 -> HB_OS_OS2_GCC HARBOUR_START_PROCEDURE -> HB_START_PROCEDURE HARBOUR_MAIN_STD -> HB_MAIN_STD HARBOUR_MAIN_WIN -> HB_MAIN_WIN HARBOUR_MAX_RDD_DRIVERNAME_LENGTH * -> HB_RDD_MAX_DRIVERNAME_LEN HARBOUR_MAX_RDD_ALIAS_LENGTH * -> HB_RDD_MAX_ALIAS_LEN HARBOUR_MAX_RDD_AREA_NUM -> HB_RDD_MAX_AREA_NUM If you happen to use these, please update your code to use the new names. The more commonly used ones (marked with '*') are still available under the old name, covered with HB_LEGACY_LEVEL. - hbmake and hbdoc tools reduction in size, several fixes, better multiplaform support and lots of code cleanups, especially in hbmake (still a long way to go though). - Some names deprecated and replaced with new ones: FHANDLE -> HB_FHANDLE EVALINFO -> HB_EVALINFO PEVALINFO -> PHB_EVALINFO EVALINFO_PTR -> marked as legacy, use PHB_EVALINFO instead. CLR_STRLEN -> HB_CLRSTR_LEN All of these are marked with HB_LEGACY_LEVEL. Important to note that legacy Clipper compatible C sources may continue to use Clipper compatible symbols, regardless of the HB_LEGACY_LEVEL setting. It's advised to change these to Harbour-only C sources in preparation to the next Harbour major version (1.1). - Marked hb_fileNameConv() as HB_LEGACY_LEVEL. 3rd party and app developers should switch to hb_fsNameConv(). - GTI_*, GFX_* macros marked as HB_LEGACY_LEVEL. Please use HB_GTI_*, HB_GFX_* equivalents. - Fixed potential buffer overrun in hb_fsTempName(). This got introduced shortly before 1.0.0. - Debugger: Strip function name from module name used to initialize global and file wide variables. It fixes presenting file wide static variables in debugger. - Removed hb_hInstance, hb_hPrevInstance, s_iCmdShow, s_WinMainParam old undocumented public variables. 3rd parties should use official hb_winmainArgGet() API to get these values. This feature is also HB_LEGACY_LEVEL dependent, therefore it will be finalized in 1.1, until then, old symbols will still work. - Fixed _FIELD indirectly used as alias to generate the right RTE: ? ("_FIELD")->NAME, or: M->var := "_FIELD"; ? ("&var")->NAME - Fixed OS() to detect Vista/Windows 2008. This bug got introduced in 1.0.0rc2. - Fixed OS() string when run on Windows XP 64-bit Edition. - Changed HB_COMPILER() to always show 32/64-bit in the returned string. - Fixed GPFs and leaks when using Harbour compiler -w3 switch. - Bad workaround added for Pelles C 5.00.1 in AMD64 mode to compile the Harbour 'inet' subsystem. It won't properly work, but it lets build the rest of Harbour (like hbrun.exe). - PCRE lib upgraded to 7.8 (from 7.7) - Fixed dbInfo( DBI_POSITIONED ) returned value. - Fixed internal error in dirty index reading. - Fixed return value of HB_INETGETSNDBUFSIZE(). - Fixed GPF when user sort code block reduces the size of sorted array. - Fixed typo in hash cloning code which caused that references was copied to cloned array. Thanks to Mindaugas for example. - Added missing MESSAGE <MessageName> TO <oObject> to hbclass.ch. Contrib ============================= - hbmzip potential GPF fixed in executable type detection. - General code style fixes in certain contribs. - Harbour -km switch enabled for contribs. - hbmysql SQLFETCHR() function updated to allow fetching binary (BLOB) fields. - hbclipsm GAUGE*() function fixes. - gtalleg fixed to compile under several non-*nix platforms (still needs more work). - xhb: HB_ARRAYBLOCK() compatibility function added. - hbnf FT_GETE() function bad leak fixed on Win32 systems, and potential GPF on all systems. - hbwhat32 removed wintypes.ch header. Header with the same name and identical content can be found in xhb contrib. - hbct VOLUME() buffer overrun fixed. - hbole GPF fixed. This bug got introduced in 1.0.0rc2. - hbole, hbw32 64-bit fix for MESSAGEBOX() functions. It now allows for both pointer and numeric types to be passed as a window handle. - hbwhat32 fixed to not define WinMain() and also not to collide with certain Harbour public symbols. - hbw32 unnecessary memory allocation hacks removed from OLE support. - Using ANSI C comments more consistently in contribs. - hbct / atnum.c changed to workaround a compiler bug in Pelles C 5.00.1 in AMD64 mode. - hbole modified to generate RTE when OLE object cannot be found, to be in sync with hbw32 OLE implementation. - hbbtree fixed scope problem in class, causing an RTE. Added build batch files for its tests. - Remaining code (hbwhat32, hbnf) fixed to always use Harbour C API, instead of legacy Clipper C API (*.api, clipdefs.h and extend.h). - hbsqlit2 lib was moved to examples and sqlite2 sources removed. Please use hbsqlit3 instead. - hbziparch heavy rework/refactor/reduce/fixing effort, what resulted in hbziparc, which implements the same old ZipArchive interface with similar functionality (except progress codeblock callbacks unzip functions and .zip spanning feature), now rewritten in Harbour. If you need to use this API, please change hbziparch to hbziparc and link in hbmzip library, too. In contrary to old implementation, this new one is completely portable and fixes some potential leaks and GPFs. This code could use some more testing, be aware. - hbbmcdx fixed internal error in dirty index reading. - hbcurl added support for libcurl 7.19.0 features. - hbhpdf added support for libharu 2.1.0. - Fixed so that contrib source files cannot collide with each other when building them using the non-GNU make system. - Former hbwhat32 lib added to the default contrib list under the name of hbwhat, compilation was fully cleaned and fixed to support Win64 platform. INTERNETREADFILE(), INTERNETWRITEFILE() functions were fixed. what32.ch renamed to hbwhat.ch. - hbhpdf fixed HPDF_ADDPAGELABEL(). - hbw32 got a new COM port handling class and API. - gtwvg got some enhancements and 64-bit compatibility fixes. A critical 1.0.0 bug was also fixed, which could cause dialogs to not appear. - hbfimage fixed to compile with Watcom compilers. Known build issues ============================= - Windows 64-bit builds may generate a large amount of type conversion warnings. This is currently normal and will be addressed in a future version. - Contrib hbfimage won't currently compile on Linux systems. This will be addressed in a future version. - Contrib hbsqlit3 will not embed foreign sqlite3 library code for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems. For these compilers you will have to supply sqlite3 library yourself. For other compilers, some warnings are expected and normal in this non-Harbour code. - Using Pelles C 5.00.1 in 64-bit mode, HB_INET*() functions won't work. - gtalleg, hbwhat contrib may not compile on all platforms/compilers. - hbcurl won't build when using DMC and libcurl 7.19.0. Earlier versions build okay.
 sourceforge.net/projects/harbour-project/files/binaries-os2/1.0.1/harbour-1.0.1.bin-os2.gcc.zip/download
Harbour v. 1.0.0 (EMX GCC, 14/8/2008) Readme/What's new
Version 1.0.0 (2008-08-10) tag: 1.0.0 General ============================= - Internal errors are now logged to file. - Fixed -gc3 for doubly negated integers. - Changed hb_xrealloc() to be ANSI-C realloc() compatible. - Cleanup of MSVC C mode static initialization code. - Changed internal representation for file attributes from USHORT to ULONG. - Fixed memory leak in -gw mode. - Portability fixes (Unicode, 64 bit, Pelles C 32/64 bit, WinCE, eVC4, XCC, Linux mouse detection, OpenWatcom). - Deployment fixes. - harbour.dll related fixes. - MinGW bash (msys) build related fixes. - Darwin universal build and OS X Leopard (10.5) compatibility fixes. Core ============================= - Fixed __HARBOUR__ macro on .prg level, when compiled with -u switch. - HB_ARRAYID() moved to xhb.lib, synced with xhb and made 64 bit compatible. - File handle usage cleanup and 64 bit compatibility. - Automatic destructors for .hrb modules. - Added passing non-string parameters to .hrb functions. - Fixed casting for indexes with key length greater than 196 bytes created on tables with record number smaller than 256 in rddcdx. - New FS API functions: hb_fsSetFileTime(), hb_fsGetFileTime(), hb_fsSetAttr(), hb_fsGetAttr(). - New date API function: hb_timeStampEncode(). - Fixed printing under OS/2. - Implemented DBEDIT() DE_APPEND mode plus some other features and compatibility fixes. - MD5 calculation fixes. - Added C level hb_hashAddNew(). - Compile time optimization of EMPTY() function. - Compress trailing spaces during string item serialization. - Replicated CA-Cl*pper compile time optimization bugs. - TCP/IP function (HB_INET*()) fixes. - Added HB_OSFILEMASK(), HB_DIRSCAN(), HB_FILEMATCH() Harbour level functions. - Fixed RTE in HBReportForm() class. - Added __OBJGETPROPERTIES(), extended __CLSGETPROPERTIES(). - Changed (incompatible): __PLATFORM__Windows -> __PLATFORM__WINDOWS __PLATFORM__Linux -> __PLATFORM__LINUX - hbdot functionality merged into hbrun. - *nix exception handler added. - Source filename visible in stack traces. - ACHOICE() mouse support added. - Core Harbour level ZLIB compression functions renamed as follows: HB_COMPRESS() -> HB_ZCOMPRESS() HB_COMPRESSBOUND() -> HB_ZCOMPRESSBOUND() HB_UNCOMPRESS() -> HB_ZUNCOMPRESS() HB_UNCOMPRESSLEN() -> HB_ZUNCOMPRESSLEN() - Harbour .hrb API moved to the documented namespace as follows: __HRBRUN() -> HB_HRBRUN() __HRBLOAD() -> HB_HRBLOAD() __HRBUNLOAD() -> HB_HRBUNLOAD() __HRBDO() -> HB_HRBDO() __HRBDOFU() -> (deleted, please use DO()) __HRBGETFU() -> HB_HRBGETFUNSYM() (old function names still function) Contrib ============================= - Better cross-build support for contribs with external dependencies. - hbmzip OS/2 support, Unix .zip header fix, using Harbour memory management functions, global and file comment support, HB_ZIPDELETEFILE() function. - hbziparch fixes and better portability. - hbcurl fixes, now using Harbour memory allocation functions, now older libcurl versions are supported as well, CURL_EASY_GETINFO() fixed for unsupported info types. - 64bit compatibility fixes. hbmysql/SQLLISTF() function now uses pointer instead of numeric type. - Fixed adordd to be _SET_EXACT independent. - Fixed hbodbc tests to work out of the box. - hbw32, hbodbc 64 bit fixes. - Fixed rddads to behave Clipper-like when trying to write when on EOF position. - Added OS version detection functions to hbw32. - Fixed HB_INC_* envvar usage in *_all.bat files. - Fixed casting for indexes with key length greater than 196 bytes created on tables with record number smaller than 256 in hbbmcdx. - hbsqlit3 warning fixes and error fixes for some compilers/modes. - Added DirectoryRecurse() to xhb.lib. Known build issues ============================= - Harbour with MSVC in 64 bit will only build in C++ mode. Use 'set HB_BUILD_MODE=cpp' and 'make_vc.bat'. - Windows 64 bit builds may generate a large amount of type conversion warnings. This is currently normal and will be addressed in a future version. - Contrib hbfimage won't currently compile on Linux systems and with Open Watcom compilers. This will be addressed in a future version. - Contrib hbsqlit3 will not embed foreign sqlite3 library code for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems. For these compilers you will have to supply sqlite3 library yourself. For other compilers, some warnings are expected and normal in this non-Harbour code. - Digital Mars C compiler compiles properly, but linking Harbour executables doesn't currently work. This may be addressed in a future revision.
 sourceforge.net/projects/harbour-project/files/binaries-os2/1.0.0/harbour-1.0.0.bin-os2.gcc.zip/download
Harbour v. 0.99.3 (EMX GCC, 15/6/2007)
 sourceforge.net/projects/harbour-project/files/binaries-os2/0.99.3/harbour-0.99.3.bin-os2.gcc.zip/download
Harbour v. 0.99.2 (EMX GCC, 31/3/2007)
 sourceforge.net/projects/harbour-project/files/binaries-os2/0.99.2/harbour-0.99.2.bin-os2.gcc.zip/download
Record updated last time on: 14/08/2023 - 13:57

Translate to...

Add new comment