* utils/hbmk2/hbmk2.prg
+ Added support for linux/clang. (untested)
(what package has to be installed? I installed llvm yesterday,
but couldn't find clang on Ubuntu)
* config/linux/clang.mk
! Added SVN props.
* utils/hbmk2/hbmk2.prg
! Fixed to make clang behave like gcc when decorating lib references.
! Fixed to include clang in 'allgcc' filter.
+ Added native header detection when using clang.
! Internal change to use detected c compiler name instead of
hard-wired 'gcc' when doing native header detection for .c files
(using -MM option).
* utils/hbmk2/hbmk2.prg
+ Added dependency tree to flat dependency list converter.
(no cyclic reference check here)
* contrib/gtwvg/wvgwing.c
! Fixed for Windows x64 platform.
* contrib/gtwvg/Makefile
+ Enabled for Cygwin, IA64 and mingw64 compilers.
Latest mingw64 experimental builds build it fine.
This means all win compilers are supported except xcc.
; NOTE: Now it's disabled only for xcc.
Can someone with xcc installed try gtwvg? Maybe it can
be made work so we can drop this exception.
* config/global.mk
* utils/hbmk2/hbmk2.prg
+ Added autodetection of x86_64 build of mingw64.
(in hbmk2 it's recognized even if host platform isn't x64)
* INSTALL
+ Added darwin -> win/mingw64 cross-platform scenario.
Such binaries are now provided by the mingw64 project.
* include/hbapi.h
* Changed HB_ERRCODE to be 'insigned int' (was USHORT).
; You'll need to rebuild all sources.
* utils/hbmk2/hbmk2.prg
% Turned off line numbers (for hbmk2 itself).
* INSTALL
* Minor formatting.
* harbour/utils/hbtest/rt_str.prg
* modified code which tries to replicate Clipper behavior with ULONG
values also in 64bit systems where ULONG is not 32bit integer
* contrib/rddads/adsfunc.c
* Minor cleanup.
* doc/dirstruc.txt
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
- contrib/rddado
+ examples/rddado
+ examples/rddado/rddado.hbp
- examples/rddado/Makefile
* Moved rddado from contrib to examples area.
It's an almost working example.
* utils/hbmk2/hbmk2.prg
! Deleted 'lib' prefix for os2/gcc targets to sync it
with Harbour GNU make build setup.
See my mail on dev list for other options.
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
! Fixed to use .lib extension in gccomf mode. As far I could
debunk it from lenghty e-mail, this is the default extension for
libs, used by OS/2 GCC in OMF mode.
If not, don't blame me.
! Fixed to not use lib prefix in gccomf mode.
It does seem alright but due to no testing again give me
*very short correction information*, if this turns out to be
false.
* contrib/hbct/disk.c
! Typo in comment.
* harbour/utils/hbmk2/hbmk2.prg
! fixed incremental mode for @.clp files.
I tried to make all modifications locally to not break
some other code which may need "@" in file names because
I do not know hbmk2 code.
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
* Changed to use GCC default extensions for objects and libs
even in OMF mode.
! This fixed hbmk2 problems reported by David Arturo Macias Corona.
; Please verify if now also changed lib extension didn't create
any new problem in hbmk2, f.e. when using -strip option.
* utils/hbmk2/hbmk2.prg
+ Added plans (TODO) for next gen compiler autodetection.
This will surpass currently implemented autodetection in
build system. The basic feature added is detection of all
compilers supported by Harbour installation, so it's not
possible to select one which is not installed, plus more
feedback can be given to user. It also cleans embedded vs
in-PATH compilers and gives an easier way to prioritize
found compilers. This is definitely scheduled after
2.0.0 release, and when I have (more) time.
* utils/hbmk2/hbmk2.prg
! Fixes to lib dependency detection code.
It should now work on darwin/bsd/hpux/beos gcc/clang/sunpro
platforms/compilers but obviously I didn't test them all
(only darwin/clang).
There was one typo hitting generic branch of lib detection
plus lib prefix was not taken into account at all there.
Probably on some platforms it would be better to implement
target specific lib searching algorithm to mimic actual
linker behaviour. Currently, differences are to be expected.
- Deleted gccomf from a win/wce only branch in LibExists().
* contrib/hbwin/axcore.c
* Replaced duplicated constant with HB_SIZEOFARRAY() macro.
* utils/hbmk2/hbmk2.prg
+ C compiler autodetection will now make sure to skip compilers
where required Harbour core libraries aren't installed.
This autodetection is disabled when HB_LIB_INSTALL is set
manually and also when lib/<plat> dir is missing altogether,
assuming there is a single-compiler installation used in this
case (where such autodetection cannot work reliably).
When using -info option, a screen message is shown if
autodetected C compiler is skipped for above reason.
* harbour/src/rdd/dbfnsx/dbfnsx1.c
! fixed bug reported by Jaroslav Janik (many thanks) - if index FOR
expression excluded all records from non empty table then root page
was not initialized and DBFNSX generated corruption RTE.
* harbour/utils/hbi18n/hbi18n.prg
* set default GT to CGI
* harbour/src/common/hbgete.c
! fixed memory leak in non UNICODE Windows hb_getenv_buffer()
! add C stack buffers to eliminate memory allocation in UNICODE
Windows hb_getenv_buffer() - they are used if envvar name and
passed buffer are not too large. It fixes HB_FM_STATISTICS
Windows builds.
* harbour/contrib/hbwin/wapi_winuser.c
+ added WAPI_DESTROYWINDOW function
* harbour/contrib/xhb/traceprg.prg
* harbour/contrib/xhb/hbcompat.ch
! fixed typo in TraceLog() condition - was always disabled
+ added emulation for xHarbour Set( _SET_TRACE* [, <params,...> ] )
settings
* harbour/src/vm/hvmall.c
! define _GNU_SOURCE to fix compilation with HB_FM_DL_ALLOC in Linux
builds
* harbour/include/hbdefs.h
* declare HB_FOFFSET as LONG instead of LONGLONG on platforms where
LONG is 64bit integer to be compatible with C RTL file API
* harbour/src/vm/maindllh.c
* harbour/src/vm/maindllp.c
* harbour/contrib/hbct/ctstr.c
! casting in HB_TRACE() massages
* harbour/include/hbapi.h
* harbour/include/hbapiitm.h
* harbour/src/vm/arrays.c
* harbour/src/vm/hashes.c
* harbour/src/vm/itemapi.c
+ added hb_arrayCloneTo(), hb_hashCloneTo(), hb_itemCloneTo()
* harbour/src/vm/arrayshb.c
* harbour/src/vm/classes.c
* harbour/src/vm/hashes.c
* harbour/src/vm/hashfunc.c
* harbour/src/vm/hvm.c
% use hb_*CloneTo() instead of hb_*Clone()
* harbour/include/hbapi.h
* harbour/src/vm/garbage.c
- removed hb_gcRegisterSweep() function and support for user defined
sweep mark functions in GC blocks
- removed hb_gcAlloc() function
+ added new function hb_gcAllocate() which work in similar way to removed
hb_gcAlloc() function but it accepts as second parameter HB_GC_FUNCS
structure instead of HB_GARBAGE_FUNC_PTR and returned GC blocks are
locked so programmer does not have to worry that they can be removed
by GC.
+ added new internal function hb_gcAllocRaw() which works like
hb_gcAllocate() but returned GC blocks are not locked. They can
be used only in HVM in places well known that cannot activate
automatic GC scan. It should not be used by 3-rd party code.
* harbour/include/hbapi.h
* harbour/include/hbapiitm.h
* harbour/src/vm/extend.c
* harbour/src/vm/itemapi.c
* modified hb_parptrGC(), hb_parvptrGC(), hb_arrayGetPtrGC(),
hb_itemGetPtrGC() functions to use HB_GC_FUNCS structure instead
of HB_GARBAGE_FUNC_PTR
* modified hb_itemPutPtrGC() and indirectly related functions like
hb_arraySetPtrGC() or hb_stor[v]ptrGC() to automatically unlock
passed GC block just after attaching to known HVM item.
* harbour/include/hbregex.h
* harbour/src/rtl/hbregexc.c
* declare GC block detractor as static function
+ added hb_regexIs() function
* updated to work with new GC API
* removed unnecessary in new GC API hb_gcLock() call - GC blocks
allocated by hb_gcAllocate() are already locked and they mustn't
be locked explicitly by programmer (until he does not exactly knows
what he does ;))
* harbour/src/rtl/hbregex.c
* use hb_regexIs() instead of using regex GC destructor
* removed unnecessary in new GC API hb_gcUnlock() call - GC blocks
stored in HB_IT_POINTER item are automatically unlocked
* harbour/src/rtl/hbinet.c
* harbour/contrib/hbcurl/hbcurl.c
* updated to work with new GC API
% unlock items storing callback codeblocks and use GC mark functions
to mark them as used in GC passes
* harbour/src/pp/pplib.c
* harbour/src/vm/runner.c
* harbour/src/vm/codebloc.c
* harbour/src/vm/hashes.c
* harbour/src/vm/hvm.c
* harbour/src/vm/arrays.c
* harbour/src/vm/thread.c
* harbour/src/vm/dynlibhb.c
* harbour/src/rtl/hbzlibgz.c
* harbour/src/rtl/hbregex.c
* harbour/src/rtl/hbregexc.c
* harbour/src/rtl/hbgtcore.c
* harbour/src/rtl/hbi18n1.c
* harbour/src/rdd/wacore.c
* harbour/contrib/hbsqlit3/hbsqlit3.c
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbmzip/hbmzip.c
* harbour/contrib/hbhpdf/harupdf.c
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/hbwin/win_prn1.c
* harbour/contrib/hbwin/win_dll.c
* updated code which was using hb_gcAlloc() to work with new GC API.
* harbour/contrib/hbwin/axcore.c
* updated syntax description
TODO: update contrib code: hbqt, hbssl, ... to work with new GC API.
I would like to ask authors of above libraries to do it.
TODO: defined when and how we should free AX control and user callback
handler and update AX code to respect new definition
* utils/hbmk2/hbmk2.prg
+ Added option to control C compiler warning level:
-warn=yes mode will set the warning level exactly
the same way as it's set for Harbour builds. This
is also the default setting.
This setting is usually the highest useful setting,
which sometimes equals to C compiler default, sometimes
not.
-warn=no mode will try to turn off warnings. This works
exactly the same way as disabling warnings in Harbour
builds. Notice this isn't supported with all C compilers,
and with some compilers this equals to default C compiler
mode. This mode isn't recommended for any sort of serious
work.
-warn=def mode will leave everything as is, IOW to
C compiler defaults. There is no equivalent setting in
Harbour builds.
* config/wce/poccarm.mk
! Synced warning option with win/pocc.
* config/wce/msvcarm.mk
! Synced warning option with win/msvc.
! Synced HB_BUILD_MODE with win/msvc.
(this means C++ is now the default)
* config/win/xcc.mk
! Synced warning option with pocc.
* examples/hbmsql/tests/dbf2msql.prg
* examples/hbmsql/tests/test.prg
* examples/hbmsql/tests/hbmk.hbm
* examples/hbsqlit2/tests/hbsqlite.prg
* examples/hbsqlit2/tests/hbmk.hbm
* examples/hbapollo/tests/hbmk.hbm
* examples/hbapollo/tests/apollo.prg
* examples/hbvpdf/tests/pdf_demo.prg
* examples/hbvpdf/tests/hbmk.hbm
* examples/hbvpdf/tests/tstpdf.prg
! Fixed warnings and errors in example test apps.
+ Added -es2 option to test default options in examples.
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* removed old unused macros
* harbour/include/hbcompdf.h
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/cmdcheck.c
* harbour/src/compiler/complex.c
* harbour/src/compiler/hbcomp.c
* harbour/src/compiler/gencobj.c
* harbour/src/compiler/hbusage.c
+ added support for -gd[.<destExt>] switch.
When used Harbour compiler generates also .d file with dependencies
list in the form like for make systems:
<destFile>: <sourceFiles,...>
optional .<destExt> parameter value can be used to replace default
extension in <destFile>.
Now users can generate .d files without additional overhead in the
same pass as normal compilation by simple adding -gd[.<destExt>]
switch to compilation command instead of executing harbour compiler
second time with -sm switch.
* harbour/doc/man/harbour.1
* updated man page
* harbour/utils/hbmk2/hbmk2.prg
* removed -kj switch - it's not longer necessary to improve -sm
* minor formatting
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added support for .d dependency files as source files in both
command line and .hbc sources= line.
* Changed to use hash operators instead of functions in FindNewerHeaders().
[ Probably hashes could be used much more in hbmk2 code to optimize
some parts. ]
* Synced the way hb_FGetDateTime() call success is handled.
+ Added more provision for inctrypath handling in conjunction
with new dependency checking techniques. Still doesn't work
though.
; TOFIX: inctrypath with new dependency checking techniques.
; Please test .d support.
; NOTE: As for different fallback techniques when .d files are used,
well, maybe this should be somehow signaled on a .d file basis,
inside the .d file, like continue to check, stop checking, etc.
; NOTE: There is a slight chance for regressions.
* utils/hbmk2/hbmk2.prg
+ Added .d file parsing routines contributed by Przemek.
with few minor adaptations for hbmk2 and formatting.
; NOTE: Not yet used.
* contrib/hbwin/tests/testole.prg
+ Added PocketSOAP example. Contributed by Toninho.
* utils/hbmk2/hbmk2.prg
+ Added 'gcc -MM' based C header dependency detection in -head=native mode.
Please note that it's slower than regular methods, so for projects
with many .c source files this setting may not be ideal.
! Added gccomf to a few more places where checking for gcc family.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
* Renamed header parsing mode 'real' to 'native'.
Looks to be the final.
! Fixed minor error in prev: one debug message was always on.
! Turn off native .prg header parsing in -xhb and -hb10 operating
modes.
; TODO: for .prg header parsing use one compiler call instead of
one for each .prg.
; TODO: with gcc family compilers use 'gcc -MM' mode for header
parsing. Probably needs separate control, as (at first)
it seems to be much slower than current simple method.
* src/codepage/cpes850c.c
! Updated to be compatible with CA-Cl*pper.
Submitted by Maurizio Faccio.
* src/codepage/cpesisoc.c
* src/codepage/cpeswinc.c
* Synced with cpes850c.
* contrib/hbwin/tests/testole.prg
* Minor cleanups.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added support for new dependency checking method which uses
Harbour compiler to find out dependent files in incremental
mode. This of course only works for .prg sources, .c/rc source
dependency checking will continue to use simple method
which looks for '#include "' string.
Enable new mode with: -head=real cmdline or "head=real" .hbc
option. When this mode is active .c/.rc dependency checking
will be set to default 'partial' level.
NOTE: The activation method is tentative and will be finalized
after doing some functional and performance testing
with this new feature.
; TODO: Multimodule support in incremental mode isn't complete
and should be added. Currently all modules are considered
as equal dependencies of parent source. I'd appreciate if
this code would be peer-reviewed as I didn't make any
multimodule tests.
* contrib/hbtip/encqp.prg
+ Implemented quoted-printable encoder/decoder.
Not yet used. Not extremely well tested, just something
to start with. Please review. Probably should be done
in C for speed, but anyway.
* contrib/hbtip/sendmail.prg
* contrib/hbtip/mail.prg
+ Added 'charset' property and setting hb_sendmail().
Not yet effective, as Harbour uses 7-bit encoding yet.
* utils/hbmk2/examples/hmg.hbc
* Updated HMG hbmk2 config file with some extra tricks.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
* "(internal") -> "(embedded)" (also HU translation)
To avoid possible misunderstandings in some contexts.
* package/winuni/RELNOTES
+ Note about upx update. (still no win64 support, but there are
some other goodies for OS X and Linux)
* utils/hbmk2/hbmk2.prg
+ Enabled upx support on darwin. (You need to install it via
macports)
* INSTALL
+ Added upx to macports install list for darwin.
+ Added few missing '$' prefixes from commands included in text.
* config/common/watcom.mk
- Deleted OS/2 make bug workaround.
Thanks to David Arturo Macias Corona for instructions/tests.
* harbour/harbour.spec
! fixed to build with postinst.prg executed by shared linked hbrun
* harbour/bin/hb-func.sh
* harbour/debian/rules
* harbour/harbour.spec
% use HB_INST_PKGPREF instead of _DEFAULT_*_DIR
Please test DEB building in Debian, Ubuntu or in other DPKG
based distro. It probably has the same problem with postinst.prg
as all other builds.
* harbour/debian/rules
* harbour/harbour.spec
* harbour/mpkg_tgz.sh
* harbour/source/compiler/gencobj.c
* updated harbour.cfg localization in *nix builds
* harbour/utils/hbrun/Makefile
! restored support for default include directory in system wide builds
* INSTALL
* config/global.mk
* config/wce/msvcarm.mk
* config/win/msvc.mk
+ Replaced MSVC specific compiler version setting with generic
compiler version setting.
HB_VISUALC_VER_PRE80 and HB_VISUALC_VER_PRE70 setting are
deleted and HB_COMPILER_VER is activated.
; INCOMPATIBLE.
* config/global.mk
+ Added MSVC compiler version autodetection.
(6.0, 7.x, 8.0, 9.0)
* config/win/msvc.mk
+ Enabled UNICODE mode for MSVC 2008 (9.0) and above.
This compiler version doesn't support Win9x anyway.
* utils/hbmk2/hbmk2.prg
- Deleted support for HB_VISUALC_VER_PRE80 in hbmk2.
(HB_COMPILER_VER was already supported in hbmk2)
* INSTALL
+ More details to MS Windows SDK 7.
* utils/hbmk2/hbmk2.prg
! Minor typo in comment.
* config/win/bcc.mk
+ Added syslibs to dynlib link command. This seems to be needed
for some newer (6.20) versions of BCC.
Thanks Przemek for noticing, Mario for reporting.
And please test, I didn't do it for either BCC versions due
to lack of time.
* INSTALL
! Minor fix to OS/2 example.
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
! Fixed to use 'stripomf' tool instead of 'strip' in gccomf mode.
; Please only post comments on above patch if it contains real
information. I'm not interested in "This is wrong.", "You messed it up."
kind of comments, only in real information, since I'm not OS/2 user.
* INSTALL
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
+ config/os2/gccomf.mk
+ Added OS/2 GCC OMF support.
This tries to fix resource support in hbmk2 compared to David's
solution. hbmk2 support is completely newly done, .mk support was imported
as is, with little change in actication logic.
! Fixed to use $(ECHOQUOTE) in some $(ECHO) command parameters.
; NOTE: Until we don't add autodetection for OMF supporting GCC versions,
it will have to be selected manually using HB_COMPILER=gccomf.
Notice that for GCC 4.x this is obligatory since COFF support is
broken in these versions.
Additional EMX* envvar options are left as an excercise for the
users, I intentionally didn't document these in INSTALL, as INSTALL
servers as Harbour documentation, not 3rd party tools like GCC.
* config/global.mk
! Minor in comment.
* contrib/hbqt/Makefile
* contrib/hbqt/hbqts/Makefile
* contrib/gtqtc/gtqtcs/Makefile
* contrib/gtqtc/Makefile
! Disabled QT dependent parts for msvcia64 targets.
; Fails with error:
---
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : warning C4346: 'QVector<T>::iterator' : dependent name is not a type
prefix with 'typename' to indicate a type
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : error C2143: syntax error : missing ';' before 'QVector<T>::insert'
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
z:\devl\qt\4.5.2\include\qtcore\../../src/corelib/tools/qvector.h(541) : fatal error C1903: unable to recover from previous error(s); stopping compilation
---
* package/winuni/HARBOUR_README_MINGWARM
* Minor raw update to document newly found --force-local tar switch.
* config/global.mk
* utils/hbmk2/hbmk2.prg
+ Added autodetection for win/msvcia64 compiler.
* INSTALL
+ Tweaks to links.
* ChangeLog
! Fixed wrong entry header in my prev commit.
* INSTALL
* utils/hbmk2/hbmk2.prg
* config/os2/gcc.mk
! Reverted "rogue" patch. I'd like to kindly ask David,
to commit when doubts are cleared, otherwise I will
have to revoke R/W rights to avoid extra cleanup work.
This solution is wrong, for specific concerns see dev list.
* harbour/config/os2/gcc.mk
* harbour/utils/hbmk2/hbmk2.prg
+ Added support of OMF library format
To select alternative OMF library format, use:
set HB_OS2_OMF=yes
* INSTALL
+ Added note for OMF library format
* Makefile
* utils/Makefile
* Changed to build hbrun and hbmk2 in HB_BUILD_PARTS=compiler mode.
+ Added running bin/postinst.prg.
+ bin/postinst.prg
+ Added postinst.prg with test content.
* package/winuni/RELNOTES
* Added information about new MinGW CEGCC build.
* utils/Makefile
* Changed HB_UTILS setting name to HB_UTIL_ADDONS. To be
in sync with rest of similar settings.
* INSTALL
+ Documented HB_UTIL_ADDONS setting. (formerly HB_UTILS)
* INSTALL
* Pelles C support version numbers adjusted.
6.0 DOESN'T work with Harbour due to multiple bugs in this compilers.
Don't report such problems to the list.
* package/winuni/HARBOUR_README_MINGWARM
* Updated for latest cegcc binary release.
* utils/hbmk2/hbmk2.prg
! Typo in BSD macro redefinition.
* config/global.mk
+ Extended platform macro redefinition for all supported platforms.
+ Extended arch bit macro redefinition (didn't test it though)
* config/globsh.mk
! Fixed implib not being deleted when using POSIX shells.
! Fixed dynlib and implib not being deleted when using OS/2 or MS-DOS shells.
* utils/hbmk2/hbmk2.prg
* config/global.mk
! Changed .dll names for OS/2 to be the same as in MS-DOS:
harbour/harbourm. (.dll names in OS/2 are limited to 8.3)
* config/dos/djgpp.mk
! Attempt to fix empty line problem when stripping isn't requested.
Something better would be good here.
* config/os2/gcc.mk
! Fixed empty line problem when stripping isn't requested.