* tests/speedtst.prg
! Fixed missing hb_progname() for non-Harbour compilers.
* include/hbextern.ch
+ Added time related new functions.
* utils/hbmk2/hbmk2.prg
+ Added -runflag: option to pass flags to target executable.
+ Started -inc (incremental link) support. It's very early
stage, don't expect it to work yet and please don't report
any problems with this feature yet.
* source/vm/asort.c
! Fixed to return Clipper compatible results when non-logical
non-numeric value is returned from ASORT() codeblock.
* utils/hbtest/rt_array.prg
* Cleaned ASORT() tests when sorting block returns constant value.
Now Clipper results aren't bent anymore, instead I've added
different expected results for Harbour and Clipper. The
difference is due to different sorting algorithms used,
here the point is to get similar *pattern* for different
invalid values.
* source/rtl/philes.c
% HB_FGETDATETIME(): Removed double call to hb_stortdt().
* contrib/hbqt/tests/hbqt.hbp
* Removed extra line at EOL.
* contrib/gtqtc/tests/hbqt.hbp
! Removed environment dependent 'libspath=' line.
Please don't add such path to Harbour SVN, since these
can differ from system to system and is also non-portable.
The correct name of the directive is: 'libpaths='.
* contrib/gtqtc/Makefile
% Removed double SVN ID.
This file needs to be updated according to hbqt latest
Makefile portability changes.
* contrib/rddads/ads1.c
* Minor formatting.
* tests/bnch_win.bat
* tests/speedtst.prg
+ Added --stdout option to restore old feature to redirect output
to a file. Needed for bnch_win.bat.
+ In normal mode output will be saved in a file with the same name
of the executable with .txt extension. Makes it easier to make
side-by-side tests.
! Fixed SVN EOL.
* INSTALL
* external/Makefile
+ external/libhpdf/*
+ external/libpng/*
+ Added libharu and libpng to Harbour repository.
Now it's possible to use libhpdf as static lib on all
platforms. This is useful because this lib isn't yet part
of Linux distros.
libpng is only built for win/dos/os2 platforms.
It's possible to override libpng location by using
HB_INC_LIBPNG envvar.
* contrib/hbhpdf/Makefile
+ Look for libharu headers in /external dir.
* external/sqlite3/Makefile
- Disabled for bcc. Latest sqlite3 version breaks with this compiler:
---
Error E2293 ../../sqlite3.c 29156: ) expected in function winCurrentTime
Warning W8013 ../../sqlite3.c 29157: Possible use of 'timeW' before definition in function winCurrentTime
Error E2379 ../../sqlite3.c 29157: Statement missing ; in function winCurrentTime
Error E2379 ../../sqlite3.c 29158: Statement missing ; in function winCurrentTime
Error E2379 ../../sqlite3.c 29160: Statement missing ; in function winCurrentTime
Error E2293 ../../sqlite3.c 29161: ) expected in function winCurrentTime
Error E2379 ../../sqlite3.c 29162: Statement missing ; in function winCurrentTime
Error E2293 ../../sqlite3.c 29163: ) expected in function winCurrentTime
Warning W8057 ../../sqlite3.c 29171: Parameter 'prNow' is never used in function winCurrentTime
*** 7 errors in Compile ***
---
bcc users can report this problem here:
http://www.sqlite.org/cvstrac/tktnew
+ tests/bnch_win.bat
- tests/bnchmark
* Moved bnch_win.bat to tests.
* harbour/tests/speedtst.prg
* redirect output to file using SET ALTERNATE ... instead of stdout()
* harbour/contrib/hbole/olecore.c
* updated to compile with C and C++ OLE interface.
Please make some tests with different compilers.
* tests/testhtml.prg
* Update by Vailton Renato applied.
* INSTALL
* Minor formatting.
* bin/postinst.bat
+ Minor cleanup to creation of hbrun/hbtest dll versions.
(now it's more difficult to mislead it by already existing
foreign .dlls)
* contrib/hbqt/Makefile
* contrib/hbapollo/Makefile
- Disabled for mingw64.
* contrib/rddads/rddads.h
+ Added workaround to compile under mingw64.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
! Fixed to _not_ override _WIN32_IE. Overriding these version
numbers is generally a very bad idea. Instead the code should
adapt to whatever values are defined by system headers.
This fixes most mingw64 errors. Please test other compilers.
* contrib/xhb/hbxml.c
* contrib/hbfimage/fi_winfu.c
* contrib/hbwin/wapi_commctrl.c
! Pointer/handle to integer conversion.
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgwin.c
! Fixed NULL used instead of 0.
! Fixed ISNIL() usage. GTWVG code is full of ISNIL() macros,
which makes the code prone to GPFs and other unexpected
behaviour when wrong type is passed. The solution is to
change all these to type specific IS*() macros.
; TOFIX: (core and all contribs)
C:/DOCUME~1/vszakats/LOCALS~1/Temp/ccVcE53g.s: Assembler messages:
C:/DOCUME~1/vszakats/LOCALS~1/Temp/ccVcE53g.s:20: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression
In these files:
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../hvm.c -ohvm.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../arrays.c -oarrays.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../asort.c -oasort.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../classes.c -oclasses.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../cmdarg.c -ocmdarg.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../debug.c -odebug.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../dynlibhb.c -odynlibhb.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../dynsym.c -odynsym.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../codebloc.c -ocodebloc.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../estack.c -oestack.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../eval.c -oeval.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../evalhb.c -oevalhb.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../extend.c -oextend.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../fm.c -ofm.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../garbage.c -ogarbage.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../hashes.c -ohashes.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../hashfunc.c -ohashfunc.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../itemapi.c -oitemapi.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../macro.c -omacro.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../memvars.c -omemvars.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../pcount.c -opcount.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../proc.c -oproc.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../pvalue.c -opvalue.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../runner.c -orunner.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../set.c -oset.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_MT_VM -c ../../../thread.c -othread.o
x86_64-pc-mingw32-gcc -I. -I../../../../../include -Wall -W -O3 -fomit-frame-pointer -DHB_FM_STATISTICS -DHB_MT_VM -c ../../../fm.c -ofm.o
../../dbfntx1.c: In function 'hb_ntxTagHeaderCheck':
../../dbfntx1.c:1054: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1054: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1055: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxTagHeaderCheck':
../../dbfnsx1.c:1282: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1284: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1285: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxPageFree':
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1573: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxPageNew':
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1622: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../hb_btree.c: In function 'StackSkip':
../../hb_btree.c:643: warning: cast from pointer to integer of different size
../../hb_btree.c: In function 'Grow':
../../hb_btree.c:739: warning: cast from pointer to integer of different size
../../getenvrn.c: In function 'HB_FUN_FT_GETE':
../../getenvrn.c:178: warning: implicit declaration of function 'GetEnvironmentStrings'
../../getenvrn.c:178: warning: initialization makes pointer from integer without a cast
../../win_dll.c: In function 'DllExec':
../../win_dll.c:509: warning: cast from pointer to integer of different size
../../win_dll.c:603: warning: cast to pointer from integer of different size
../../win_dll.c:672: warning: cast to pointer from integer of different size
../../win_dll.c:689: warning: cast to pointer from integer of different size
../../hbserv.c: In function 's_serviceSetHBSig':
../../hbserv.c:638: warning: passing argument 1 of 'SetUnhandledExceptionFilter' from incompatible pointer type
../../firebird.c: In function 'HB_FUN_FBCREATEDB':
../../firebird.c:87: warning: initialization makes integer from pointer without a cast
../../firebird.c:88: warning: initialization makes integer from pointer without a cast
../../firebird.c: In function 'HB_FUN_FBCONNECT':
../../firebird.c:115: warning: initialization makes integer from pointer without a cast
../../firebird.c:143: warning: cast to pointer from integer of different size
../../firebird.c: In function 'HB_FUN_FBCLOSE':
../../firebird.c:149: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBSTARTTRANSACTION':
../../firebird.c:172: warning: cast from pointer to integer of different size
../../firebird.c:173: warning: initialization makes integer from pointer without a cast
../../firebird.c:179: warning: cast to pointer from integer of different size
../../firebird.c: In function 'HB_FUN_FBCOMMIT':
../../firebird.c:184: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBROLLBACK':
../../firebird.c:195: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBEXECUTE':
../../firebird.c:206: warning: cast from pointer to integer of different size
../../firebird.c:207: warning: initialization makes integer from pointer without a cast
../../firebird.c:215: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBQUERY':
../../firebird.c:249: warning: cast from pointer to integer of different size
../../firebird.c:250: warning: initialization makes integer from pointer without a cast
../../firebird.c:253: warning: initialization makes integer from pointer without a cast
../../firebird.c:270: warning: cast from pointer to integer of different size
../../firebird.c:375: warning: cast to pointer from integer of different size
../../firebird.c:379: warning: cast to pointer from integer of different size
../../firebird.c: In function 'HB_FUN_FBFETCH':
../../firebird.c:395: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBFREE':
../../firebird.c:419: warning: cast from pointer to integer of different size
../../firebird.c:421: warning: cast from pointer to integer of different size
../../firebird.c: In function 'HB_FUN_FBGETBLOB':
../../firebird.c:613: warning: cast from pointer to integer of different size
../../firebird.c:614: warning: initialization makes integer from pointer without a cast
../../firebird.c:615: warning: initialization makes integer from pointer without a cast
../../firebird.c:624: warning: cast from pointer to integer of different size
../../fbirddd.c: In function 'fbConnect':
../../fbirddd.c:164: warning: initialization makes integer from pointer without a cast
../../fbirddd.c:192: warning: cast to pointer from integer of different size
../../fbirddd.c: In function 'fbOpen':
../../fbirddd.c:217: warning: initialization makes integer from pointer without a cast
../../fbirddd.c:218: warning: initialization makes integer from pointer without a cast
../../fbirddd.c:409: warning: assignment makes pointer from integer without a cast
../../fbirddd.c:410: warning: assignment makes pointer from integer without a cast
../../fbirddd.c: In function 'fbClose':
../../fbirddd.c:446: warning: passing argument 2 of 'isc_dsql_free_statement' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:629: note: expected 'isc_stmt_handle *' but argument is of type 'void **'
../../fbirddd.c:451: warning: passing argument 2 of 'isc_rollback_transaction' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:780: note: expected 'isc_tr_handle *' but argument is of type 'void **'
../../fbirddd.c: In function 'fbGoTo':
../../fbirddd.c:469: warning: passing argument 2 of 'isc_dsql_fetch' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:622: note: expected 'isc_stmt_handle *' but argument is of type 'void **'
../../fbirddd.c:531: warning: passing argument 2 of 'isc_dsql_free_statement' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:629: note: expected 'isc_stmt_handle *' but argument is of type 'void **'
../../fbirddd.c:538: warning: passing argument 2 of 'isc_commit_transaction' from incompatible pointer type
c:/devl/Firebird-2.1.1/include/ibase.h:524: note: expected 'isc_tr_handle *' but argument is of type 'void **'
* harbour/tests/speedtst.prg
* simplified xHarbour MT test - use mutexes as internal thread IDs
as workarounds for race conditions in xHarbour .prg MT API.
* harbour/include/hbclass.ch
+ added support for xBase++ method code declaration by
METHOD <clasName>:<methodName>[ ( <parameters,...> ) ]
f.e.:
METHOD TBrowse:Configure( nMode )
* harbour/source/rtl/tthreadx.prg
* harbour/source/rtl/thfuncx.prg
! fixed 0 timeout parameter in some xBase++ compatible functions
In xBase++ timeout 0 means wait forever
* harbour/tests/speedtst.prg
* update to compile with MT support using xBase++ MT .prg API.
I tested it only using Harbour by compiling this code with
-D__XPP__ macro and it works using only xBase++ MT .prg API
we are emulating.
Please make some tests with real xBase++ compiler.
* tests/bnchmark/bnch_win.bat
+ Added option to override benchmark program name, so now
it can be used with customized speedtst versions or other
benchmark apps.
+ Added HB_CMP_FLAGS envvar to define common compilation flags.
+ Now echoing all benchmark settings to output.
* config/win/icc.cf
+ Added -nologo.
* Changed -W4 to -W3, as -W3 is really verbose in this compiler.
* INSTALL
* bin/hb-mkdyn.bat
* utils/hbmk2/hbmk2.prg
+ config/win/iccia64.cf
+ Added Intel(R) C++ Compiler IA64 support.
All Harbour libs (including contribs) compiled successfully,
but I couldn't try linking any executables.
; TODO: Add processor information to appropriate places into
Harbour. Currently we have only bit width and endianness,
but no actual CPU family info. CPU instruction families
Harbour can currently be built on out of the box:
x86, amd64, IA64, PPC, PPC64, ARM.
* tests/bnchmark
+ tests/bnchmark/bnch_win.bat
+ Added speedtst comparison tool, featuring:
- CPU + physical memory info dump from WMI
- Tasklist before and after test runs
- Harbour /build info included in output
- Complete dump of commands executed, hbmk2 output
- Dir listing of tested .exes
- All tests repeated three times by default (configurable)
- 8 slots maximum to compare different speedtst scenarios
- By default it will run -st vs. -mt tests.
; Please read the comments in the file for usage instructions.
Here's an example for parameter setup:
--
set PATH=C:\devl\MinGW-432\bin;%PATH%
set HB_BENCH_RUNS=3
set HB_RUN_FLAGS=--exclude=030
set HB_CMP_FLAGS_1=-gc2
set HB_CMP_FLAGS_2=-gc3
call bnch_win.bat > results.txt 2>&1
--
* config/rules.cf
+ Restored -ko flag. Thanks Mindaugas for analysing test result.
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/odbc.c
* Formatting + minor cleanups.
* harbour/tests/speedtst.prg
+ added new tests of dynamic code blocks performance
* modified to compile by __XPP__ and __CLIP__ - now for single
thread only
* tests/ac_test2.prg
* Updated.
* source/rtl/achoice.prg
! Fixed to not call user func in AC_NOITEM mode.
! Added more visual corrections for better CA-Cl*pper compatibility.
; Thanks to Vladislav Lavrecky for the above.
* source/rtl/achoice.prg
* tests/ac_test2.prg
! ACHOICE() made more Clipper compatible. Still not fully, pls
continue Clipper/Harbour tests with updated ac_test2.prg.
* config/win/bcc32.cf
! Fixed to use response files with tlib, to avoid command line
length limits on some systems.
- tests/run_prg.bat
+ tests/run.bat
- tests/run_prg_all.bat
+ tests/run_all.bat
* Renamed to short name.
* harbour/include/hbgtinfo.ch
+ added HB_GTI_FONTSEL
* harbour/source/rtl/gtxwc/gtxwc.c
+ added support for HB_GTI_FONTSEL
+ added support for HB_GTI_PALETTE
+ harbour/tests/gtxfnt.prg
+ added small demonstration/test code for HB_GTI_FONTSEL
and XWindow GTs
* harbour/source/rtl/hbproces.c
* replaced execv() with execvp() in *nix builds
- tests/hbmk_gnu.bat
- Removed.
* contrib/examples/uhttpd/hbmk.bat
* contrib/examples/dbu/hbmk.bat
* contrib/examples/rl/hbmk.bat
* Made them compatible with Win9x/NT systems again.
* source/lang/msg_tpl.c
+ Added NOTE about date format.
* source/lang/msgbe866.c
* source/lang/msgbewin.c
* source/lang/msgbg866.c
* source/lang/msgbgiso.c
* source/lang/msgbgmik.c
* source/lang/msgbgwin.c
* source/lang/msgit.c
* source/lang/msgnl.c
* source/lang/msgsl437.c
* source/lang/msgsl852.c
* source/lang/msgsliso.c
* source/lang/msgslwin.c
! Fixed date formats to only contain YYYY MM and DD.
Plus the format itself corrected in a few places.
* utils/hbmk/hbmk.prg
+ Added TODO
% Added ANNOUNCE HB_GTSYS / REQUEST HB_GT_STD_DEFAULT.
Since this tools doesn't need anything fullscreen, and
this way it's faster smaller, yet portable.
* ChangeLog
* Few old TODO/TOFIX statuses updated.
* utils/hbmk/hbmk.prg
+ Added -strip/nostrip switch and implemented for GCC/GPP.
+ Added -trace switch to see executed commands.
+ Added negative switches: -std, -st, -nodebug
+ Added detection whether Harbour is installed in default system
locations on *NIX systems. If it is, turn on shared libraries
by default for all *NIX systems.
+ Added support for GT selection with -gt??? switch.
(using .prg method, not .c as in hbmk bash script)
+ Added support for linux/gpp.
; NOTE: Some things still missing:
- details of *NIX stuff, systems libs, switches,
etc, etc.
- -fullstatic not yet supported.
- fmstat/nofmstat. It would be good to find a
more easily manageable way to influence that.
Current one is make system dependent and a bit hackish.
- handling 3rd party libs. These should be supported
by supplying proper parameter, and we can provide
example scripts for these libs. Hard-wiring them
into core Harbour is quite dangerous.
- "MAIN" function override. I'd rather leave this out,
and clear up the situation with entry procs.
- gtsln and gtcrs support.
- Watcom, OS/2, *NIX not tested.
- Built-in support for our contribs. For clear
separation of components contribs shouldn't be
referred to in this core component.
- Filtering foreign system libs passed on the command
line for platforms not needing them. The goal is to
be able to use as simple and _portable_ hbmk command
lines as possible.
- Support for POCC, DM.
; TODO:
- Switch to portable command lines in hbmk.bat files.
(Win9x will be supported again).
- Remove bin/hbmk*.bat, bin/hbmk*.cmd, util/hbmake/*.
- Cleanup on variable names in hbmk.prg.
* tests/testid.prg
* Minor cleanup.
* include/hbextern.ch
* source/rtl/seconds.c
+ implemented hb_milliseconds(). This function returns time value
from some moment in the past (not midnigth!). It does not start
to cound from zero in midnight, thus, can be safetly used to
measure time intervals.
+ tests/ticktime.c
+ Added nice test for hb_milliseconds().
Results on WinXP:
Ticks per second: 63.595
Min/avg/max interval (ms): 15.000 / 15.724 / 47.000
Loops per tick: 13035.09
Results on openSUSE on VirtualBox on WinXP:
Ticks per second: 384306.138
Min/avg/max interval (ms): 0.001 / 0.003 / 11.112
Loops per tick: 1.04
* harbour/source/common/expropt1.c
* harbour/source/common/expropt2.c
! fixed wrongly modified expression during optimization for
( <numConst> / 0.0 )
* cleaned bDec/bWidth updating in compile time optimizations
* harbour/tests/speedtst.prg
! fixed possible race condition in initialization
+ added set workarea private for xHarbour builds - thanks to Phil
* harbour/doc/cmpopt.txt
* small cleanup
* harbour/include/hbvmpub.h
* harbour/source/vm/hvm.c
% some optimizations mostly for MT mode or compilers which do
not support function autoinline optimization
* harbour/include/hbsetup.h
* temporary disabled noreturn function attributes - we have some
code which puts references to some functions after hb_errInternal()
call to force link bindings which is fully optimized if hb_errInternal
is declared with noreturn attribute so we cannot use it as long as we
will not clean them.
* harbour/tests/speedtst.prg
* build default xHarbour binaries without support.
xHarbour needs separated version for MT and ST mode
because standard MT functions are not available in
ST libraries.
* 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.
* 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/tests/wcecon.prg
! added missing REQUEST DBFCDX
* harbour/contrib/rddsql/Makefile
! added missing include $(TOP)$(ROOT)config/lib.cf
* harbour/contrib/rddsql/hbsqldd.h
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/mysqldd.c
* added missing const to some char * parameters/members
; added note about using sizeof() in preprocesor conditional directives
* harbour/contrib/rddsql/sqlmix.c
! fixed printf() format
TOFIX for author:
mysqldd.c:258: warning: ‘pItemEof’ may be used uninitialized in this function
sqlbase.c:509: warning: comparison of unsigned expression < 0 is always false
Mindaugas can you look at it?
* tests/db_brows.prg
* contrib/hbmysql/tmysql.prg
* contrib/hbnf/miltime.prg
* contrib/hbnf/mouse1.prg
* contrib/hbnf/sleep.prg
* contrib/hbnf/d2e.prg
* contrib/hbnf/easter.prg
* '&&' comments changed to '//' for all Harbour SVN.
* contrib/gtwvg/wvgclass.prg
* source/rdd/hbsix/sxcompat.prg
! Fixed '&&' being used instead of '.AND.' in code.
; NOTE: This '&&' comment compatibility is a lot more
dangerous than it's useful. It'd vote for
a compiler warnings switch for any of it's
occurences.
* source/rtl/tbcolumn.prg
* source/rtl/tget.prg
* source/rtl/tbrowse.prg
* contrib/xhb/hbcompat.ch
! Fixed '&&' being used instead of '.AND.' in #ifs.
* source/rdd/hbsix/sxini.prg
* source/rdd/hbsix/sxcompat.prg
* source/rdd/hbsix/sxtrig.prg
* 'end' -> 'endswitch'
% 'ValType() == "x"' -> 'IS*()'
; TODO: Reformat to Harbour standards.
* harbour/rtl/gtwvt/gtwvt.h
+ Added <ResizeMode> member to HB_GTWVT
* harbour/include/hbgtinfo.ch
+ Added HB_GTI_RESIZEMODE
+ Added HB_GTI_RESIZEMODE_FONT
+ Added HB_GTI_RESIZEMODE_ROWS
* harbour/include/inkey.ch
+ Added K_HB_RESIZE 1101
* harbour/rtl/gtwvt/gtwvt.c
! Updated to accomodate HB_GTI_RESIZEMODE.
* harbour/rtl/hbgtcore.c
! static BOOL hb_gt_def_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
case HB_GTI_RESIZEMODE:
pInfo->pResult = hb_itemPutNInt( pInfo->pResult, HB_GTI_RESIZEMODE_FONT );
break;
* harbour/tests/wvtext.prg
! Updated to demonstrate K_HB_RESIZE event in navigation loop.
; Odd numbered windows will have HB_GTI_RESIZEMODE_ROWS mode
Even numbered windows will have HB_GTI_RESIZEMODE_FONT mode.
Open two or more browsers to see the effects.
; To activate HB_GTI_RESIZEMODE_ROWS mode call
hb_gtInfo( HB_GTI_RESIZEMODE, HB_GTI_RESIZEMODE_ROWS )
and whenever window will be resized you can retrieve it via
if inkey() == K_HB_RESIZE
// Reconfigure browser/your screen accordingly
endif
* harbour/source/rtl/gtxwc/gtxwc.c
* added hack for problems with some XLIB versions in heavy stress
MT tests
* harbour/include/hbapigt.h
* harbour/source/vm/thread.c
* added parameter to hb_gtAlloc() C function
* harbour/include/hbapigt.h
* harbour/source/rtl/hbgtcore.c
+ added hb_gtCreate() and hb_gtSwap() C functions
+ added new .prg functions:
HB_GTCREATE( <cGtName> ) -> <pGT>
HB_GTSELECT( <pGT> ) -> <pPrevGT>
Using this functions is possible to create many console window
if GT supports such possibilities (f.e. GTXWC or GTWVT) even in
single thread programs and switch between them.
* harbour/source/rtl/box.c
! fixed one of recent DISPBOX() modifications - it should use:
hb_gtBoxEx() instead of hb_gtDrawBox() to set cursor position.
+ harbour/tests/gtwin.prg
+ added demonstration/test code for using more then one console window
also in single thread programs.
* tests/rto_get.prg
+ Added tests for assigments as function calls (o:col( 10 )
and some for assigments as _function calls (o:_col( 10 )).
* bin/hbmk.bat
* make_vc.mak
- Removed /subsystem:console from LDFLAGS. This seems to
be the default so it's not necessary.
* bin/hbmk.bat
+ Added L_USR support for MSVC. Now it's possible to
build GUI (and GTWVT) programs using
'set L_USR=/subsystem:WINDOWS' switch.
* contrib/gtwvg/tests/bld_vc.bat
! Using above method to make it work with MSVC.
* harbour/tests/wvtext.prg
Updated to demonstrate multi-windows GT capabilities.
A REMINDER : This development alone places Harbour much higher than
so many dialects. Mind-blowing feature. I had ever longed
for this functionality since I started with Xbase++.
But the ease of use of a MW-GT in Harbour is far superior
than in Xbase++. Spread this word. I am sure this feature
alone is going to add a handsome value to my applications.
I hope you all will be benefitted.
I have no word of appreciation for Przemyslaw Czerpak as
whatever I will say will fall short of weight. So...
* harbour/include/hbstack.h
* harbour/include/hbgtcore.h
* harbour/include/hbthread.h
* harbour/include/hbapigt.h
* harbour/source/vm/estack.c
* harbour/source/vm/hvm.c
* harbour/source/vm/thread.c
* harbour/source/rtl/hbgtcore.c
+ added support for optional allocating independent console window by
each thread. By default new thread inherits console Window from
parent thread. But each thread can allocate its own console window
by calling hb_gtReload( <cGtName> ) function, f.e. by:
hb_gtReload( hb_gtVersion() )
If GT driver supports such functionality then new it will allocate
new console windows.
Each console window has reference counter which is increased when
new thread starts and decreased when hb_gtReload() is executed or
thread terminates. When counter reach zero give console window is
destroyed.
* harbour/source/rtl/gtwvt/gtwvt.c
! use SendNotifyMessage() instead of SendMessage() to not block
threads which inherited GT from parent thread. Why non of MS-Win
users reported this problem?
+ added reference counter to window class for multi GT support
+ harbour/tests/mt/mttest10.prg
+ added demonstration/test code for using independent console window
in different threads. It needs GT driver which supports such
functionality, f.e GTXWC in *nixes or GTWVT in MS-Windows
* harbour/tests/mt/mttest09.prg
! fixed typo in comment