* harbour/include/hbextern.ch
* harbour/src/vm/runner.c
+ added new PRG function
HB_HRBSIGNATURE() -> <cSig>
which returns HRB file signature
+ added internal function hb_hrbCheckSig() to keep HRB file
signature checking in one place
* harbour/include/hbextern.ch
* harbour/src/vm/cmdarg.c
+ added new PRG function
HB_ARGSHIFT( [<lProgName>] ) -> NIL
which updates HB_ARG*() parameter list removing the 1-st one
and replacing it by others. If <lProgName> is .T. then first
non internal parameter is moved to hb_argv(0) (hb_progname())
and all next are shifted.
* harbour/utils/hbrun/hbrun.prg
+ when extension does not allow to recognize file type then check
passed file signature. If it's HRB file then execute directly
otherwise use it as PRG script.
This modification allows to use any names (except the ones using
known for HBRUN extensions like .hrb amd .dbf) as PRG script names.
+ Call HB_ARGSHIFT(.T.) to strip HBRUN executable file name from
parameter list when PRG script or HRB file is executed
* include/hbdefs.h
+ Added new abstract type: HB_RECNO.
To replace HB_ULONG usage where it means record number.
* src/vm/hvm.c
* src/vm/cmdarg.c
* include/hbapi.h
* include/hbvm.h
* HB_ULONG -> HB_U32 for VM flags.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
% Fixed: crash at fast text selection.
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
% Fixed: slowness caused in selection process when many
lines were being selected. Now there is no overhead.
Thanks to Itamar for reporting.
* contrib/hbqt/THbQtUI.prg
% Little more syncronization.
+ Added: method ::connect(). It is identical to :signal()
But for uniformity with other hbXBP and hbIDE classes
this method name seems appropriate.
% Reworked: method create(). Now both types of implementations,
viz., .ui and .uic will be entertained with one creator.
oUI := HbQtUI():new( "MainWindow.ui" ):create()
oUI := HbQtUI():new( "MainWindow.uic" ):create()
with do the job. :build() is still active but will be depricated.
* src/rtl/hbsha2.c
* src/rtl/hbsha2hm.c
+ Added Win64 support for SHA1 functions.
; NOTE: HMAC keys longer than 2^32 bytes are not support
(unlike with SHA1), probably not huge limitation.
* src/vm/dynsym.c
* include/hbapi.h
* Minimal cleanup: using HB_LONG in place of long, just to make
this type usage easier to find in the future.
* src/vm/hvm.c
+ Added cast to pacify long time msvc warning
* src/vm/fm.c
+ Added pragmas to silence msvc64 warnings in dlmalloc (foreign) code.
* src/vm/extend.c
* Formatting.
* harbour/include/hbdefs.h
+ added HB_VMUINT_MAX macro
* harbour/src/vm/hvm.c
* harbour/src/vm/itemapi.c
% use conditional #if compilation for code which depends on
HB_SIZE range. It should eliminate dummy code and pacify
warnings in some compilers.
NOTE: do not forget to update such #if conditions when we
switch to signed HB_SIZE type.
* harbour/src/macro/macro.y
* harbour/src/macro/macro.yyh
* harbour/src/macro/macro.yyc
* harbour/src/macro/macrolex.c
* changed type of valChar.length from int to HB_SIZE
* src/vm/estack.c
* src/vm/debug.c
* src/vm/hvm.c
* src/vm/pvalue.c
* src/vm/arrays.c
* src/vm/proc.c
* src/vm/memvars.c
* src/vm/eval.c
* src/vm/classes.c
* include/hbstack.h
* include/hbapi.h
+ Win64 support for HVM stack and other related internals.
(HB_ULONG -> HB_SIZE, HB_LONG -> HB_ISIZ, long -> HB_ISIZ)
+ Using size API in debug functions.
; TOFIX: These two warnings remain in HVM (not counting dlmalloc):
---
hvm.c(10695) : warning C4244: 'argument' : conversion from 'HB_MAXINT' to 'double', possible loss of data
macro.c(1315) : warning C4310: cast truncates constant value
---
* src/vm/eval.c
* HB_FORNEXT() loop value can now be 64-bit values (was 32).
* src/vm/runner.c
* Formatting.
* include/hbhash.h
* src/common/hbhash.c
+ hash key changed from HB_ULONG to HB_SIZE.
* src/rtl/cdpapi.c
* src/compiler/hbmain.c
* Added casts to pacify long time msvc warnings.
* include/hbapi.h
! HB_IS_VALID_INDEX() macro fixed to use HB_SIZE.
* Changed hb_struRefer.offset structure member from HB_LONG to
HB_ISIZ, fixing one pending Win64 type mismatch.
The change doesn't modify HB_ITEM size.
* include/hbapicls.h
+ Added parameter name to one declaration.
* include/hbcomp.h
* include/hbcompdf.h
* include/hbexpra.c
* include/hbexprb.c
* include/hbexprop.h
* include/hbmacro.h
* src/common/expropt1.c
* src/common/expropt2.c
* src/compiler/genc.c
* src/compiler/gencc.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/compiler/hbdbginf.c
* src/compiler/hbdead.c
* src/compiler/hbident.c
* src/compiler/hblbl.c
* src/compiler/hbmain.c
* src/compiler/hbopt.c
* src/compiler/hbpcode.c
* src/vm/macro.c
+ Adding Win64 support for compiler/macro subsystems.
* HB_ULONG -> HB_SIZE where applicable.
* HB_LONG -> HB_ISIZ where applicable.
* Some now unnecessary cast deleted.
* hb_compExprAsStringLen() return value changed to HB_SIZE from int.
* hb_compNOOPfill() 3rd parameter changed to HB_ISIZ from int.
- Deleted unused hb_compExprMacroListLen().
; TOFIX: Use '$<lNumber>$' (or maybe newly added sNumber)
instead of '$<iNumber>$' in .y code.
Przemek, what do you think?
* src/compiler/Makefile
* C files sorted.
* src/vm/hvm.c
! hb_vmStaticsCount() changed to use HB_SIZE instead of
HB_ULONG. Fixing pending warnings.
* include/hbapi.h
* Changed hb_struEnum.offset structure member from HB_LONG
to HB_ISIZ, fixing one more pending Win64 type mismatch
problem. The change doesn't modify HB_ITEM size.
Please verify me.
* src/vm/classes.c
! Using size API after above change.
; QUESTION: In itemapi asEnum.offset is stored using
hb_itemPutNInt(). Should this be changed to
hb_itemPutNS()?
* contrib/hbct/ctstr.c
+ Cleaned away some HB_ULONG casts and using HB_PFS format
strings instead.
* contrib/hbct/tab.c
! Fixed regression from 2010-06-20 12:34 UTC+0200 Viktor Szakats,
by deleting now unnecessary casts. Shown by mingw64 4.6.0exp.
I'd appreciate if someone could check me!!
* include/hbapi.h
* Changed hb_struRefer.value structure member from HB_LONG to
HB_ISIZ, fixing one pending Win64 type mismatch also signaled
by msvc64 warning. The change doesn't modify HB_ITEM size.
Please verify me.
* contrib/hbct/Makefile
* contrib/hbct/hbct.hbp
* contrib/hbct/ct.h
* contrib/hbct/charlist.c
+ contrib/hbct/charlish.c
! Moved non-CT3 (Harbour extension functions to separate
source file)
% Optimized code.
* Cleaned code and type usage.
* Changelog
! Fixed date in my today's commits.
* src/vm/thread.c
* Added casts to pacify msvc64 warnings.
Of some the ones related to pMutex->events I'm unsure of,
probably it's better to use 'int' instead of HB_ULONG for
internal variable in some cases to make it look cleaner,
though I assume there was a reason for it, so I left it.
Please check me.
* src/vm/classes.c
* Added casts to pacify msvc64 warnings.
* src/common/hbstr.c
* hb_str2number() changed to limit string size to 'int' internally.
This fixes the warnings and inconsistencies on Win64.
* src/rtl/hbcom.c
! Pacified msvc warnings on component boundary.
* src/vm/cmdarg.c
* src/vm/fm.c
* src/nortl/nortl.c
* src/rtl/fmhb.c
* include/hbapi.h
+ hb_xquery() return value changed from HB_ULONG to HB_SIZE.
Also fixes all msvc64 warnings
* src/vm/macro.c
* src/vm/estack.c
* src/vm/dynsym.c
* src/vm/hvm.c
* src/vm/set.c
* src/rdd/wafunc.c
* src/compiler/hbmain.c
* src/compiler/cmdcheck.c
* src/compiler/genc.c
* src/compiler/gencc.c
* src/compiler/harbour.yyc
* src/compiler/harbour.y
* include/hbexprb.c
+ Added strlen() casts to pacify msvc64 warnings
* src/vm/cmdarg.c
! Readded one '( void * )' cast. (I've only tested C++ mode
on Windows, this fell into *nix code). Thanks for checking it.
* src/rtl/hbgtcore.c
+ HB_SIZE -> HB_UINT, plus added necessary casts. Signaled by warnings
* contrib/hbmisc/spd.c
+ HB_SIZE -> HB_UINT, plus added necessary casts. Signaled by warnings
; In case of this function it'd be probably better to make it fully
HB_SIZE compatible, instead of stepping back like this.
* src/rdd/sdf1.c
* src/rdd/delim1.c
+ Added casts to pacify some msvc64 warnings
* src/rdd/hsx/hsx.c
! HB_SIZE -> HB_LONG. Resolves msvc64 warnings.