* INSTALL
* make_gnu.bat
+ Added support for Cygwin builds (passes call to make_gnu.sh).
+ Added Cygwin build starter example.
+ Cygwin mentioned as a requirement for mingwarm builds,
also added to PATH.
! Fixed cygwin autodetection.
! Fixed wrong PATH order in 'MinGW GCC + MSYS' example.
* Merged mingw+msys and cygwin bash based build methods,
and titled as "alternate" method.
Now all supported compilers work by starting up make_gnu.bat.
* utils/hbmk2/hbmk2.prg
! Change compiler autodetection to work for cygwin.
* mpkg_dos.bat
* mpkg_win.bat
* make_gnu.bat
! Fixed build process to work in paths containing spaces.
I didn't test the batch in pure DOS, so I may have broken it.
* config/win/install.cf
* config/wce/install.cf
! Fixed 'install' to work when there is a space in install path.
* make_gnu.bat
* INSTALL
+ Added support for HB_BUILD_LOG envvar. If set to 'yes',
it will automatically set log output filename to:
'log-<arch>-<comp>.txt'
if set to 'no' it will no make any extra redirection,
if set to any other value, it will be used for output
(both std and err). The batch will set HB_BUILD_LOGFILE
to the filename used for output for processing.
This feature requires Windows NT or upper host.
I didn't enable this feature yet by default to not break
existing user setups, but maybe I'll do it before the
final release.
* Modified text shown (+ beep thrown) when build failed.
* Messages now all start with 'Harbour'.
* Do not do the second build pass if the first one failed.
* contrib/hbwin/legacy.prg
! Fixed CreateObject() not working due to typo.
Thanks to Itamar Lins for the report.
* mpkg_dos.bat
* mpkg_win.bat
* mpkg_win.nsi
+ Enabled HB_BUILD_LOG=yes.
* Silenced copy, zip, makensis commands.
+ Added message about failed build process.
* Changed to use 'copy' instead of 'xcopy'
* Changed internals so now they don't require HB_COMPILER
and HB_ARCHITECTURE to be set. This means that now
we can rely on autodetection even for mpkg_*.bat files.
Creating an installer is very easy now for most cases.
Just type:
mpkg_gnu.bat
* source/vm/set.c
+ Added file commit support to __MVSAVE(), if Set( _SET_HARDCOMMIT )
is set to .T.. This is the default which means by default we aren't
CA-Cl*pper compatible. Addition protected by HB_C52_STRICT.
* source/rdd/dbf1.c
! Minor typo in comment.
* doc/en-EN/hb_apiit.txt
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/extend.c
* source/rtl/gtwvt/gtwvt.c
* source/rdd/dbf1.c
* contrib/gtqtc/gtqtc.cpp
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/hbwin/olecore.c
* examples/hboleold/win_ole.c
* Finishing long planned function renames to clear up
a very (10 years) old naming inconsistency.
To adapt you code to this, please do changes below:
1) hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
2) hb_itemPutCPtr2() -> hb_itemPutCPtr()
Unmodified code will generate compile time errors, so it's easy
to spot where the modifications need to be done. For most users,
only case 1) will need to be dealt with.
; INCOMPATIBLE. Please update your code.
* source/rtl/hbi18n1.c
* source/rdd/dbfnsx/dbfnsx1.c
* hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
* contrib/gtwvg/wvggui.c
* contrib/gtqtc/gtqtc.cpp
! Fixed GPF in hb_gtInfo( HB_GTI_SCREENSIZE ) call with wrong
parameter.
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/extend.c
; Started addition of 'const' keywords where applicable.
* First pass:
extern HB_EXPORT const char * hb_parc( int iParam );
extern HB_EXPORT const char * hb_parcx( int iParam );
extern HB_EXPORT const char * hb_itemGetCPtr( PHB_ITEM pItem );
extern HB_EXPORT const char * hb_arrayGetCPtr( PHB_ITEM pArray, ULONG ulIndex );
; NOTE: This modification will break code in most compilers,
especially in C++ mode.
As a next steps source code will have to be modified
according to this change. Be patient, don't report all
errors to the developers. You can join the code cleanup.
* source/vm/dynsym.c
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/memvars.c
* source/vm/extend.c
* source/vm/set.c
* source/vm/classes.c
* 'const's added to caller code.
* source/vm/memvars.c
- Deleted hb_fsCommit() as non CA-Cl*pper compatible.
I'll let others decide what to do with this patch.
* contrib/hbclipsm/date.c
! Changed hb_parnl() calls used to extract dates to hb_pardl().
* source/vm/memvars.c
+ Added hb_fsCommit() to __MVSAVE().
(Change copied from xhb, created by Peter Rees)
* contrib/gtwvg/wvgsink.c
! Fixed BCC warning after recent change.
(BTW, does anyone know a switch to enable such warning:
"'x' is assigned a value that is never used" with *MinGW* ?
It's annoying that BCC catches it, while other compilers
don't. I'm now only using BCC when creating builds.)
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/extend.c
! Fixed hb_parvc() function to return NULL in case an array
is passed as Harbour level parameter. This makes this function
(and _parc()) fully CA-Cl*pper compatible.
; Please review maybe there is a lighter patch to achieve this
goal. I had to add NULL versions for two functions downstream.
* utils/hbmk2/hbmk2.prg
* Formatting.
* INSTALL
+ Added iccia64 build example.
* source/vm/fm.c
+ Added C++ new/delete operator override to hb_xgrab()/hb_xfree().
Thanks to Xavi.
Please make any required correction, I didn't do tests with it.
* utils/hbmk2/hbmk2.prg
+ Added support for linux/icc compiler. (untested)
; Tested win/icc support (static exe, shared exe, lib, dll).
It worked, except that in shared mode it will display this,
when the MinGW built .dll is used (instead of its own):
Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'
* source/vm/extend.c
* Minor formatting.
* source/rtl/mlcfunc.c
! Fixed warning in HB_C52_STRICT mode.
* contrib/hbxbp/xbp.ch
! Fixed HB_OUTDEBUG() macro to work also in codeblocks when
not in debug mode, and also to better handle the case when
parameter is a variable.
* ChangeLog
+ Added incompat NOTE to hb_par*/hb_stor*() change.
* harbour/include/hbapi.h
* harbour/source/vm/extend.c
* renamed existing hb_par*() and hb_stor*() functions which supports
variable number of parameters (...) into hb_parv*() and hb_storv*()
* added new hb_par*() and hb_stor*() functions which use strict number
of parameters. New hb_par*() functions do not make hidden conversion
between types, f.e. hb_parl() returns 1 only for logical parameters
which contain .T.
* harbour/include/extend.api
* map Clipper _par*() functions to hb_parv*()
* map Clipper _stor*() functions to hb_storv*()
* harbour/source/vm/dynsym.c
* harbour/source/vm/hvm.c
* harbour/source/vm/maindllp.c
* harbour/source/vm/thread.c
* harbour/source/vm/classes.c
* harbour/source/rtl/cdpapi.c
* harbour/source/rtl/mlcfunc.c
* harbour/contrib/hbnf/dispc.c
* harbour/contrib/hbnf/mouse.c
* harbour/contrib/hbnf/getenvrn.c
* harbour/contrib/hbhpdf/harupdf.c
* harbour/contrib/gtwvg/wvgcuig.c
* harbour/contrib/gtwvg/wvgwin.c
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgwing.c
* harbour/contrib/rddads/adsfunc.c
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsmgmnt.c
* harbour/contrib/hbmisc/hb_f.c
* harbour/contrib/hbwin/wapi_commctrl.c
* replaced hb_par*() and hb_stor*() calls used with additional parameters
by hb_parv*() and hb_storv*()
TODO: update examples/hbwhat/*.c files
* harbour/examples/uhttpd2/socket.c
* harbour/examples/httpsrv/socket.c
* changed hb_parni() to hb_parnidef()
* harbour/source/vm/itemapi.c
* removed some conversion which are not necessary for CA-Cl*pper
compatibility
* harbour/source/macro/macrolex.c
* replaced HB_LEX_IS*() macros by by HB_IS*() ones
* source/vm/fm.c
! Renamed s_fInited to s_fInitedFM to avoid collision
with similarly named variable in estack.c when using
HB_FM_STATISTICS and HB_HVM_ALL at the same time.
Thanks Xavi for the find.
* harbour/include/hbhrb.ch
* harbour/source/vm/runner.c
+ added support for HB_HRB_BIND_LAZY flag.
Lazy binding with public external functions allows to load .hrb files
with unresolved or cross function references.
- harbour/include/hbhrb.ch
+ harbour/include/hbhrb.ch
* replaced hbhrb.ch with slightly different version and set SVN
attributes:
svn:keywords : Author Date Id Revision
svn:eol-style : native
Now optional HB_HRBLOAD()/HB_HRBRUN() parameter is bitfield and
the following predefined values can be used to control function
bindings in loaded .hrb files:
HB_HRB_BIND_DEFAULT - do not overwrite any functions, ignore
public HRB functions if functions with
the same names already exist in HVM
HB_HRB_BIND_LOCAL - do not overwrite any functions
but keep local references, so
if module has public function FOO and
this function exists also in HVM
then the function in HRB is converted
to STATIC one
HB_HRB_BIND_OVERLOAD - overload all existing public functions
HB_HRB_BIND_FORCELOCAL - covert all public functions to
STATIC ones
Other HB_HRB_* defines will be added in the future
* harbour/include/hbvm.h
* declared hb_vmSetFunction() as internal function
* harbour/source/vm/hvm.c
* modified hb_vmSetFunction() to update references also in unused
modules.
* harbour/source/vm/runner.c
* removed CanUnload - it was not fully functional. Modules which
overloads public functions cen be unload just like any other ones
but unloading does not restore references to overloaded functions.
Now such references are simply lost and this should be fixed in the
future.
+ added support for HB_HRB_BIND_FORCELOCAL
! fixed <nOptions> parameter decoding in HB_HRBLOAD() to strictly
follow declaration:
HB_HRBLOAD( [ <nOptions>, ] <cHrb> [, <xparams,...> ] )
! fixed init procedures parameters in HB_HRBLOAD() to no pass <nOptions>
+ added support for <nOptions> to HB_HRBRUN()
HB_HRBRUN( [ <nOptions>, ] <cHrb> [, <xparams,...> ] ) -> <retVal>
* changed HB_HRBRUN() return value - now it's the result of executed
function instead of .T.
! fixed public symbol updating to keep valid references to HB_FS_LOCAL
function
! fixed possible memory leak
% added const to some char * declarations
TOFIX/TODO: add support for restoring overloaded functions when module
is unloaded.
* tests/testhrb.prg
* tests/Makefile
* include/Makefile
* include/hbhrb.ch
* source/vm/runner.c
! Added new files to Makefiles.
! Fixed to use hbhrb.ch from .c rather than replicating #defines.
(also fixed comments to be ANSI)
! Added self protection to .ch.
! Made .hrb file lowercase in testhrb.prg
! Deleted double license header from .ch.
* utils/hbmk2/hbmk2.prg
+ Added logic to move embedded compilers under a common subdir.
To stay compatible with 2.0.0beta1 release I didn't yet set
this, but it will be for final release.
Probably 'comp', or maybe 'opt'. Sorry for asking for opininons,
but they're welcome anyway.
* vm/runner.c
FIXED ;
../../runner.c:413: error: '_HB_SYMB' undeclared (first use in this function)
+ include/hbhrb.ch: HB_HRBLOAD() mode #define new file
+ tests/testhrb.prg: test program fro new params
+ tests/exthrb.prg: test program to be compiled as .HRB using /gh option
* source/vm/runner.c
* Formatted.
; TOFIX:
../../runner.c: In function 'hb_hrbLoad':
../../runner.c:413: error: '_HB_SYMB' undeclared (first use in this function)
../../runner.c:413: error: (Each undeclared identifier is reported only once
../../runner.c:413: error: for each function it appears in.)
* utils/hbmk2/hbmk2.prg
+ Added preliminary support for autosetup for several more
compilers: win/watcom, win/pocc, win/pocc64, wce/poccarm,
dos/djgpp, dos/watcom.
Only these were tested: dos/djgpp, win/watcom, win/pocc.
This means it's now possible to "bundle" DJGPP, watcom or
pocc _compiler tools_ with Harbour and hbmk2 will be able
to detect them, or user can choose between them using
-arch/-comp switches, then hbmk2 will just be able to use
them "as is", without the need to change anything on the
environment. zero-conf usage in essence, just like we
already had for mingw family.
; NOTE: Before the release I'll rethink placement of these
tools inside the Harbour directory tree. Currently
they are detected in the Harbour root dir, but with
multiple compilers this is not ideal.
* source/vm/thread.c
! Fixed compile error after 2009-06-16 08:55 UTC+0200.
* include/hbextern.ch
* source/vm/thread.c
+ Added HB_MUTEXWAITERSCOUNT() to core.
(slightly rewritten using local functions)
- examples/uhttpd2/umutex.c
- No longer needed.
* harbour/source/vm/mainstd.c
* forced '\' in argv[0] instead of '/' in DJGPP builds
* disabled using SHELL envvar and forced COMSPEC in system() function
in DJGPP builds (it effects __run() and hb_run() .prg functions)
* harbour/contrib/gtwvg/wvgwin.c
! fixed wrongly used & operator
* harbour/source/rtl/hbproces.c
* added TODO warning in OpenWatcom Linux builds
* harbour/make_gnu.sh
! fixed test_param() function definition - it has to be defined it's
before use
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/source/common/expropt1.c
* harbour/source/rtl/round.c
* removed unnecessary <math.h>
* harbour/source/vm/hvm.c
* harbour/source/common/expropt2.c
* harbour/contrib/hbct/ctmath.h
* harbour/contrib/hbclipsm/num.c
* harbour/contrib/hbclipsm/numfloor.c
* harbour/contrib/hbclipsm/numceil.c
* use "hbmath.h" instead of <math.h> to avoid possible desynchronization
between used math libraries and header files
* harbour/source/pp/Makefile
! fixed real DOS compilation - replaced Windows only hack by wildcard
function usage
* harbour/config/dos/dir.cf
* removed intermediate sh call from executed commands
* harbour/source/vm/Makefile
* disabled HB_HVM_ALL in all Watcom builds - it works but the compilation
time is very huge so user who wants to use it should set envvar
HB_HVM_ALL=yes
* enabled HB_HVM_ALL for DJGPP builds
* include/hbextern.ch
* source/vm/hashfunc.c
+ Added HB_HGETDEF( <hHash>, <xKey>[, <xDefault> ] ) -> <value>
This function will return <xDefault> when <xKey> isn't
found in the hash table. If <xDefault> isn't passed, it
will return NIL.
* source/rtl/achoice.prg
! Partially reverted this commit:
https://sourceforge.net/apps/trac/harbour-project/changeset/10605
After this change, activating DBU menus with all items disabled
(f.e. F7/F8) caused app hang.
This line:
nUserFunc := iif( nMode != AC_NOITEM,;
Do( xUserFunc, nMode, nPos, nPos - nAtTop ), NIL )
Was now changed back to this:
nUserFunc := Do( xUserFunc, nMode, nPos, nPos - nAtTop )
ac_test2.prg still seem to function fine after this, but
I'd kindly like to ask Vladislav Lavrecky to make tests
again, maybe we need another fix here.
* source/vm/evalhb.c
* Minor formatting.
* contrib/hbtip/client.prg
* Minor formatting.
! :ReadToFile() nMode param check.
* utils/hbmk2/hbmk2.prg
* Cleanup to variable name prefixes.
* contrib/xhb/Makefile
+ contrib/xhb/xthrow.prg
+ Added THROW() function for xhb compatibility.
This is written in Harbour, based on hbcompat.ch
and has Harbour license + exception.
+ contrib/xhb/xcstr.prg
+ contrib/xhb/xdbmodst.prg
* contrib/xhb/Makefile
+ Ported following old functions from xhb:
CSTRTOVAL(), STRINGTOLITERAL(), VALTOPRG(), PRGEXPTOVAL()
+ Ported following new functions from xhb:
VALTOARRAY(), VALTODATE(), VALTOHASH(), VALTOLOGICAL()
VALTONUMBER(), VALTOARRAY(), VALTOTYPE(),
DBMODIFYSTRUCTURE(), DBIMPORT(), DBMERGE()
(borrowed from xhb, work of Ron Pinkas)
* config/dos/global.cf
! Fixed to use xcopy instead of copy to 'install' files.
This means long filenames (and also casing) will be retained.
This also means that now 'install' actually works.
It may also mean that creating a DJGPP build isn't anymore
possible on a pure DOS system, I can't remember when xcopy
was introduced. Anyway I think it's better to have this
requirement than not having a proper DOS build at all
(since long years).
This also means that our DOS release cannot even be *used*
in pure DOS environment, since our long filenames will
be chopped when extracting the distro .zip. Only final
.exes are able to run under DOS.
We still have the option to implement full short name
support, but I'm not sure this has any importance anymore.
If we don't want to do this, we can finally lift some
restrictions which tied our hands so far, based on the
fact that DOS builds cannot even be created and run on
real DOS. So, this means:
- We may use long filenames as distro name.
- We may convert DOS platform as a target only platform,
similar to WinCE/ARM.
- If we do the above, we may even embed our DOS
libs in Windows distro, and build DOS apps using
hbmk2 hello.prg -arch=dos
- We may use long filename anywhere in our tree.
(but we must check first if long names are also
supported for headers, dirnames and source names)
If you have an opinion, please tell.
* config/dos/global.cf
! Adding ending pathsep to DOC_SUBDIR to make xcopy happy
and not ask if the target is a file or directory.
; TOFIX: Anyhow, DOC_SUBDIR feature simply doesn't work since
very long, so we should do something about it in the future.
* debian/changelog
+ Added new version entry. (Thanks Guy)
* bin/postinst.bat
! Added workaround to make it work under DOS.
(avoiding 'Out of environment space' error)
+ mpkg_dos.bat
+ Added DOS package generator batch. Very similar
to mpkg_win.bat, maybe we should merge them in
the future.
* mpkg_win.bat
* Using short name for main dir, just to sync it with
DOS version.
* utils/hbformat/hbformat.prg
+ Changed default GT to GTCGI.
* utils/hbmk2/hbmk2.prg
! Added workaround for dos/djgpp anomaly in hb_DirBase()
(and also hb_ProgName()) where path contains forward
slashed instead of backslashes.
; TOFIX: In core.
* source/vm/Makefile
! Disabled hbvmall for dos build because of thid djgpp error:
---
gcc -I. -I../../../../include -Wall -W -O3 -c ../../hvmall.c -ohvmall.o
In file included from ../../../../include/hbmath.h:60,
from ../../itemapi.c:97,
from ../../hvmall.c:67:
c:/devl/djgpp/include/libm/math.h:97: error: redefinition of 'struct exception'
---
* contrib/hbblat/hbblat.hbc
* contrib/hbhpdf/hbhpdf.hbc
* Minor formatting.
* harbour/source/vm/eval.c
* update number of parameters in HB_EXECMSG() to keep the HVM stack
clean for any external code which can try to make some HVM stack
tracing/scanning
* harbour/source/vm/evalhb.c
! use hb_vmSend() instead of hb_vmDo()
* harbour/source/pp/pplib.c
* harbour/source/pp/pplib3.c
* harbour/source/vm/runner.c
* harbour/source/vm/hvm.c
* harbour/source/vm/thread.c
* harbour/source/vm/eval.c
* harbour/source/vm/dynlibhb.c
* harbour/source/vm/classes.c
* harbour/source/rtl/do.c
* harbour/source/rtl/xhelp.c
* harbour/source/rdd/workarea.c
* harbour/source/rdd/dbf1.c
% use hb_vmProc() instead of hb_vmDo() in all places where context is
well known as function or procedure call
* harbour/include/hbvm.h
* harbour/source/vm/hvm.c
+ added hb_vmProc() function - it's hb_vmDo() but without hack to send
messages.
TODO: remove from hb_vmDo() support for messages so it can replace
new hb_vmProc() function or if we really need such mixed common
execution function then replace in HVM calls to hb_vmDo() with
hb_vmProc()
* harbour/source/vm/classes.c
* replaced hb_vmFunction() call by hb_vmDo()
* harbour/source/vm/arrays.c
* harbour/source/vm/thread.c
! cleaned hb_vmDo()/hb_vmSend() usage
* harbour/source/vm/eval.c
! replaced hb_vmFunction() calls by hb_vmSend()
+ added .prg function hb_execMsg( <sFuncSym>, <object>, [<params,...>] )
which executes <sFuncSym> with <object> set as QSELF() value.
Mindaugas, you can use it in your HashObject to execute functions
like pseudo messages.
* utils/hbmk2/hbmk2.prg
+ In -rebuild mode now targets will be deleted by hbmk2
before calling compilers to create them. This will resolve
some potential errors when compiler tools get confused about
an existing file with the same name but perhaps created with
another compiler. It will also make sure no attempts will be
made to create an incremental build. If target cannot be
deleted, a warning message will be shown by hbmk2.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* mpkg_win.bat
* include/hbver.h
* doc/whatsnew.txt
* source/vm/maindllp.c
* 1.1.0dev -> 2.0.0dev
; Preparation for next rc1.
* INSTALL
* Long lines reflowed.
* harbour/include/hbclass.ch
+ extended support for xbase++ compatible method declaration:
[SYNC] METHOD <methodName1>[([<params>])] ;
[ , <methodNameN>[([<params>])] ]
* harbour/include/hbthread.h
* harbour/source/vm/thread.c
* harbour/source/vm/classes.c
+ added alternative support for SYNC method which does not use
sync mutexes. The old method is still present. I'll remove it
when xbase++ users confirm that the new one exactly emulates
xbase++ behavior.
* harbour/source/vm/classes.c
* harbour/source/rtl/tthreadx.prg
* switch to alternative SYNC method implementation which seems to be
xbase++ compatible - please test
! fixed missing thread interrupt in recent modification for ::setInterval
* harbour/include/hbxvm.h
* harbour/source/vm/hvm.c
* harbour/source/compiler/gencc.c
! added missing RT error for wrong values used in SWITCH statement
in code generated for -gc3 output
* harbour/source/vm/memvars.c
* modified __mvDbgInfo():
- accept as 1-st parameter also HB_MV_PRIVATE_LOCAL and
HB_MV_PRIVATE_GLOBAL values
- changed parameters meaning now when less then 3 parameters is
given this function returns number of variables and the second
parameter is the call stack level. Memvar value and optionally
name is returned only if 3 or more parameters is given.
3-rd party code which used this function with two parameters
has to be updated.
* harbour/source/debug/debugger.prg
* mark non local private variables in monitor as "Private^" (with "^")
* do not show public and private variables hidden by other private
declarations
* harbour/source/rtl/filebuf.c
! refuse to share file handles if they were open in different mode
TODO: add support for keeping more then one handle for single file
open and allow such combinations.
* harbour/source/rtl/hbffind.c
% optimized *nix version of hb_fsFind*()
* harbour/utils/hbmk2/hbmk2.prg
! fixed compilation on non Windows platforms (unused variable warning)
* harbour/include/hbset.h
* harbour/source/vm/set.c
+ added new function hb_setGetPrinterHandle() which allows to open
closed printer port
! do not force opening default port after SET PRINTER TO ""
but delay the initialization untill other code does not call
hb_setGetPrinterHandle()
! fixed filename returned by _SET_PRINTFILE, _SET_ALTFILE, _SET_EXTRAFILE
! fixed dpossible resource leaks whne _SET_*FILE is called recurisvely
for user error block
! fixed _SET_*FILE settings to not accept files which cannot be open
(just like in Clipper)
* harbour/source/rtl/console.c
* use hb_setGetPrinterHandle() to access printer handler
* source/vm/set.c
! Applied fix sent by Xavi. Thanks.
I did a few minor formattings and rename, and did a
light review, please review further and test. I seem to
remember some deeper problems with this feature,
reported a while ago on the list.
* harbour/source/vm/runner.c
% optimized memory allocation for symbol tables used in loaded .hrb
files to store whole symbol table with all symbol names in single
memory block. It makes HVM cloned table structure synced with the
one used by runner.c fixing possible static memory leak.
* harbour/source/rdd/workarea.c
* formatting
* harbour/source/vm/Makefile
* minor cleanup
* harbour/config/dir.cf
! added protection against double build call when -j<n> is used in
install phase
* harbour/source/vm/Makefile
* respect HB_HVM_ALL user settings
! export HB_HVM_ALL value set automatically - otherwise it's not seen
when HBVMMT is compiled
* harbour/source/vm/classes.c
* exteneded :classsel() build in method to repsect scope given as
2-nd parameter and return extended information compatible with
:ClassFullSel() implemented in xHarbour by Francesco Saverio Giudice.
This extended info is returned when 3-rd parameter is .T.
* harbour/source/rtl/dateshb.c
* do not generate RTE on wrong params in HB_STOT() function
* harbour/contrib/xhb/xhbfunc.c
+ added hacked function which allows to send messages without respecting
scope. It works only for the most visible data and does not support
any automatic casting.
* harbour/contrib/xhb/dumpvar.prg
! fixed HB_DumpVar() results on platforms where CRLF has different
length then 2
% small improve in hash item presentation
+ added __objGetMsgFullList() and __objGetValueFullList() as static
functions. Code borrowed form xHarbour by Francesco Saverio Giudice.
* make HB_DumpVar() working with object values.