* harbour/source/vm/fm.c
+ added support for enabling/disabling memory statistic when
application starts. To enable memory statistic it's enough
to set HB_FM_STAT environment variable to non empty value.
To disable memory statistic it's enough to set HB_NO_FM_STAT
envvar. The default setting may depend on build time option.
Now is enabled when memory statistic is compiled when harbour
is created. It may not work if C compiler does not allow to
check environment variables from startup code. F.e. functions
to access environment can be also part of dynamic library
registered after harbour.dll or harbour core code startup
functions.
Viktor I would like to ask you only about one thing.
Please do not remove current support for HB_FM_STATISTICS_OFF
from GNU make builds so Harbour user can still create binaries
without any memory statistic code using -[no]fmstat switch in
hb* scripts. The above feature is only for users who need support
for enabling/disabling memory statistic to test application
if foreign environment, f.e. at client computers. Of course if
it will work with given C compiler and/or type of application
(linked dynamically or statically). Please check.
* make_b32.bat
* make_b32.mak
* make_vc.bat
* make_vc.mak
* make_gcc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
+ Added 'set HB_BUILD_OPTIM=no' option to disable
all C compiler optimization for all compilers in
non-GNU make system. This replaces old envvars
BCC_NOOPTIM and GCC_NOOPTIM and add MSVC support
for this option.
* common.mak
* Formatting.
* make_vc.mak
+ TOFIX added for the case when HB_CC_NAME is overridden
by user and MT/DLL targets are being created.
* common.mak
* source/common/hbver.c
% Minor opts.
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! fixed bug in joined leaf pages size calculation which activated
error massage enabled by HB_CDX_DBGCODE_EXT macro.
Thanks to Saulius for reporting the problem.
* source/common/hbverdsp.c
* Streamlined the /build information screen. It's now
more compact and now show if tracing is enabled. Max
symbol length got removed, ANSI C startup also, because
it needs a custom C flag anyway.
* include/hbvmpub.h
* include/hbsetup.h
* HB_SYMBOL_NAME_LEN moved away from custom setup.
This isn't an option users should normally tinker.
* tests/run_prg.bat
* Minor.
* harbour/include/hbcompdf.h
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.y
! fixed compile time warnings for __enum* messages used in
simpled code block variables inside FOR EACH statement,
* source/rtl/console.c
! Fixed __EJECT() writing an EJECT only if output device
was "PRINTER". This fixes problem reported by Ciro, and
also a very old TOFIX which was removed very long ago
by mistake. (see thread "Bug: __EJECT() (David)" on 2000-07-27)
[TOMERGE 1.0]
* source/rtl/treport.prg
! Fixed some linefeed differences.
[TOMERGE 1.0]
* source/vm/set.c
* Minor formatting.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* common.mak
+ Added generation of hbmainstd and hbmainwin libs.
* bin/hbmk.bat
+ Changed to use above libs. This also means that '-shared'
can now be used in Harbour binary distributions, too.
* bin/hbmk.bat
+ Added '-shared' support for MSVC.
! Fixed to cleanup mainstd.obj and mainwin.obj.
* ChangeLog
* Some TODO/TOFIX marked as [DONE]. One [DONE] marked
as [DONE - REOPENED].
* contrib/hbcurl/common.mak
* contrib/hbcurl/Makefile
* contrib/hbcurl/hbcurl.c
+ contrib/hbcurl/hbcurlm.c
+ Some disabled (not mainstream) functions moved to
a separate file.
* contrib/hbwin/win_prn2.c
* Minor fix in comment.
* harbour/include/hbapi.h
* harbour/source/common/hbstr.c
+ added hb_numToStr()
* harbour/source/vm/estack.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/gencc.c
* use hb_numToStr() for integer number conversions
* harbour/source/vm/dlmalloc.c
* disable #pragma warning ... in MinGW builds. If some newer MinGW
versions support it and it's useful then it can be enabled after
checking MinGW version
* include/hbmath.h
! Fixed Pelles C 5.00 not having an 'inf' (HUGE_VAL) symbol
when in -Tarm-coff (~WinCE) mode. Pelles C bug (?).
; NOTE: Now core fully compiles in WinCE mode. So we have
a new port.
; TOFIX: (this is a complete list of all Pelles C WinCE problems)
[except hbmysql errors]
--- WARNINGS
POLINK: warning: Multiple '.rdata' sections found with different flags (0x40000040 and 0xc0000040).
POLINK: warning: Multiple '.rdata' sections found with different flags (0x40000040 and 0xc0000040).
../../ctnet.c(119): warning #2027: Missing prototype for 'WNetGetLastError'.
../../ctnet.c(167): warning #2027: Missing prototype for 'WNetCancelConnection'.
../../ctnet.c(208): warning #2027: Missing prototype for 'WNetAddConnection'.
../../ctnet.c(210): warning #2027: Missing prototype for 'WNetAddConnection'.
../../ctnet.c(251): warning #2027: Missing prototype for 'WNetGetProviderName'.
../../ctnet.c(271): warning #2027: Missing prototype for 'WNetGetProviderName'.
../../disk.c(127): warning #2027: Missing prototype for 'GetDriveType'.
../../disk.c(244): warning #2027: Missing prototype for 'SetVolumeLabel'.
../../disk.c(270): warning #2027: Missing prototype for 'GetVolumeInformation'.
../../disk.c(307): warning #2027: Missing prototype for 'GetVolumeInformation'.
../../disk.c(337): warning #2027: Missing prototype for 'GetFullPathName'.
../../winapi.c(194): warning #2027: Missing prototype for 'InsertMenuItem'.
../../winapi.c(219): warning #2027: Missing prototype for 'SetMenu'.
../../getenvrn.c(177): warning #2027: Missing prototype for 'GetEnvironmentStrings'.
../../getenvrn.c(246): warning #2027: Missing prototype for 'FreeEnvironmentStrings'.
contrib\hbsqlit3\sqlite3\sqlite3.c(9936): warning #2027: Missing prototype for 'localtime'.
../../tpwin32.c(75): warning #2027: Missing prototype for 'BuildCommDCB'.
../../wincorec.c(164): warning #2027: Missing prototype for 'CreateMDIWindow'.
../../fi_winfu.c(97): warning #2027: Missing prototype for 'CreateDIBitmap'.
../../fi_winfu.c(147): warning #2027: Missing prototype for 'GetDIBits'.
../../sqlbase.c(509): warning #2130: Result of unsigned comparison is constant.
--- ERRORS
contrib\gtwvg\gtwvg.h(78): fatal error #1035: Can't find include file <olectl.h>.
../../ctnet.c(119): warning #2027: Missing prototype for 'WNetGetLastError'.
../../disk.c(129): error #2048: Undeclared identifier 'DRIVE_RAMDISK'.
../../disk.c(129): error #2045: Case label must be a constant integer expression.
../../disk.c(132): error #2048: Undeclared identifier 'DRIVE_REMOVABLE'.
../../disk.c(132): error #2045: Case label must be a constant integer expression.
../../disk.c(135): error #2048: Undeclared identifier 'DRIVE_FIXED'.
../../disk.c(135): error #2045: Case label must be a constant integer expression.
../../disk.c(138): error #2048: Undeclared identifier 'DRIVE_CDROM'.
../../disk.c(138): error #2045: Case label must be a constant integer expression.
../../disk.c(141): error #2048: Undeclared identifier 'DRIVE_REMOTE'.
../../disk.c(141): error #2045: Case label must be a constant integer expression.
../../winapi.c(70): error #2048: Undeclared identifier 'CS_OWNDC'.
../../winapi.c(75): error #2048: Undeclared identifier 'IDI_APPLICATION'.
../../winapi.c(75): error #2140: Type error in argument 2 to 'LoadIconW'; found 'int', expected 'const wchar_t *'.
../../winapi.c(181): error #2048: Undeclared identifier 'MFS_DISABLED'.
../../getenvrn.c(177): error #2168: Operands of = have incompatible types 'wchar_t *' and 'int'.
../../odbc.c(94): fatal error #1035: Can't find include file <sql.h>.
contrib\hbsqlit3\sqlite3\sqlite3.c(9936): error #2168: Operands of = have incompatible types '(incomplete) struct tm *' and 'int'.
contrib\hbsqlit3\sqlite3\sqlite3.c(9937): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(9938): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(9939): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(9940): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(9941): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(9942): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22136): error #2120: Redeclaration of 'localtime' previously declared at contrib\hbsqlit3\sqlite3\sqlite3.c(9936): found '(incomplete) struct tm * __cdecl function(const unsigned long int *)', expected 'int __cdecl function()'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22137): error #2149: Undefined size for 'y' with type '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22137): error #2149: Undefined size for 'y' with type '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22147): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22148): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22149): error #2152: Unknown field 'tm_wday' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22150): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22151): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22152): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
contrib\hbsqlit3\sqlite3\sqlite3.c(22153): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
../../win_ole.c(77): fatal error #1035: Can't find include file <olectl.h>.
../../wincorec.c(150): error #2048: Undeclared identifier 'WS_MAXIMIZE'.
../../wincorec.c(166): error #2168: Operands of = have incompatible types 'HWND' and 'int'.
C:\devl\allegro-4.2.2\include\allegro\platform\almsvc.h(23): fatal error #1035: Can't find include file <malloc.h>.
../../firebird.c(456): error #2149: Undefined size for 'times' with type '(incomplete) struct tm'.
../../firebird.c(487): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
../../firebird.c(488): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
../../firebird.c(489): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
../../firebird.c(490): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
../../firebird.c(491): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
../../firebird.c(492): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
../../firebird.c(501): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
../../firebird.c(501): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
../../firebird.c(501): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
../../firebird.c(510): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
../../firebird.c(511): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
../../firebird.c(512): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
../../fi_winfu.c(98): error #2048: Undeclared identifier 'CBM_INIT'.
../../fi_winfu.c(99): error #2168: Operands of = have incompatible types 'HBITMAP' and 'int'.
* source/vm/fm.c
! Fixed missing abort() on WinCE. (for Pelles C only, but
the fix should work for any WinCE compilers).
; TOFIX: Now the only remaining showstopper for PellesC5 WinCE
support is:
../../math.c(652): error #3120: [asm] Symbol 'inf' is undefined.
* make_vc.mak
* config/rules.cf
* config/w32/mingwce.cf
* config/w32/poccce.cf
* config/w32/msvcce.cf
* Use Harbour option -gc0 for WinCE builds.
* Use C option -O2 (instead of -O3) for MinGWCE builds.
; None of these were tested.
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurl.ch
+ Added libcurl 7.19.1 features.
% Removed hashing calls from some parts which are
only compiled for libcurl versions which don't need
hashing anyway.
* ChangeLog
* Changed CVS ID tag name in some very old entries to
avoid them being replaced by versioning system.
* make_b32.mak
* make_vc.mak
! Added hbpp.lib and hbcommon.lib to HBRUN_DLL liblist.
* include/hbapi.h
* source/vm/cmdarg.c
* source/common/hbver.c
* source/common/hbverdsp.c
* source/rtl/console.c
* source/rtl/setcolor.c
* source/rtl/setcurs.c
+ Added HB_EXPORT to some functions to make it possible
to build hbrun-dll.exe.
For other reasons, it only works if Harbour built with
set C_USR=-DHB_DYNLIB.
; TODO: Make HB_DYNLIB the default build mode, do gradual
steps to remove separate DLL building pass, and
finally to remove HB_BUILD_DLL option.
The only drawback will be about 10-100K
(currently) overhead in final executable size due
to included export table for BCC and MSVC builds.
* contrib/xhb/hboutdbg.c
! Fixed to compile without warnings and with more
consistent behavior across platforms.
* source/rtl/gtwvt/gtwvt.c
* Minor formatting.
* tests/longstr.prg
* contrib/hbole/oleauto.prg
* contrib/hbole/ole2.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
* contrib/hbgd/gdbarcod.prg
* contrib/hbgd/gdbar.prg
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
* contrib/hbvpdf/hbvpdf.prg
* contrib/examples/hbsqlit2/tests/hbsqlite.prg
* contrib/examples/hbsqlit2/TODO.txt
* contrib/examples/hbsqlit2/hbsqlit2.c
* source/debug/dbgwa.prg
* source/rtl/gtwin/gtwin.c
* source/rtl/tget.prg
* source/rtl/tgetint.prg
* source/compiler/gencobj.c
! Removed high chars from comments. This usually means
copyright holders' names. I apologize for touching
them, I also have one in mine, but it's better to
not use them in source code to avoid encoding problems.
* harbour/common.mak
* harbour/make_gcc.mak
! fixed hbtest-dll linking - the path to used harbour shared library
was hardcoded in final binaries
+ added hbrun-dll. Please update make_b32.mak and make_vc.mak
* make_vc.mak
+ Added /nxcompat linker flag for non-WinCE, non-DLL,
HB_VISUALC_VER >= 80 MSVC executables.
This should add extra safety.
* include/hbextern.ch
* source/rtl/rat.c
+ Added HB_RAT() which is similar to RAT(), but also accepts
<nStart> and <nEnd> optional paramaters, similarly to HB_AT().
; Please test.
* source/rtl/at.c
* Minor formatting.
* harbour/source/vm/memvars.c
! fixed 3 tracelog messages
* harbour/source/rtl/hbgtcore.c
* declare core method table as const
* harbour/source/compiler/gencc.c
! fixed accessing data out of buffer in string to hex conversion and
logical expression used to divide strings