Harbour is a 100% clipper compatible xbase language compiler. Another valid alternative for this compiler is xHarbour.
Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. See below for download link(s).
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 |
This work is licensed under a Creative Commons Attribution 4.0 International License.
Add new comment