* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/moc_gtqtc.cpp
+ IMPLEMENTED :
Fired Events : HB_GTE_SETFOCUS | HB_GTE_KILLFOCUS | HB_GTE_RESIZE
Cursor : SC_NONE | SC_NORMAL | SC_SPECIAL1 | SC_SPECIAL2
! IMPROVED : Many artifacts.
* harbour/contrib/gtqtc/tests/demoqtc.prg
! Modified to demonstarte above changes.
NOTE: GTQTC is complete on base level. Only few gliches remain for
cursor management under certain circumstances. The lib is
tested on Winsow XP and QT 4.5 (2009.01). I am sure there
may be few issues coming up more you test on different
platforms.
So I am looking for feedback especially from *nix users.
(::) At this point I will request Przemek to review gtqtc.c.h
and point me to optimization it may require.
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/moc_gtqtc.cpp
! Fixed more Windows specific contents. It should compile
on *nixes now [ Qt::WindowCloseButtonHint could be the exception ]
+ Implemented timer event.
+ Implemented PALETTE functionality of GTWVT.
+ Implemented drawing console output to an image first and then
rendered onto the screen. This requirement is initiated because
nowhere I found a way to mimic blinking CARET.
The proof of concept is implemened through part of image
rendering in a timer event. It may introduce some overhead
but please be noted that we have to live with it until we
reach a proper solution.
Rendered to image and then flushed to screen is a powerful
feature of QT and we may take use of it in many ways in future.
Probably QTWVG will exploit it to maximum if we do not
plan some extenstions in GTQTC.
* harbour/contrib/gtqtc/tests/demoqtc.prg
! Demonstrated implemented facts as above.
Note the BLINKING block on the console, may be,
implemented as a replacement to windows caret.
* 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 support for envvar HB_VISUALC_VER_PRE80 to signal
older MSVC versions (just like in Harbour builds).
+ Synced mscvarm optimization switches.
The sync between hbmk2 and Harbour build switches is
now done. The only - intentional - difference is that
hbmk2 won't set any explicit C compiler warning level,
but this also can be implemented later with optional
switches.
! Fixed regression in win/icc linker name.
* utils/hbmk2/hbmk2.prg
! Fixed -strip for gcc family. It got broken after switching
to separate link phase.
! Fixed -bind_as_load and -multiply_defined suppress to be
passed at link phase on darwin. Got broken like above.
Change not tested.
! Fixed RTE in FINDNEWERHEADERS(3064).
* 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/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
! Fix to many unsuppoted defines on *nixes.
Przemek, please compile again. Probably by now it will
only 'WindowCloseButtonHint' error may appear. But reading
the documents QT nowhere specifies that it is platform
dependant member. Can you please comment out
#define QT_VERSION 0x040500 in hbqt.h and compile again.
It is left-over residual.
* utils/hbmk2/hbmk2.prg
+ Added support for wildcarded input files for Harbour,
C, resource compiler and object input files.
This also works in .hbm files. Note: You must specify
the extension, so *.* won't work, but *.prg and *.c will.
Use with care, as hbmk2 will pickup everything and this
may not be what you want to do f.e. in our tests dirs,
but it can be useful if you store source files belonging
to the same project in one dir, or with some unique
filename prefix.
(some of these may be unnecessary on *nix platforms, where
the shell does such expansion already, it's still useful
though, as *nix users can also benefit from wildcard usage
inside .hbm files)
* utils/hbmk2/hbmk2.prg
% Skipping duplicate headers while walking the inclusion tree.
This is a more efficient way to avoid inclusion loops,
allowing deeper recursion.
+ Recursion level increased to 10 (from 4).
* utils/hbmk2/hbmk2.prg
+ Added support for source file parsing for headers in -inc mode.
.prg, .c and .rc files are currently parsed recursively,
include paths will be scanned for included files. There are
currently three levels of scanning: disabled, partial (default)
and full. Partial will scan the first 16K of each source file
for performance reasons, full will scan the complete files.
The source parser is currently very simple; '#include "<filename>"'
pattern is recognized anywhere in the processed source, no
other variations are supported ATM. Using this format is IMO
best practice for user programs, if someone needs more
than this, it needs to be developed, current method is quite
fast, which is important when dealing with lots of source
files.
+ Added option to control header scanning: -[no]head=<mode>
This is also supported in .hbp files.
+ Added support to look in current dir for libs for compilers
where this is supported.
+ Added cmdline option -resflag=, .hbp option resflags= and
overall support for user supplied resource compiler flags.
+ Added support for cyg*.dll style libs.
! Fixed to handle libs with explicit dirs for compilers
where this is supported.
* config/dos/owatcom.cf
* config/win/owatcom.cf
* config/linux/owatcom.cf
* config/os2/owatcom.cf
+ Added link to wlink options.
* utils/hbmk2/hbmk2.prg
+ Added -inc support for lib dependencies. This means that
changed libs will also force a target rebuild.
I've implemented three separate logic for mingw/cygwin,
gcc/linux+sunos and the rest of compilers. This may not
be precisely the way each of the hbmk2 supported compilers
wotk, but it probably covers most cases. Anyhow please
tweak and correct if you find some problems. I did
tests with mingw, msvc, bcc static and shared mode.
! Removed automatic path tweak in .hbp/libpaths=.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/moc_gtqtc.cpp
* harbour/contrib/gtqtc/tests/demoqtc.prg
! More complete.
No more (IMO) Windows specific calls.
Please let me know if it compiles fine on *nixes ?
* utils/hbmk2/hbmk2.prg
! Fixed bcc targets linking wrong (own bcc) PCRE engine instead
of the Harbour one by reordering lib list. This should fix
hbtip problems reported on the list.
* utils/hbmk2/hbmk2.prg
+ libpaths= can now have relative paths specified, and in this
case the path will be adjusted by absolute path of host .hbp.
This makes it possible to point hbmk2 to a .hbp file in a
foreign dir, and let it pick up local lib dirs automatically.
+ .hbp files passed without absolute paths will now inherit
the .hbm path if applicable.
+ Will now echo all explicitly specified .hbp filenames on
screen in -info mode.
+ Added echo= support in .hbp files. The parameter will be
echoed to stdout as is.
+ Added macro support for following .hbp lines:
libpaths=, prgflags=, cflags=, ldflags=, echo=.
Supported macros are:
${hb_root}: hbmk2 base dir
${hb_parent}: .hbp file dir
${hb_arch}: architecture
${hb_comp}: compiler
${<envvar>}: any envvar
+ .hbp files are now searched in libpaths, too.
; NOTE: With above changes it's possible to refer to a 3rd
party lib solely by pointing to its .hbp file, from
that point all lib/include paths can be automatically
picked up. Here's an example for hwgui, the file
needs to be places in hwgui root dir:
---
{win}prgflags=-i${hb_parent}include
{win}cflags=-I${hb_parent}include
{win}libpaths=${hb_parent}lib
{win}libs=hwgui hwg_qhtm procmisc hbxml
{win}gt=gtgui
---
Any hwgui apps can be compiled with this command:
hbmk2 appname.prg C:\hwgui\hwgui.hbp
* contrib/hbtip/tests/dnldftp.prg
% Minor opt.
* utils/hbmk2/hbmk2.prg
+ Added support for -hbdyn option with bcc. .dll is created
but I cannot test if it's usable.
! Worked around strange behaviour of filefind API, when it will
return 'filename.extx' when we're looking for '*.ext' files.
This can be seen with Directory().
* utils/hbmk2/hbmk2.prg
! Fixed additional bcc link parameter to honor GUI/CUI mode.
This should fix the command window for GUI GTs.
* utils/hbmk2/examples/hwgui.hbp
! Fixed.
! Added gt=gtnul.
* 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:
* utils/hbmk2/hbmk2.prg
! Fixed Borland stub for both GUI and CUI mode.
This bug surfaced now that a separate link phase is always used.
! Fixed handling of libpaths with '-' chars in them for bcc.
* utils/hbmk2/hbmk2.prg
* Changed to put user supplied lib to the beginning of the lib
list. This should fix situations where user lib is overriding
some Harbour objects (like getsys).
+ Added internal switch to enable simple -inc debug.
! Fixed to add .prg extension for Harbour input files when
checking their timestamp, so files passed without extension
will now work in -inc mode.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/moc_gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
! Managed to set fonts and resize window accordingly.
So far just initially. Resizing scheduled.
! Code cleanup and arrangement.
* harbour/contrib/gtqtc/tests/demoqtc.prg
! A little tweaked.
+ contrib/hbcurl/hbcurls
+ contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
+ Added generation of static flavour of hbcurl. This can
be used to link against static libcurl.
* utils/hbmk2/hbmk2.prg
! Fixed target exe name with msvc.
! Added /debug link switch for msvc in -debug mode.
* utils/hbmk2/hbmk2.prg
+ Added -clean option to clean incremental work files and dir.
+ Added -rebuild option to force full rebuild in incremental mode.
* utils/hbmk2/hbmk2.prg
* Autodetection of embedded MinGW installation is now done
*after* trying to detect user installed compiler. This way
it's more natural to use the unified build as it will
automatically use the user's C compiler if setup. It's also
easier to override MinGW in unified builds, since there
is no need to force compiler using -comp: option, it's
enough to put preferred C compiler in the PATH.
* utils/hbmk2/hbmk2.prg
+ Added -workdir:<dir> cmdline option to override default
working dir (arch/comp) in -inc mode.
+ Added support for working directory in -inc mode.
Due to lack of output dir option in certain compilers
(most sadly in gcc family), these compilers will have to
be executed for each input file, slightly reducing
performance. I hope some day their developers will add such
basic option.
+ -quiet option will now suppress the header lines for
executed commands, creating a good progress output with
'-trace -quiet'.
! Fixed output related regressions in msvc/bcc.
* Removed explicit warning level settings from C compiler
options. User can override if needed.
* Returns errorlevel 19 instead of 9 in help mode. Now
returns 9 if the working dir couldn't be created.
! Fixed resource compiler command for bcc, msvc, pocc.
Turns out none of them supported multiple inputs.
% Minor code size optimization in target output dependency
checking.
* utils/hbmk2/hbmk2.prg
! Fixed to delete stub object in -inc mode.
! Fixed to handle .res input files with MinGW compilers.
+ Now using different extension (.reso) for compiled .rc and
.res file with MinGW compilers instead of former .o extension
which could collide with source files with the same name.
* utils/hbmk2/hbmk2.prg
* Added separate compile and link phases for gcc family.
Please retest, this may cause regressions.
* win/bcc made to use separate compile/link phases in all
cases.
+ Added simple progress in -inc mode.
! Fixed to detect target timestamp in hblib/hbdyn modes.
* utils/hbmk2/hbmk2.prg
+ Added support for incremental build mode. Still a work in
progress, many combinations weren't tested and some features
may not work with certain compilers yet. (bcc/msvc/pocc/owatcom
should be working, only msvc was tested)
+ Added support for multiple resource input files for mingw
and owatcom.
+ Added support for inc=on/off .hbp option.
+ msvc targets now use separate link phase. This will automatically
enable incremental linking if target already exists.
! Fixed not prepending CCPATH to resource compiler in mingw mode.
* 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/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/Makefile
! Few more optimizations.
- harbour/contrib/gtqtc/qtconsolearea.cpp
- harbour/contrib/gtqtc/qtmainwindow.cpp
- Removed. Needed to have better control over the operations.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/qtconsolearea.cpp
* harbour/contrib/gtqtc/tests/demoqtc.prg
! Few more HACKS - I know there are better ways to organize them.
Now our inkey() loop is active and demoqtc exits properly.
Plus you may see some activity in console.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/qtconsolearea.cpp
* harbour/contrib/gtqtc/qtmainwindow.cpp
! More fixes. Now we get background colors as in .prg.
It is a bit puzzling why I do not get text colors.
+ harbour/contrib/gtqtc
+ harbour/contrib/gtqtc/gtqtc.cpp
+ harbour/contrib/gtqtc/gtqtc.h
+ harbour/contrib/gtqtc/Makefile
+ harbour/contrib/gtqtc/moc_gtqtc.cpp
+ harbour/contrib/gtqtc/qtconsolearea.cpp
+ harbour/contrib/gtqtc/qtmainwindow.cpp
+ harbour/contrib/gtqtc/tests
+ harbour/contrib/gtqtc/tests/demoqtc.prg
+ harbour/contrib/gtqtc/tests/hbqt.hbp
+ Added GTQTC - The terminal based on QT framework - files.
NOTE: This is a proof of concept and needs an expert
brain. I will request Przemek to set the basic GT framework
in place. Rest will be quiet easy, easy than Windows itself.
demoqtc.exe remains in the memory after closing it with
X button. I have tried hard to set it right but have faised so far.
So you may need to kill it from task manager.
* harbour/contrib/gtwvg/tests/demowvg.prg
+ Added My_Alert() function which you can copy and
paste in your GTWVG linked applications to have a GUI
replacement of Alert() funtion.
* tests/bnch_win.bat
* tests/speedtst.prg
+ Added --stdout option to restore old feature to redirect output
to a file. Needed for bnch_win.bat.
+ In normal mode output will be saved in a file with the same name
of the executable with .txt extension. Makes it easier to make
side-by-side tests.
! Fixed SVN EOL.