* harbour/include/hbapi.h
* harbour/include/hbstack.h
* harbour/source/vm/estack.c
* harbour/source/vm/fm.c
+ added support for thread local memory allocators by using MSPACE
mechanism in DLALLOC.
It can be enabled by compiling Harbour with HB_FM_DLMT_ALLOC macro.
By default up to 16 (HB_MSPACE_COUNT macro) independent memory
allocators is dynamically created for new threads. When more threads
is used then allocators are shared between them and HVM tries to
balance used allocators to reduce number of threads using the
same allocator.
It should give noticeable scalability improvement in some OS-es
where default memory manages has pure MT performance.
Please try to compiler speedtst.prg with Harbour compiled with
and without HB_FM_DLMT_ALLOC and compare results in this test:
speedtst --thread=2 --scale
using real multiCPU machine.
* harbour/source/vm/dlmalloc.c
* pacified warning when FOOTERS are enabled
* harbour/source/vm/garbage.c
* cleanup comment
* bin/hb-mkdyn.sh
* bin/hb-func.sh
+ Added support for .dll creation and hbmk for mingw64.
* Synced Windows system liblist for dll creation.
* wsock32 -> ws2_32
* bin/hb-mkdyn.bat
! wsock32 -> ws2_32
* contrib/gtwvg/gtwvg.c
! Fixed embedded ANSI C comments.
* contrib/gtwvg/wvgsink.c
! Fixed a few non-ANSI C comments.
* There is more, see: 'grep // *.c'
* 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.
* utils/hbmk2/hbmk2.prg
+ Added autofilling CCPREFIX on Windows platform when
-comp=mingw64 or -comp=mingwce is specified.
+ Added autofilling CCPATH on Windows platform when
-comp=mingw64 or -comp=mingwce is specified and
corresponding embedded MinGW installations are found in
Harbour directory.
; IOW this means that it's now possible to create a unified,
self-contained install kit, which is able to easily build
x64, WinCE and x86 executables with command below:
> hbmk2 test.prg => test.exe for x86
> hbmk2 -comp=mingw64 a.prg => test.exe for x64
> hbmk2 -comp=mingwce a.prg => test.exe for ARM/WinCE
Can it be any simpler than that?
My sample install .zip is 322MB and it contains Harbour libs
for msvc, mingw, mingw64, mingwce, bcc, owatcom and contains
all required MinGW files.
It will be even easier if we add CPU platform identifiers
to Harbour.
* config/dos/owatcom.cf
* config/win/owatcom.cf
* config/linux/owatcom.cf
* config/os2/owatcom.cf
+ Added HB_BUILD_MODE=c/cpp support for Watcom compilers.
+ Tweaked optimization options to work with wcc386 (C mode compiler).
+ Tweaked C make rule for wcc386 (only accepts backslashes).
; So now sqlite3 will be forced to C mode and will compile.
; TOFIX: .cpp file compilation will be broken in forced C mode,
so more cleanup will be needed here if we want to allow
all combinations.
* harbour/contrib/examples/uhttpd/uhttpd.prg
+ added #define FIXED_THREADS that disable (temporarly) dynamic threads
support, until I will find a correct way to implement.
* changed default GT in Linux from GTXWC to GTTRM
+ added Actions and Handlers support
rewrote handlers part, now separated and similar to Apache
* changed internal ScripAlias Hash name from Aliases to ScriptAliases
+ added Alias support
+ added PATH_INFO and PATH_TRANSLATED support
this means that parts of urls longer than the real file url are passed to
file as parameters. Actually valid for any file.
* fixed CGIKill() to correct handle killing of not responding CGI apps
* formatting and minor changes
; NOTE: not tested under Linux, more tests to do
; TOFIX: in case of error of cgi executables error output is missing,
this I have to check better.
* harbour/contrib/examples/uhttpd/uhttpd.ini
* changed [ALIASES] section name to [SCRIPTALIASES]
+ added [ALIASES] correct section
* harbour/contrib/examples/uhttpd/session.prg
+ added retrying in case of error in reading session files.
to check it better
; NOTE: still work in progress.
Any comments and suggestions are welcome
* external/sqlite3/Makefile
* Don't build it for linux and darwin.
* contrib/hbsqlit3/Makefile
* Changed to plain standard external dependency search method.
+ Added searching in local sqlite3 copy for win and os2.
* harbour/include/hbvm.h
* harbour/source/vm/hvm.c
+ added void hb_vmAtQuit( HB_INIT_FUNC pFunc, void * cargo );
AtQuit functions are executed after deallocating all HVM items and
disabling .prg destructors. They can make final cleanup at C level
but should not reenter HVM.
* harbour/contrib/hbole/oleinit.c
* use hb_vmAtQuit() instead of hb_vmAtExit() - it resolves the problem
with executing destructors to OLE objects after closing OLE connection.
* harbour/contrib/hbole/olecore.c
+ added translation for VT_R4 and VT_CY values.
! fixed MT support by moving OLE error code to TSD
* utils/hbmk2/hbmk2.prg
+ Added autodetection of lib/<arch>/<comp> lib dir. This
makes it possible to use hbmk2 in multicompiler scenarios
without 'make install'ing Harbour, or even multicompiler
end-user configurations for any compiler regardless of
lib format and naming.
+ contrib/hbqt/tests/hbqt.hbp
+ Added .hbp file for hbqt.
* contrib/hbodbc/odbc.c
* Further type cleanup.
* Formatting.
* contrib/hbole/tests/testole.prg
* Minor cleanups.
* contrib/hbole/olecore.c
* Using hb_itemGetCPtr2() instead of hb_itemGetCLPtr()
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winuser.c
! WinCE fixes.
* Formatting.
* contrib/examples/hbwhat/tests/hbwhat.hbp
- Removed no longer necessary Windows libs.
* 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.
* utils/hbmk2/hbmk2.prg
* contrib/hbole/tests/hbole.hbp
* contrib/gtwvg/tests/gtwvg.hbp
* contrib/hbwin/tests/hbwin.hbp
- utils/hbmk2/examples/winapi.hbp
+ Added all important Windows system libs to all
win compilers in hbmk2.
- Removed above libs from .hbp files.
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/browodbc.prg
* contrib/hbodbc/odbc.c
* Further cleanups.
SETNUMLEN() -> SQLNUMSETLEN(). This should probably be a core
function by the name HB_NUMSETLEN().
* contrib/hbole/tests/testole.prg
* contrib/hbole/tests/sample.odt
+ Updated to latest hbole code.
; TOFIX: hbole code doesn't compile with MSVC in default C++
even if #define CINTERFACE 1 is enabled.
; TOFIX: OpenOffice example fails at some point. It probably
needs array support.
* contrib/hbole/olecore.c
* Minor formatting.
* contrib/hbqt/hbqt_qabstractitemview.cpp
! Fixed backslash to forward slash.
* contrib/hbct/tests/ctwtest.prg
* contrib/hbnf/dispmsg.prg
* contrib/hbnf/pegs.prg
* contrib/hbnf/tbwhile.prg
* contrib/hbnf/calendar.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/examples/terminal/trm_server.prg
* contrib/examples/terminal/trm_client.prg
! Using manifest constants.
* contrib/hbmysql/mysql.c
* contrib/hbodbc/odbc.c
* Minor cleanup.
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/testodbc.prg
* Minor.
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/testodbc.prg
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/odbc.c
* contrib/hbodbc/Makefile
+ Platform protection moved to Makefile level.
+ Lots of type cleanups to use SQL types rather than Windows types.
+ Lots of type cleanups to use large integers where needed.
* Synced Harbour integers API calls with SQL integer sizes.
+ Cleaned __DMC__ hacks.
! Fixed to compile with ODBCVER == 0x0100 and ODBCVER == 0x0200.
* Update Harbour level function names as follows. Old names are
still available, you can disabled them by defining HB_ODBC_LEGACY_LEVEL_OFF macro:
SQLALLOCEN => SQLALLOCENV
SQLALLOCCO => SQLALLOCCONNECT
SQLDRIVERC => SQLDRIVERCONNECT
SQLDISCONN => SQLDISCONNECT
SQLFREECON => SQLFREECONNECT
SQLALLOCST => SQLALLOCSTMT
SQLFREESTM => SQLFREESTMT
SQLEXECDIR => SQLEXECDIRECT
SQLNUMRES => SQLNUMRESULTCOLS
SQLDESCRIB => SQLDESCRIBECOL
SQLEXTENDE => SQLEXTENDEDFETCH
SQLFETCHSC => SQLFETCHSCROLL
SQLROWCOUN => SQLROWCOUNT
SQLSETCONNECTOPTION => SQLSETCONNECTATTR
SQLSETSTMTOPTION => SQLSETSTMTATTR
SQLGETCONNECTOPTION => SQLGETCONNECTATTR
SQLGETSTMTOPTION => SQLGETSTMTATTR
* contrib/hbmysql/mysql.c
% Replaced Windows headers with winsock2.h which seems to
be required by mysql headers.
* contrib/hbfbird/firebird.c
* contrib/rddsql/sqlmix.c
* contrib/hbssl/sslrand.c
% Removed Windows headers.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
+ Readded ugly workaround for mingw64.
* harbour/contrib/hbole/olecore.c
! added some very basic protection against possible GPF if wrong
parameters are passed to some OLE*() functions
+ added timestamp support
* minor formatting and some cleanups in casting
* INSTALL
- contrib/hbapollo
* contrib/Makefile
+ contrib/examples/hbapollo
* Moved hbapollo to examples.
; TODO: This, hbwhat, hbgf and hbsqlit2 should be IMO permanently
removed from repository. If there are no objections, I'll
do it next week.
* harbour/contrib/hbole/olecore.c
* added two notes with default defines for windows header files
! small correction and fixes in casting
; Now this code can be compiled by MinGW and OpenWatcom if we uncomment
CINTERFACE setting. Anyhow I'd prefer to use C++ friendly declarations.
Mindaugas, this code uses static variable: s_lOleError.
Can we make it thread local? It should resolve the problem with using
this code in MT programs.
The next thing is the place where OLE is uninitialized.
It's done by hb_vmAtExit(). In some cases it may be problematic
because after hb_vmAtExit() some .prg destructors can be executed
yet, f.e. when public variables are destroyed. The HB_OLEAUTO()
objects uses destructor which can be activated after executing
hb_ole_exit(). To resolve this problem you can replicate the trick
with pointer variable stored inside static .prg var I added to old
OLE code in contrib/whbwin/ (.prg destructors are disabled just
before releasing static variables). It's not elegant solution
but it will work. Probably we should think about two levels of
exit procedures. The second one can be used only for pure C code
which does not try to reenter HVM.
* harbour/contrib/gtwvg/gtwvg.h
! moved _WIN32_IE declaration before #include ... to fix MinGW32
compilation
* doc/en/Makefile
* doc/Makefile
- doc/en
+ doc/en-EN
* Renamed.
+ man
+ man/nfdoc
+ man/manpages
+ Added new dir for Harbour manuals.
; TODO: Move files here from /doc.
* contrib/hbtpathy/tests/testtp.prg
* Applied update/fix by Barry Jackson.
* utils/hbmk2/hbmk2.prg
+ Added autodetection of MinGW compiler if installed in the
Harbour directory tree in the mingw dir.
This way it's possible to create a fully setup-free
install kit, which is able to produce Harbour executables
right after unzip by simply issuing command: hbmk2 hello.prg
* harbour/source/pp/ppcore.c
! fixed line number set for C preprocessor in #pragma begindump
* harbour/include/hbcomp.h
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/genc.c
* added detection of static Harbour functions in #pragma begindump
code. I do not like it because it cannot be well implemented on
other then real C compiler/preprocessor level but it's probably
better then different workarounds I see in some [x]Harbour 3-rd
party projects.
Warning this functionality is not officially supported. It's a hack
to existing #pragma begindump hack and activated only for dumped C
code. It tries to detect Harbour static functions declared by
HB_FUNC_STATIC( name ) but it does not make any real C preprocessing.
Only strips comments and strings and then looks for above statement
dividing the code to some basic tokens so it will give wrong results
for code like:
#if 0
HB_FUNC_STATIC( MYFUNC )
#else
HB_FUNC( MYFUNC )
#endif
{
hb_retc( "MyFunc" );
}
but it works correctly for simple code which does not use conditional
compilation and does not try to redefine HB_FUNC_STATIC() macro, f.e:
proc main()
? YEAR( DATE() ), MONTH( DATE() ), DAY( DATE() ), TEST()
return
#pragma begindump
#include "hbapi.h"
/* are comments stripped? If not then HB_FUNC_STATIC( DATE )
in comment can create troubles. */
// HB_FUNC_STATIC( YEAR ) just like this one in C++ comments
#define MYHB_FUNC_STATIC( fun ) #fun // to test whole word tokens
/* COMMENT */HB_FUNC_STATIC( TEST )
{
hb_retc( "HB_FUNC_STATIC( DAY )->" MYHB_FUNC_STATIC( MONTH ) );
}
#pragma enddump
Before we had wrong results for any code like:
HB_FUNC_STATIC( MYFUNC )
{
hb_retc( "MyFunc" );
}
so it's not making anything worse (I hope ;-)).
The implementation is intentionally local to -gc output to not
effect other compiler code.
- harbour/contrib/hbole/ole2.c
* harbour/contrib/hbole/oleauto.prg
+ harbour/contrib/hbole/oleinit.c
+ harbour/contrib/hbole/olecore.c
+ added my own implementation of OLE library. It is bases on old
code written by Jose F. Gimenez. Code is changed to be reentrant,
more clean, but only basic features are implemented.
* harbour/include/hbstack.h
! disabled inline assembler code to retrieve HVM stack pointer from TLS
in Win64 builds. In summary I do not even know if Win64 uses the same
memory addresses for TLS as Win32 so it's not safe to enable such code
now. Maybe in the future though I hope that new 64 bit compilers will
have fast enough native TLS support.
* 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/source/rtl/tbrowse.prg
! fixed Clipper compatibility in configure() action - it does not
set refreshAll flag and only invalidates all records
! recalculate visible columns in colorRect() method
* enabled strict Clipper compatible behavior for non character
footers and headers
* 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.
* harbour/source/vm/itemapi.c
* harbour/source/common/hbprintf.c
* use isfinite() instead of finite() in MinGW builds.
It's possible that it can resolve problems with MinGW64 builds.
* harbour/source/pp/ppcore.c
* harbour/source/common/hbdate.c
* harbour/source/macro/macrolex.c
* harbour/source/compiler/complex.c
+ added alternative support for date constant values as: d"YYYY-MM-DD"
As delimiter the following characters can be used: "-", "/", "."
Just like in t"..."