* contrib/hbole/oleauto.prg
* contrib/hbole/ole2.c
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
* OLESHOWEXCEPTION() implemented on the .prg level, using
Alert() rather than MessageBox().
! All MessageBox()es converted to Alert()s.
+ Added OLEEXCEPTIONSOURCE(), OLEEXCEPTIONDESCRIPTION()
to hbole.
* source/vm/maindllp.c
! Changed MessageBox() call to internal error.
* contrib/gtwvg/gtwvg.c
* source/rtl/gtwvt/gtwvt.c
! Changed MessageBox() calls to internal error.
* contrib/gtwvg/gtwvg.c
* Internal error calls synced with GTWVT.
* source/rtl/hbgtcore.c
- Removed "Internal error" text from two internal error descriptions.
* make_vc.mak
- Removed reference to MessageBox() from comment.
; NOTE: No more MessageBox() calls in Harbour.
(except some wrappers for user .prg code)
* include/hbsetup.ch
! Removed some company names from comments.
* source/vm/extrap.c
+ Added //BATCH internal switch to indicate exception handler
to suppress the Windows exception dialog when an exception
occurs. Useful for programs running without user interaction.
NOTE: This may not be the ultimate method. If we can gather
more such situations where such "batch" mode might
be useful, we may as well implement it as a Set().
- Removed Harbour specific exception MessageBox(). Besides
having gotten rid of a MessageBox() call in core VM, Harbour now
got back the standard Windows error handling dialog, which is
more standard and easy to get by than the previous default
method, where several clicks were needed to pass through
the (sometimes hidden) popups. The details of all GPFs are
still logged into hb_out.log.
+ Removed size limit for the logged exception call stack.
* harbour/source/rdd/sdf1.c
! fixed stupid typo (missing !) in last modification which broke
SDF RDD read mode. Thanks to Marco for information and example.
* harbour/include/hbstack.h
* harbour/source/vm/estack.c
* small cleanup in used macros
* harbour/include/hbstack.h
% enable assembler inline function to access HVM thread stack pointer
without native compiler TLS support even if HB_STACK_PRELOAD is not
defined in MinGW builds. It gives some additional small speed
improvement in MT mode
* harbour/source/rtl/idle.c
* unlock HVM inside hb_releaseCPU() function
* harbour/contrib/hbwin/win_ole.c
! fixed casting and C++ compilation in some compilers
* harbour/include/Makefile
+ harbour/contrib/examples/rdddbt/hbrdddbt.h
- harbour/include/hbrdddbt.h
! moved hbrdddbt.h to correct location
* harbour/include/Makefile
! added missinf hbthread.h
* harbour/tests/rddtest/rddmktst.prg
* harbour/tests/rddtest/adscl52.prg
* harbour/tests/rddtest/adscl53.prg
* harbour/tests/rddtest/ntxcl52.prg
* harbour/tests/rddtest/ntxcl53.prg
* harbour/tests/rddtest/cdxcl52.prg
* harbour/tests/rddtest/rddtst.prg
* harbour/tests/rddtest/cdxcl53.prg
! fixed description in header I wrongly copied without updating
from other files
+ harbour/tests/hsxtest.prg
+ added test code for HiPer-SEEK indexes
* harbour/source/rtl/filesys.c
+ added new functions: hb_fsExtName(), hb_fsReadAt(), hb_fsWriteAt(),
hb_fsTruncAt() to use with shared file handles.
Please test it in other *nixes. I used pread[64]()/pwrite[64]()
POSIX functions but I do not know if they are available by default
in other supported platforms like MacOSX, BSD, HPUX, SunOS.
If not they I will have to implement some workaround.
* harbour/common.mak
* harbour/source/rtl/Makefile
* harbour/include/hbapifs.h
+ harbour/source/rtl/filebuf.c
+ added set of new file functions (hb_file*()) which are designed to
use with shared file handles and locks (buffers in the future):
hb_fileExtOpen(), hb_fileCreateTemp(), hb_fileClose(), hb_fileLock(),
hb_fileReadAt(), hb_fileWriteAt(), hb_fileTruncAt(), hb_fileSize(),
hb_fileCommit(), hb_fileHandle()
These functions operate on PHB_FILE structure instead of HB_FHANDLE.
Now in POSIX systems they share file handle between aliased or
simultaneously open by other thread work areas. It resolves the
problem with releasing all process FCNTL locks by any close()
operation even on duplicated or open() separately handle.
Now DOS deny flags emulation works in single process even if
BSD locks are disabled (non Linux *nixes).
They also keep internal file lock list what allows to synchronize
threads and aliases with file locks in POSIX systems. In the future
it will be used also for internal locking to synchronize threads
without OS level locks - pseudo exclusive mode in cloned WA.
Finally these structures will be used also for file buffers
which will be shared between aliased WA and threads.
* harbour/include/hbrdddbf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/include/hbrdddel.h
* harbour/include/hbrddsdf.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/hsx/hsx.c
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* harbour/contrib/hbbmcdx/hbbmcdx.h
* use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*())
to access files.
+ harbour/tests/aliaslck.prg
+ added test code for file lock synchronization between aliased
work areas
* source/rtl/dbedit.prg
! Fixed to use local Skipped() function.
! Guarded some 5.3 features with HB_COMPAT_C53.
! Fixed stepping back to real record from append position.
(This fixes Clipper 5.x screen trashing and
'87 incompatibility.)
! Minor keyboard handling fix.
! Fixed behaviour in append mode.
* contrib/hbfbird/firebird.c
! Added ugly hack to make it compile with Firebird 2.1.1
and BCC 5.8.2 (and upper).
This way all Win32/Win64 builds are now supporting
this newer version of Firebird. DOS still needs 2.0.4.
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
+ Added support for optional License Key.
Borrowed from xhb/Ron Pinkas.
(untested)
* harbour/include/Makefile
+ harbour/include/hbvmint.h
+ added new header file which works like hbvmopt.h but does not enable
stack macros
* harbour/contrib/xhb/xhbenum.c
* harbour/contrib/xhb/xhbqself.c
* harbour/contrib/xhb/xhbwith.c
* harbour/contrib/xhb/cstructc.c
* harbour/contrib/hbwin/win_ole.c
! use hbvmint.h instead of hbvmopt.h to eliminate direct bindings to
HVM stack structure
* harbour/config/os2/gcc.cf
* harbour/make_gnu_os2.cmd
* moved -DTCPV40HDRS to make_gnu_os2.cmd and added small description
about this macro. By default is enabled, can be disabled by
setting environment variable HB_OS2_TCP32 to 'yes', f.e.
SET HB_OS2_TCP32=yes
David and Maurilio, please check me.
* harbour/include/hbset.h
* harbour/source/vm/set.c
+ divided __SETCENTURY() PRG function into two functions:
__SETCENTURY() and public C function hb_setSetCentury()
to manipulate century setting from C code.
Modyfication by Francesco Saverio Giudice
* harbour/source/rdd/workarea.c
* added protection against multiple registering RDD with the same
name by *_GETFUNCTABLE() in ST/MT mode or other thread in MT mode
* harbour/include/hbvm.h
* harbour/include/hbthread.h
* harbour/source/vm/hvm.c
* harbour/source/vm/thread.c
+ added hb_vmThreadRegister() funtion which allows to register new
thread in HVM without HVM stack allocation
+ added hb_vmThreadRelease() which removes registered thread which
does not have allocated HVM stack yet
+ added hb_threadStateNew() which returns new thread control state
which can be used as parameter to hb_vmThreadInit(),
hb_vmThreadRegister(), hb_vmThreadRelease()
* register thread control state also for main thread
Now hb_threadSelf() returns thread pointer also for main thread
! fixed possible race condition in hb_threadWaitForAll() and
hb_threadTerminateAll() by using hb_vmThreadRegister() before
starting thread.
* harbour/source/rtl/idle.c
* interrupt hb_idleSleep() on QUIT or BREAK requests
* harbour/tests/mt/mttest09.prg
* small cleanup
* make_b32.mak
* make_vc.mak
! Fixed to use 'COPY /B' instead of 'COPY /A' to install
headers, to avoid appending and EOL to these files.
They should work as is.
* make_gcc.mak
! Fixed mainstd lib name.
[TOMERGE 1.0]
* include/hbthread.h
% Disabled HB_USE_TLS for __BORLAND__ and __MINGW32__ for
best performance.
* contrib/hbwhat/whtmmcap.c
! Fixed some warnings under certain MinGW 4.3.2
installations.
TODO: hbwhat users pls finish this fix.
* utils/hbmake/hbmake.prg
! Fixed hbw32 to hbwin.
* Win32 references changed to Windows.
* make_gcc.sh
* Not accepting CFLAGS anymore as custom C flags envvar.
Pls use C_USR instead.
* make_gcc.mak
+ Added wsock32 lib to Cygwin system liblist.
! Removed setting HB_OS_* macros explicitly.
* make_b32.mak
* make_vc.mak
* Minor formatting.
* harbour/source/vm/thread.c
* release thread return value when is retrieve
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/tthreadx.prg
+ added xBase++ compatible signal class
* harbour/source/rdd/wacore.c
! added missing alias setting after attaching work area
+ harbour/tests/mt/mttest09.prg
+ added test code for using the same work area in different threads
* harbour/include/hbstack.h
* harbour/source/vm/estack.c
+ added assembler inline macros for TLS access in BCC and MinGW32
They are enabled when Harbour is compiled with -DHB_NO_TLS.
Please check the speed difference. If it will be noticeable
then we keep them probably as default. Otherwise they will be
removed.
* include/hbdefs.h
! Fixed 64-bit printf() formatting strings to be compatible
with MinGW. MinGW seems to follow the Microsoft way instead
of being compatible with other GCC dialects.
This fixes some pcode/c code (-gc3) generation problems for
long long literals, and hbfbird/FBGETDATA() potential problems,
when MinGW 3.x/4.x compilers were used.
[TOMERGE 1.0]
; TOFIX: Some sqlite3.c code may also be affected, since
"%llX" and "%lld"s are hard-coded into the source.
- harbour-ce-spec
+ harbour-wce-spec
- harbour-w32-spec
+ harbour-win-spec
- make_rpmw32.sh
+ make_rpmwin.sh
- make_rpmce.sh
+ make_rpmwce.sh
* Some steps done to use more consistent names for Windows
and Windows CE, and also to move away from '32' usage.
; TODO: I'd prefer to give all .spec files the same
empty extensions, could anyone help how to
convert current harbour.spec to harbour-spec and
not break .rpm creation? Plus it would be also
good to implement automatic versioning on .rpm
build just like for harbour-win/wce in make_rpmw*.sh
scripts.
- hbgtmk.sh
+ make_rpm_from_svn.sh
* Renamed to give a better idea about its purpose.
; NOTE: make_rpm_from_svn.sh seems a bit pointless now
that we have the final releases in separate SVN tags.
* make_gcc.mak
* Minor formatting.
* make_b32.mak
* make_gcc.mak
* make_vc.mak
* harbour.spec
* source/rtl/hbgtcore.c
* source/rtl/Makefile
* source/rtl/gtsys.c
* config/w32/poccce.cf
* config/w32/xcc.cf
* config/w32/pocc.cf
% Removed HB_GT_DEFAULT envvar, which was the exact synonym
of HB_GT_LIB. Please use HB_GT_LIB instead, if you - by any
chance - want to change the default GT at Harbour build-time.
* tests/speedtst.prg
! Fixed to delete temp .dbf files before exiting.
* utils/hbrun/hbrun.prg
+ Added REQUESTs for GTSTD, GTCGI, GTPCA (these GTs are
available on all platforms).
% Removed explicit GT defaulting logic (now identical to
the one in RTL).
* source/vm/fm.c
+ Enabled dlmalloc (HB_FM_DL_ALLOC) for MSVC, BCC and MINGW builds.
; It's possible to disable dlmalloc with HB_FM_STD_ALLOC
for testing purposes.
* bin/bld.bat
* bin/bld_os2.cmd
* HARBOURFLAGS removed as a public envvar to setup Harbour
parameters. Use PRG_USR instead.
* common.mak
! Fixed after recent modification.
* source/compiler/cmdcheck.c
* Minor formatting.
* harbour/source/compiler/cmdcheck.c
! fixed starting index in parsed parameters. argv[0] is
application name with path not user parameter. Parsing
it was giving unpredictable results if harbour binaries
were located in path having option delimiters in name
* source/vm/vmmt/Makefile
! Possible fix for mingw build error:
make: *** mainstd: No such file or directory. Stop.
make[3]: *** [first] Error 2
make[2]: *** [first] Error 2
; Please review.
; TOFIX: These DLALLOC warnings are present with MinGW 4.3.2
In file included from ../../fm.c:127:
../../dlmalloc.c:1144: warning: ignoring #pragma warning
In file included from ../../fm.c:127:
../../dlmalloc.c: In function 'sys_alloc':
../../dlmalloc.c:3396: warning: statement with no effect
* common.mak
* source/rtl/gtgui/Makefile
- source/rtl/gtgui/gtdef.c
- Removed HB_GTGUI_HACK to masquerade GTGUI under a different
name and to make Windows users happier. Instead of hacking
Windows users with GUI programs should simply use
this in their code:
--
PROCEDURE HB_GTSYS
REQUEST HB_GT_GUI_DEFAULT
RETURN
--
; This clears up a few exceptions, make hacks and a few possible
confusions.