Harbour News  
  This page gives you some of the main changes introduced in recent versions of Harbour project. To view the latest ChangeLog click here or download lastest stable release of Harbour here.  

 
  Harbour 2.0.0 unified Windows binary release
  • December 23, 2009

    Harbour 2.0.0 (r13372) source archives and Windows binary releases are available for download on sourceforge.net:
    http://sourceforge.net/projects/harbour-project/files/

    Make sure to check INSTALL file and "QUICK START" section and visit our user forums at:
    http://sourceforge.net/apps/phpbb/harbour-project/

    Release notes:
    Unified Windows release for most supported compilers and x86, x64, WinCE/ARM, MS-DOS, OS/2, Linux target platforms.
    Installed size: 214MB (54MB - 339MB). The default installation will install MinGW compiler + x86 static and shared libs, MSVC
    and BCC x86 libs and examples.

    Options: x86 shared tools, x64 shared tools, MinGW x64 and WinCE-ARM libs, MSVC x64 libs, Open Watcom x86 libs, shared x64/WinCE-ARM libs, MS-DOS (watcom) libs, OS/2 (watcom) libs, Linux (watcom) libs.


    Usage:
    1) install/unpack to any directory (C:\hb20)
    2) go to bin dir (optional if you specify path for hbmk2)
    3) For x86 executable, type: 'hbmk2 ../tests/hello.prg'
    4) For x64 executable, type: 'hbmk2 ../tests/hello.prg -compiler=mingw64'
    [needs mingw64 to be installed in 'comp/mingw64' dir beforehand]
    5) For WinCE/ARM executable, type: 'hbmk2 ../tests/hello.prg -platform=wce'
    [needs cegcc to be installed in 'comp/mingwarm' dir beforehand]
    6) For MS-DOS executable, type: 'hbmk2 ../tests/hello.prg -platform=dos'
    [needs OpenWatcom to be installed in 'comp/watcom' dir beforehand]
    7) For Linux executable, type: 'hbmk2 ../tests/hello.prg -platform=linux'
    [needs OpenWatcom to be installed in 'comp/watcom' dir beforehand]


    For further information, check out the original link:
    http://lists.harbour-project.org/pipermail/harbour/2009-December/029447.html
 
     

 
  Release of 2.0.0
  • December 22, 2009

    After 16 months of intensive development the final version 2.0.0 is finally released. There are many highlights and news in this new release, check out some details and download your copy free today.

    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.
  • Some constants renamed:
      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.
  • 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 stringslonger 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 othersIt should make some xHarbour users using OVERRIDE METHOD happy
    but please remember it's still undocumented and unsupportedfunctionality - 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.

To download the Harbour v2.0.0 today, please visit our downloads page.
 
 
 

 
 
SourceForge Community Choice Awards!
  • May 17, 2009

    General
  • The SourceForge.net, one of the largest repositories of open source applications in the world, organizes every year a vote for the community choose the best projects. It is the SourceForge.net Community Choice Awards. Indication of projects begins on May 6 and will end on 29th. The finalists will be known in June and the list of winners must leave at the end of July at OSCON event.

    Get involved! Nominate us for the 2009 Community Choice Awards here.
 
 
 

 
  New website released!
  • February 15, 2009

    General
  • Released the new layout for our site.
    This includes details about the project, several examples and will soon include some tutorials.
 
 
 

 
  Released 1.0.1
  • September 17, 2008

    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=w32 -> HB_ARCHITECTURE=win
  • 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*())
    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)


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 )
  • - dded 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>] ) -> <lSuccess>
    - 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>
  • 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.
  • Fixed TBROWSE() 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).
  • 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().

Contrib
  • 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.
  • Added hbcrypt, hbssl and rddsql (with mysql, pgsql, fbsql plugins) to contribs.
  • hbct windowing extended with new low level API, better shadow handling.
  • gtwvg improvements. 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 message 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.

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 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.
 
 
 
 
 
  Looking for more news?
Click here for news archive...