* harbour/include/hbcomp.h
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbcomp.c
* harbour/source/compiler/compi18n.c
* changed -j<path>/ and -j<file> behavior when more the one .prg file
is compiled. Now when <path>/ is used then it's respected by all
compiler .prg modules. When <file> is used then only single .pot
file is generated but it contains i18n entries from all compiled
.prg modules.
* harbour/ChangeLog
+ added two thanks notes, one to Miguel and using HeapAlloc() and
second to Walter Negro for his DATETIME work in xHarbour what gives
valuable test platform for Harbour and was important inspiration for
Harbour TIMESTAMP implementation.
* harbour/source/rtl/hbi18n2.prg
+ added new Harbour internal i18n functions:
__I18N_POTARRAYTRANS() and __I18N_HASHJOIN()
* harbour/utils/hbi18n/hbi18n.prg
+ added new switch to hb18n tool:
-a add automatic translations to 1-st .pot file using
translations from other .pot or .hbl files
* bin/postinst.bat
+ Added generation of libpq.lib from .dll for msvc. (not tested)
+ Added generation of QT implibs for msvc. (not tested)
+ Copying QT implibs for mingw.
* source/common/hbverdsp.c
! Minor in comment.
* utils/hbmk2/hbmk2.prg
+ Added MT support for C compilation phase.
Single input compilers aren't covered yet (gcc, pocc).
+ Added -debugtime internal option to measure running time.
* COPYING
+ Added Creative Commons Attribution-ShareAlike 3.0 Unported (CC-by-sa)
license section. To be used for misc text, documentation and typically
everything which isn't source/program code. Currently these files
(in part or whole) are covered by this license:
INSTALL
ChangeLog
doc/whatsnew.txt
; TODO: If this works out well, IMO we should apply this license to
all non-code parts of our repository. /doc, /man sections
and some files in the root specifically. We can also cover
the homepage content with this license.
* INSTALL
+ Added CC-by-sa license.
* doc/whatsnew.txt
* ChangeLog
+ Added CC-by-sa license. I've covered all my past entries with
this license, besides these, only the new entries will fall
under the license.
* contrib/hbblat/blatwrp.c
! Fixed extern declaration to work in C++ mode.
* source/lang/msgtrwin.c
* source/lang/msgtr857.c
! Typos in comments.
* source/vm/set.c
+ Added copyright for few functions (hb_osEncode()/hb_osDecode()).
* utils/hbmk2/hbmk2.prg
! Fixed RTE in Harbour-only (-gh) mode.
* harbour/ChangeLog
* removed TOVERIFY note - Viktor checked it.
* harbour/contrib/hbct/ctwin.c
! redraw windows after each WCENTER() call
* harbour/contrib/rddads/ads1.c
+ added support for ADS_VARCHAR_FOX and ADS_VARBINARY_FOX fields
in ADS_VFP tables
* harbour/include/dbinfo.ch
* harbour/include/hbrdddbf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddnsx.h
* harbour/include/hbrddntx.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/workarea.c
+ added support for VFP tables with VARCHAR and VARBINARY fields
+ added support for VFP tables with NULLABLE fields
+ added new dbFieldInfo() action to check if given field is NULL, f.e.:
? dbFieldInfo( DBS_ISNULL, FieldPos( <cFieldName> ) )
The above modifications were not tested with real VFP files. I do
not have VFP. VFP users should make some real life tests with tables
created by VFP.
* harbour/source/compiler/complex.c
! fixed bug reported by Ranier
* harbour/ChangeLog
* added information to old ChangeLog entry that the idea of parsing the
code inside #pragma begindump to detect static harbour functions in
C code inside was 1-st time implemented by Andi Jahja in xHarbour.
* harbour/include/hbapi.h
* harbour/source/common/hbprintf.c
* harbour/source/common/hbstr.c
+ added hb_vsnprintf() - vsnprintf() replacement
* synced type of parameters in hb_snprintf() used for builds with and
without HB__USE_OWN_SNPRINTF
* harbour/include/hbapiitm.h
* harbour/source/vm/itemapi.c
* declared return value of hb_itemTypeStr() as const
* harbour/harbour.spec
* removed hbsqlite3 from default builds - it has to be optional due
to external dependencies in current version
* harbour/source/vm/hvm.c
% optimized memory allocation in cloned symbol tables to store
whole symbol table with all symbol names in single memory block
* harbour/include/hbrddcdx.h
* harbour/source/rdd/dbfcdx/dbfcdx1.c
+ added support for numeric indexes which store keys as modified
32bit big endian integer values - undocumented VFP hack.
* harbour/source/common/hbdate.c
! fixed decoding fractional part of seconds in timestamp expressions
when less the 3 digits were used.
* harbour/source/rtl/dateshb.c
+ added optional logical parameter to hb_TSToStr() function to enabled
packed/stripped form
* harbour/source/rtl/valtoexp.prg
% use hb_TSToStr() with new pack parameter in hb_ValToExp() and hb_CStr()
* harbour/contrib/hbqt/hbqt.h
! fixed QT directory names in #include directives for case sensitive
file systems
* harbour/source/vm/cmdarg.c
! fixed HB_CMDLINE() to work with linear not square cost.
* harbour/include/hbcomp.h
* harbour/source/common/hbdate.c
* harbour/source/rtl/strmatch.c
* harbour/source/rtl/fssize.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
* enabled some POSIX function added to 1.8 Linux OpenWatcom builds
and cleaned some workarounds not longer necessary
* harbour/source/rtl/hbproces.c
+ added hack with small sysconf() implementation which is still missing
in OpenWatcom 1.8. Now it's possible to build Harbour in Linux using
officially distributed OpenWatcom 1.8
* harbour/source/rtl/disksphb.c
* added TODO warning message
* harbour/source/compiler/cmdcheck.c
! fixed typo in memory freeing in repeated -p<path> options
* source/vm/Makefile
+ Enabled "amalgamated" VM lib for all compilers/platforms,
except for those where this doesn't give any advantage, or
it breaks the build, these are: pocc*, xcc, bcc, dmc.
Please note that Open Watcom 1.7 might also fail (I didn't
test), so make sure to upgrade to 1.8.
* harbour-win-spec
* harbour-wce-spec
* mpkg_win.bat
* mpkg_tgz.sh
* harbour.spec
* bin/hb-func.sh
* include/hbsetup.h
* source/vm/Makefile
* source/vm/fm.c
- source/vm/fm
- source/vm/fmmt
* utils/hbmk2/hbmk2.prg
- Removed hbfm and hbfmmt lib references. These libs are
no longer generated or used.
* Narrowed HB_FM_STATISTICS presence in various source
files. From now on the system default for all builds is
HB_FM_STATISTICS_OFF. We may change this to
HB_FM_STATISTICS_DYN_OFF if we find a solution to the
potential and actual problems with this method.
If someone needs to change mem stat default, it can be
done by ususal means.
* utils/hbmk2/hbmk2.prg
+ Added -opt/-noopt switch (plus .hbp param) to control
C compiler optimizations.
+ Added C compiler optimizations to all compilers identical
to the ones used to build Harbour. Specifically MinGW,
MSVC got new switches, bcc got -6, owatcom got fully
synced.
+ Added internal support for C++ mode selection for all
compilers.
+ Added -debug support for all compilers where it was missing
(most).
! Synced poccarm switch with Harbour build.
- utils/hbmk2/examples/minigui.hbp
+ utils/hbmk2/examples/hmg.hbp
+ Harbour MiniGUI hbmk2 param file updated
and instructions added. Now it's possible
to build hmg apps using hbmk2 very easily,
see instructions in file.
* utils/hbmk2/examples/hwgui.hbp
+ hwgui hbmk2 param file updated and
instructions added. Now it's possible
to build hwgui apps using hbmk2 very easily,
see instructions in file.
* source/vm/itemapi.c
* source/rtl/hbffind.c
* contrib/hbct/atnum.c
! Fixed macro related warnings.
* harbour/source/vm/garbage.c
+ added optional support for automatic GC activation.
It's not enabled by default yet but by compilation with macro
HB_GC_AUTO, f.e. after setting envvar:
set HB_USER_CFLAGS=-DHB_GC_AUTO
Automatic GC activation may be necessary for code which creates
complex variables with cyclic references and does not execute
any other code which may activate idle state GC call. It also
makes unnecessary to explicitly call hb_gcAll() from user code,
f.e. as some type of background task. If some of you were using
code which needed such explicit GC activation then please remove
it and make some tests with Harbour compiled with HB_GC_AUTO macro.
This simple .prg code illustrates the problem. When linked with HVM
without automatic GC it quite fast allocates all available memory
and finished with out of memory error or is interrupted by OS.
When automatic GC is enabled it can work unlimited time period
with some fixed maximum memory usage.
proc main()
local a
while .t.
a:={nil}
a[1]:=a
enddo
return
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwvg.c
! Fixed a long standing bug - window mismanaged when clicking on titlebar.
Processed WM_NCLBUTTONDCLK:
* tests/speedtst.prg
! Fixed missing hb_progname() for non-Harbour compilers.
* include/hbextern.ch
+ Added time related new functions.
* utils/hbmk2/hbmk2.prg
+ Added -runflag: option to pass flags to target executable.
+ Started -inc (incremental link) support. It's very early
stage, don't expect it to work yet and please don't report
any problems with this feature yet.
* source/vm/asort.c
! Fixed to return Clipper compatible results when non-logical
non-numeric value is returned from ASORT() codeblock.
* utils/hbtest/rt_array.prg
* Cleaned ASORT() tests when sorting block returns constant value.
Now Clipper results aren't bent anymore, instead I've added
different expected results for Harbour and Clipper. The
difference is due to different sorting algorithms used,
here the point is to get similar *pattern* for different
invalid values.
* source/rtl/philes.c
% HB_FGETDATETIME(): Removed double call to hb_stortdt().
* contrib/hbqt/tests/hbqt.hbp
* Removed extra line at EOL.
* contrib/gtqtc/tests/hbqt.hbp
! Removed environment dependent 'libspath=' line.
Please don't add such path to Harbour SVN, since these
can differ from system to system and is also non-portable.
The correct name of the directive is: 'libpaths='.
* contrib/gtqtc/Makefile
% Removed double SVN ID.
This file needs to be updated according to hbqt latest
Makefile portability changes.
* contrib/rddads/ads1.c
* Minor formatting.
* harbour/source/vm/Makefile
* harbour/source/vm/vmmt/Makefile
+ harbour/source/vm/hvmall.c
% added optional compilation HVM core files as single unit.
It allows to use interprocedural optimizations for all defined
functions. It's useful when compiler does not support IPO at link
time. It should give some noticeable speed improvement for compilers
which can benefit from such optimizations, f.e. GCC, ICC, MSVC.
In my Linux box (GCC 4.3) it gives ~7% speed improvement in
speedtst.prg linked with ST HVM and a little bit more in MT mode.
It's interesting that it also reduces the HVM library size.
At least for GCC builds.
Set HB_HVM_ALL=yes envvar to enable such compilation.
Warning some compiler may not compile such long single C file.
* source/common/hbver.c
+ Added skeleton for hb_verHostCPU()
* source/rtl/trace.c
! HB_TRACESTRING() fixed potential GPF if non-string parameter
was passed.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed demo to not refer to gtgui on non-Windows systems.
! Fixed RTE when source file isn't found. (not verified)
! Change EOL handling.
! Fixed to use portable path seps when generating demoqt.prg.
* contrib/hbqt/generator/qt45.qtp
! Fixed to use forward slashes. Didn't test if this broke non-*nix.
* contrib/hbqt/qth/QWindowsXPStyle.qth
! Fixed Windows specific QT function wrapper to compile on non-Windows.
* contrib/hbqt/qth/QPixmap.qth
! Deleted Windows specific HBITMAP related functions.
* contrib/hbqt/tests/hbqt.hbp
+ Added support for darwin
* contrib/hbqt/Makefile
* contrib/hbqt/generator/hbqtgen.prg
+ Added support for QT for Darwin official SDK package
I had to change the way headers are included to follow the
QT standard and pass each QT lib header dir on the command
line instead of using subdirs in #include directives.
; TODO: Probably this change should be applied to all .qth files,
but on Darwin it worked without this change for some reason.
* contrib/hbqt/tests/demoqt.prg
* contrib/hbqt/TQPixmap.prg
* contrib/hbqt/hbqt_utils.cpp
* contrib/hbqt/hbqt_qwidget.cpp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_qwindowsxpstyle.cpp
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
* contrib/hbqt/hbqt_qpixmap.cpp
* Regenerated.
* harbour/contrib/hbqt/Makefile
* added /usr/include to list of directories scanned for QT header files
* harbour/contrib/hbole/olecore.c
! added missing return
* formatting and minor cleanup
* harbour/source/vm/arrays.c
* formatting
* harbour/source/vm/asort.c
! minor CA-Cl*pper compatibility fix - if sort codeblock returns
numeric value then it should be used as logical one (0 means FALSE)
* harbour/include/hbstack.h
* harbour/source/vm/estack.c
+ added macro to force static hb_stack declaration even if
HB_STACK_MACROS is internally used
* harbour/source/vm/initsymb.c
* harbour/source/vm/hashfunc.c
* harbour/source/vm/evalhb.c
* harbour/source/vm/pcount.c
* harbour/source/vm/runner.c
* harbour/source/vm/debug.c
* harbour/source/vm/pvalue.c
* harbour/source/vm/cmdarg.c
* harbour/source/vm/proc.c
* harbour/source/vm/eval.c
* harbour/source/vm/dynlibhb.c
* do not use hbvmopt.h if it's not necessary or use hbvmint.h instead
to clean all direct references to hb_stack variable
* harbour/source/rtl/hbstrfmt.c
+ added precision support for %s and %d.
COMMENT: I've used GNU printf() function for test. Some of
formats is not supported by it. For example, zero padding is
ignored if left alignment is used, etc. I'm not sure if it is
intentional.
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbcomp.c
! fixed ignored -es2 compiler flag when warning is caused by startup
parameters
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.y
* pacified warning
* harbour/harbour.spec
! fixed doc/en directory name to doc/en-EN
* harbour/source/vm/Makefile
+ harbour/source/vm/maindllh
+ harbour/source/vm/maindllh/Makefile
+ added hbmaindllh library - it's necessary for some compiler to create
working harbour.dll, f.e. in OpenWatcom builds. Please updated
harbour.dll build scripts to use this library with such compilers.
MinGW based compilers do not need it.
* harbour/source/vm/Makefile
! fixed typo which broke wce builds
* harbour/source/vm/Makefile
* harbour/harbour-wce-spec
* harbour/harbour.spec
+ added mainstd mainwin maindllh maindllp to all win and wce builds
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/harbour.spec
+ added support for parallel compilation (-j make flags) in RPMs
which supports %{_smp_mflags} macro
! temporary fix: disabled harbour external libraries.
I do not know what should be the final version.
; WCE builds are still broken due to repeated macro definitions
but I'm lost with the new build time parameters and I do not
know how to fix it without breaking hbce* scripts or bad introduce
some interactions to other build/install time scripts so it will
have to be fixed by Viktor.
* harbour-wce-spec
* INSTALL
* bin/postinst.bat
* Makefile
* make_gnu.bat
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/gtalleg/Makefile
* contrib/hbodbc/Makefile
* contrib/hbtpathy/Makefile
* contrib/hbole/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/hbwin/Makefile
* source/vm/Makefile
* source/vm/vmmt/Makefile
+ Added wce arch and mingwarm/msvcarm/poccarm support.
In parallel with old win/mingwce|msvcce|poccce support.
As soons as this new one work, the old one will be deleted.
* make_gnu.bat
! Fixed to work like rest of targets for GCC family.
It will now only initiate a 'clean install' if HB_BUILD_DLL=yes.
* utils/hbmk2/hbmk2.prg
+ Added Przemek's code for rtlink/blinker script parsing.
Not yet activated.
* harbour/source/rtl/dircmd.prg
! small fix in 'DIR <filemask>' DOS like output formatting.
Note: this function uses strict DOS like 8.3 file name convention
in the output so it will play well with long file names.
Maybe we should change the output formatting?
* harbour/source/vm/hvm.c
* harbour/source/vm/fm.c
* harbour/source/vm/cmdarg.c
! fixed GPF when hb_vmInit() is called without initializing
application startup parameters by hb_cmdargInit().
Thanks to Enrico's friends for information about the problem.
* some code cleanup
* harbour/include/hbexpra.c
! verify all expression POP operation for usage as LValue
* harbour/include/hbexprb.c
! fixed possible GPF in unverified send context
+ added support for IIF() usage as LValue even if it cannot be
reduced during [macro]compilation
* harbour/source/macro/macro.yyc
* harbour/source/macro/macro.y
* harbour/source/macro/macrolex.c
* removed support for some characters unsupported by Clipper in
macro expressions like chr(10) as trailing expression character, f.e.:
? &("DATE()"+chr(10))
* harbour/source/compiler/complex.c
* formatting
* harbour/doc/Makefile
! removed unexisting license.txt file
* harbour/include/hbapidbg.h
* do not export Harbour debugger functions. If someone wants to create
3-rd party debugger then we should agree the list of functions which
should be public.
* harbour/include/hbstack.h
* minor cleanup in some definitions
* harbour/include/hbdefs.h
+ added HB_DLL_ENTRY_POINT macro to set default DLL entry point for
different Windows compilers
* harbour/source/vm/maindllh.c
* harbour/source/vm/maindllp.c
* use HB_DLL_ENTRY_POINT macro
* harbour/include/hbsetup.h
* added internal macro to disable flatten optimization
* harbour/include/hbmath.h
* harbour/source/rtl/math.c
* make default math error handler function static
* harbour/include/hbatomic.h
+ added atomic inc/dec inline asm code to OW x86 builds
* harbour/source/rtl/console.c
* small code reorganization to not mix public and private function calls
* harbour/source/rtl/hbregex.c
* harbour/source/hbpcre/_hbpcreg.c
* do not use hb_xfree() function pointer directly to avoid problems
with different calling conventions.
* harbour/config/win/owatcom.cf
* harbour/config/os2/owatcom.cf
* removed unnecessary in recent OpenWatcom versions explicit wlink.lnk
including.
* harbour/source/vm/dlmalloc.c
! fixed casting
* harbour/source/vm/fm.c
% use DLMALLOC as default memory manager in OpenWatcom Windows builds.
Warning: HB_FM_DLMT_ALLOC does not work with OpenWatcom.
* harbour/config/dos/owatcom.cf
* harbour/config/win/owatcom.cf
* harbour/config/linux/owatcom.cf
* harbour/config/os2/owatcom.cf
* changed alignment settings from 8 to 4
* synced optimization flags used in different builds
! fixed linker parameters when HB_BUILD_DEBUG=yes is set
; TOVERIFY: I do not remember what calling convention should be used
in OpenWatcom MT OS2 builds to eliminate GPF when APIENTRY16 functions
are called. It's possible that current settings are wrong.
* harbour/config/win/owatcom.cf
* removed STACK=65536 from OpenWatcom linker parameters.
This switch probably was inherited from old DOS WatcomC builds.
Later I'll test current OpwnWatcom builds to check if we can also
remove it from DOS builds when cwstub.exe is used.
* restored -bm switch. When DLMALLOC is used it does not cause
noticeable performance reduction.
* use default register calling convention. We can change it
in the future but 1-st we should check the performance overhead.
If calling convention is a problem only for .DLLs then it can
be resolved by modifying HB_EXTERN declaration and adding function
attributes which will force given calling convention.
* harbour/config/linux/owatcom.cf
* enabled pentium pro instruction in OpenWatcom Linux builds.
It reduces the code size and increase performance a little bit.
Windows users which do not need pure pentium CPU support can make
the same.
* harbour/utils/hbmk2/hbmk2.prg
! fixed object extension used in OpenWatcom Linux builds: it's .o not .obj
! fixed linker parameters in OpenWatcom Linux builds: DEBUG ALL is single
option
! fixed OpenWatcom calling convention settings. Viktor you cannot chose
simultaneously register and stack calling convention. You have to chose
one and keep it synced with Harbour compile time settings. Otherwise
you will have unresolved external or you will force creating by linker
dynamically function call wrappers (of course if OW support such
functionality) what may strongly reduce the performance.
! removed -j compile time switch - it's not used to compile core code
* synced optimization flags with core code
I'm really interested in current OpenWatcom speedtst results compared
with other Windows builds (MSVC, MinGW, BCC, POCC) in ST and MT builds.
* config/dos/owatcom.cf
* config/win/owatcom.cf
* config/linux/owatcom.cf
* config/os2/owatcom.cf
% Tweaked optimization options. This will result in slower
build process, but more optimal runtime performance and
executable sizes. One option is now turned on which can
cause bad code with OW 1.1, so make sure you use latest
Open Watcom version, after all the upgrade is free.
It'd be great if owatcom users could make speedtst runs
with this revision and older ones to see the difference,
maybe now owatcom won't perform so poorly as before.
+ Added link to C compiler option docs.
! Fixed to convert slashes in HB_USER_CFLAGS.
% Enabled -5r for DOS and OS/2.
* contrib/hbct/disk.c
! Disabled some volume/disk related code for WinCE.
* contrib/xhb/hbserv.c
! Disabled for poccce.
* contrib/hbnf/getenvrn.c
! Disabled FT_GETE() for poccce.
! Fixed FT_GETE() to return zero/empty string on platforms not
supported (like also OS/2).
* doc/en-EN/Makefile
- doc/en-EN/error.txt
+ doc/en-EN/errsys.txt
* source/rtl/Makefile
- source/rtl/fserror.c
- source/rtl/errorapi.c
- source/rtl/errorapu.c
- source/rtl/errorint.c
- source/rtl/errorsys.prg
+ source/rtl/fserr.c
+ source/rtl/errapi.c
+ source/rtl/errint.c
+ source/rtl/errapiu.c
+ source/rtl/errsys.prg
* contrib/examples/hbdoc/examples/core_es/Makefile
- contrib/examples/hbdoc/examples/core_es/error.txt
+ contrib/examples/hbdoc/examples/core_es/errsys.txt
* Most filenames containing 'error' renamed to make
it easier to search for errors in build logs.
; Three headers remain.