2009-03-10 18:18 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* ChangeLog
* Updates.
* contrib/xhb/txml.prg
* Update HB_REGEXMATCH() calls, to keep old logic.
; TOFIX: Above doesn't mean it's now correct, so
someone familiar with this code, please
correct it.
* contrib/hbapollo/apollo.c
* Removed essentially empty comments.
* source/rtl/achoice.prg
! Applied fix from Vladislav Lavrecky.
I didn't test it just assumed okay, please do so.
* ChangeLog
* Updates.
* contrib/xhb/txml.prg
* Update HB_REGEXMATCH() calls, to keep old logic.
; TOFIX: Above doesn't mean it's now correct, so
someone familiar with this code, please
correct it.
* contrib/hbapollo/apollo.c
* Removed essentially empty comments.
* source/rtl/achoice.prg
! Applied fix from Vladislav Lavrecky.
I didn't test it just assumed okay, please do so.
* source/rtl/hbregex.c
* Fixed HB_REGEXMATCH(). Now the HAS/LIKE mode can be controlled
by 5th logical parameter (was 3rd), so 3rd parameter is solely
controlling case-sensitivity as indicated in the documentation.
Users are recommended to use HB_REGEXHAS() and HB_REGEXLIKE()
functions as unambiguous alternatives, which work equally
well on all Harbour versions. HB_REGEXMATCH() is now deprecated,
but kept for compatibility.
* utils/hbmk2/hbmk2.prg
* -debug description extended.
* contrib/xhb/hbcompat.ch
- Disabled dangerous bitop compatibility macros + comment added.
Enabled them with #define XHB_BITOP. Or even better
to change code to use HB_BIT*() functions natively.
* utils/hbmk2/hbmk2.prg
+ Added support for static lib creation (experimental).
win/msvc, win/bcc are supported.
+ Added support for dynamic lib creation (experimental).
win/msvc is currently support.
; Please help adding support for the rest of compilers.
* harbour/source/compiler/hbusage.c
! fixed the /u+ description - it does not work like #include.
Only preprocessor command are significant in files included
by -u<file> and -u+<file>
* harbour/doc/man/harbour.1
+ add -u+<file> description
* harbour/source/pp/ppcore.c
! fixed typo in error message table (missing ',')
* harbour/source/compiler/cmdcheck.c
* generate error when -u+ is used without <file>
* harbour/source/compiler/hbmain.c
* do not display usage screen if other errors were generated before
* source/compiler/hbusage.c
+ Added -u+ to help screen.
* One remaining non-ASCII char cleaned from credit list.
* include/hbpp.h
* source/pp/ppcore.c
! Renamed HB_PP_MAX_REPATS to HB_PP_MAX_REPEATS.
* ChangeLog
* Added one line to my prev entry.
* harbour/include/hbcompdf.h
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/hbcomp.c
* harbour/source/compiler/ppcomp.c
+ added support for extended definition files in Harbour compiler
switches: -u+<file>
This option can be repeated if user wants to use more then one
file with extended definitions. The definitions are added after
standard ones and after defines specified by -D<name>[=<value>]
Harbour compiler switch.
The behavior of -u[<file>] remains unchanged and -u or -u<file>
can can be used together with -u+<file>.
Note for xHarbour users: it's not exactly the same behavior as
in xHarbour compiler.
! fixed memory leak when repeated -u[<file>] options are used.
* harbour/include/hbpp.h
! changed the NOT operator precedence - it should be bigger then
logical .and./.or. operators in #if expressions
* harbour/source/vm/thread.c
! fixed typo HB_OS_WIM -> HB_OS_WIN - thanks to Francesco.
* harbour/include/hbthread.h
* harbour/source/vm/thread.c
* emulate POSIX thread conditional variables in Windows builds.
It should fix some possible bad behavior in MS-Windows Harbour
MT programs.
* harbour/source/rtl/hbinet.c
! fixed typo in HB_INETDATAREADY() - the second parameter (timeout)
was ignored.
* harbour/contrib/examples/uhttpd/uhttpdc.c
* fixed typo in conditional iMsec usage.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* set default timeout for socket operations to 3 sec.
* use timeout parameter in HB_INETDATAREADY() and
increased default timeout for accept to 250 millisecs.
Please correct this modification if you prefer different values.
* INSTALL
+ Added short information for Darwin/MacPorts and contribs.
* contrib/hbmysql/Makefile
* contrib/gtalleg/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/hbpgsql/Makefile
+ Enabled on Darwin (for MacPorts).
* include/hbdefs.h
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/Makefile
+ Enabled on Darwin (for MacPorts).
+ Added ugly hack to make it compile on Darwin.
* contrib/hbtpathy/Makefile
+ Enabled on Darwin.
* utils/hbmk2/hbmk2.prg
+ Normalizing paths of cfg files.
* CCPREFIX, CCPATH renamed to HB_CCPREFIX, HB_CCPATH
(seems these are Harbour specific settings)
* contrib/examples/uhttpd/home/testxmldb.html
* Added Safari as unsupported browser.
(BTW, what would it need to support Safari and Chrome, or
WebKit browsers in general?)
* harbour/contrib/examples/uhttpd/uhttpd.prg
- Commented hb_GCAll() in main loop, I got newly one GPF randomly.
In meanwhile I will do other tests.
! Reverted and corrected closing threads because with last changes
finished threads were not correctly released.
* harbour/source/common/hbgete.c
* added suport for BSD systems
* harbour/contrib/examples/uhttpd/uhttpd.prg
! fixed private declaration - after last modification they were not
declared for threads at all
! fixed close procedure, s_aRunningThreads and s_aServiceThreads
where not protected at all in the moment when these variables
variables where used inside aeval() and other threads were
resizing them removing their pointers. In short word it was
in practice impossible to cleanly close uhttpd server without
GPF, deadlock or other bad side effects. I changed this code so
these arrays are modified only by calling procedure.
I do not know why it was written in such way but I guess it
was workaround for xHarbour bugs. In xHarbour is race condition
inside some functions like ThreadJoin() (RTE if thread finished
just before ThreadJoin(<pThID>)). Harbour does not have such
problems so I simply cleaned this code making it much simpler.
* reactivated hb_gcAll( .T. ) in the main loop for tests.
I made some tests with linux and current uhttpd works perfectly
without any problems with and without hb_gcAll( .t. ).
I haven't noticed any problems. I used this scripts to make
tests:
#!/bin/sh
function GT_UHTTPD()
{
while curl http://127.0.0.1:8082/ > /dev/null
do
if ! curl http://127.0.0.1:8082/serverstatus > /dev/null
then
exit
fi
# disable it if you want to increase traffic
if ! curl http://127.0.0.1:8082/info > /dev/null
then
exit
fi
if [ -f stop ]
then
exit
fi
done
}
for i in `seq 10`
do
GT_UHTTPD &>/dev/null &
done
wait
on three CPU machine. Please make some test with other systems.
* contrib/examples/uhttpd/uhttpdgd.hbm
+ Added *nix GD lib name.
* contrib/hbwin/win_prt.c
! WINPORTWRITE() potential GPF if non char type is passed as 2nd arg.
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
- Commented hb_GCAll() in main loop, I got one GPF randomly.
* Fixed an error on threads number calculation
* harbour/source/vm/classes.c
* forbid some usage of __clsModMsg() and unblock some others
It should make some xHarbour users using OVERRIDE METHOD happy
but please remember it's still undocumented and unsupported
functionality - use for your own risk.
* harbour/contrib/gtwvg/Makefile
+ wvgtabpg.prg
* harbour/contrib/gtwvg/wvtwin.ch
* harbour/contrib/gtwvg/wvgparts.ch
+ Added constants to manage Tab Pages
* harbour/contrib/gtwvg/gtwvg.c
! Changed the behavior if a GT is child of another GT.
* harbour/contrib/gtwvg/wincallb.c
! Cleanups.
* harbour/contrib/gtwvg/wvgsink.c
! Cleanup.
% Fixed a potential nasty bug. Kept it in the code to refer if some
problem arises in the future.
* harbour/contrib/gtwvg/wvgwin.c
! Cleanup. Removed yet unfinished code.
* harbour/contrib/gtwvg/wvgcombo.prg
! Cleanups and documentation update.
* harbour/contrib/gtwvg/wvgcrt.prg
! Changed the style of modal GT console.
* harbour/contrib/gtwvg/wvgwnd.prg
% Rearrangement of methods.
! Updated to use either protocol - HB_ASCallBck() or SetProp()
controllable by a #define constant.
+ harbour/contrib/gtwvg/wvgtabpg.prg
+ Started WvgTabPage() compatible with - XbpTabPage() of Xbase++.
Unfinished but yet usable as demonstrated in demowvg.prg.
* harbour/contrib/hbwin/hbwapi.h
+ Added wapi_par_WORD|DWORD() macros.
* harbour/contrib/hbwin/wapi_commctrl.c
+ Added TabCtrl_* WINAPI macros as functions.
* harbour/contrib/gtwvg/tests/demowvg.prg
! Updated to execute pure Xbase++ code in all its fury.
+ Added WvgTabPage() implementation via CUI+GUI demo in
<Traditional><WVG Console with GCUI> menu option.
* utils/Makefile
* Minor reordering.
* config/win/poccce.cf
* config/win/pocc.cf
! Turned off -Ox, left -Ot.
"When it comes to optimizations, the -Ot option (in this case) is the much
more important than -Ox. The -Ox option will only rarely find things to
optimize, and in your case it will cause a GPF. I suggest you skip the -Ox
option and just use the -Ot option for now...
Pelle"
* harbour/source/rdd/usrrdd/usrrdd.c
! removed unnecessary declaration
* harbour/source/compiler/harbour.yyc
! removed unnecessary ";"
* harbour/source/vm/classes.c
* harbour/source/compiler/hbpcode.c
* pacified some warnings for compilers which can detect that
hb_errInternal() does not returns
* harbour/source/rtl/hbgtcore.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/contrib/rddads/adsx.c
* marked all places where we put some link time bindings after
hb_errInternal() as: /* not executed, only to force linking ... */
* utils/hbmk2/hbmk2.prg
! Fixed -gh switch detection and workings.
(Francesco, pls check now allmod.hbm)
+ -gt switch can now be filtered. (-gtwin{win})
! -gui switch won't anymore add '-Wl,-mwindows' C compiler switch
on *nix systems. Someone pls confirm this is right.
* icc will use -vc postfixed .dlls. They seem to be binary
compatible, but I didn't test.
% Using __PLATFORM__UNIX macro where applicable.
! Ignoring -o Harbour option passed using '-prgflag:'
* INSTALL
+ Added some details.
* mpkg_win.bat
! Don't create install files if the make process returned
with error.
* source/lang/msg_tpl.c
! Removed ending ';'.
* source/vm/Makefile
+ Added icc to generate maindllh.lib.
* source/common/hbfsapi.c
! Removed obsolete 'extern hb_fhnd_ForceLink()'.
* config/rules.cf
* config/lib.cf
* config/bin.cf
% Compiling all .prg files with -n1 switch.
* contrib/examples/uhttpd/uhttpdc.c
* Cleaned Windows headers usage.
#define HB_OS_WIN_USED is safe to use on all platforms,
it just requests the Windows headers, and if compiled on
Windows, it will #include them.
* contrib/examples/uhttpd/uhttpd.prg
+ Automatically sets USE_HB_INET on non-Windows platforms.
- contrib/examples/uhttpd/uhttpd-inet.hbm
- contrib/examples/uhttpd/uhttpdgd-inet.hbm
- Removed files no longer necessary.
* contrib/examples/uhttpd/uhttpd.hbm
+ Added comment about -DUSE_HB_INET option.
% Removed -lhbct
* harbour/contrib/examples/uhttpd/uhttpd.prg
* Updated uHTTPD (Work in progress)
* Updated to work in Linux.
* Fixed PRIVATE use and threads as per Przemek suggestions
* Marked WIN_SYSREFRESH() with USE_WIN_ADDONS define
* Changed WIN_TIMEZONEBIAS() to hb_UTCoffset()
* Changed WIN_SETENV() to hb_SetEnv()
* Minor changes
* harbour/contrib/examples/uhttpd/uhttpdc.c
* Marked WIN_SYSREFRESH() as only windows function
- Deleted WIN_SETENV()
- Deleted WIN_TIMEZONEBIAS()
+ Added hb_UTCoffset()
* harbour/contrib/examples/uhttpd/socket.c
* Guarded for only windows build
* harbour/contrib/examples/uhttpd/session.prg
* Changed FileDate() to hb_FGetDateTime()
* harbour/contrib/examples/uhttpd/uhttpd.ini
* Minor fixes
* harbour/contrib/examples/uhttpd/modules/showcounter.prg
* harbour/contrib/examples/uhttpd/modules/tableservletdb.prg
* fixed Linux build
+ harbour/contrib/examples/uhttpd/uhttpd-inet.hbm
+ harbour/contrib/examples/uhttpd/uhttpdgd-inet.hbm
+ Added as temporary files to build uhttpd under Linux
(they haven't -gui flags that give error as per Przemek
note, instead add -gtxwc as standard gui)
; NOTE:
Przemek please check if hb_UTCOffSet() it is correct, then we have to move in
other place.
Tested all samples and they works.
Modules build need to be fixed (Viktor?) but hrb are built. Need to be copied
manually to ../home/cgi-bin
* include/hbextern.ch
+ Added HB_SETENV()
* utils/hbmk2/hbmk2.prg
* Minor cleanups.
* contrib/examples/uhttpd/uhttpd.hbm
- Removed -n. It's now automatic.
; TODO: Remove the rest.
* INSTALL
* doc/man/hbmk.1
+ config/win/icc.cf
* utils/hbmk2/hbmk2.prg
+ Added Intel(R) C++ compiler support for Windows.
+ Added initial support also in hbmk2.
; This compile is actively developed and its famous of
generating the fastest running code of all C compilers.
It also outputs an extremely detailed warning list.
And the best thing: It compiled Harbour without a single
hitch. hbtest is also running fine. hbmk2 is able to
create executables.
* harbour/include/hbapi.h
* harbour/include/hbwince.h
* harbour/source/common/hbgete.c
* harbour/source/common/hbwince.c
+ added BOOL hb_setenv( const char * szName, const char * szValue )
It sets or deletes (szValue==NULL) environment variable.
Please add support for other compilers/OS-es or define
unsupported platforms to eliminate TODO warning.
For sure OS2 version have to be updated.
* harbour/source/rtl/gete.c
+ added .prg function:
HB_SETENV( <cEnvName>, [<cNewVal>] [, <lOsCP>] ) -> <lOK>
which sets or deletes (when <cNewVal> is NIL) process environment
variable <cEnvName>. <lOsCP> controls character translation to
OS encoding. By default is enabled.
TOFIX: <cEnvName> OS character encoding is missing in [HB_]_GETENV()
* harbour/source/common/hbprintf.c
* do not use modfl() in WinCE POCC builds. If MSVC also does not
support if in WinCE builds then please change the condition to
global HB_OS_WIN_CE
* doc/man/hbmk.1
* INSTALL
* utils/hbmk2/hbmk2.prg
- config/win/dmc.cf
- config/os2/icc.cf
- Removed win/dmc (Digital Marc C) C compiler from supported
compiler list. The compiler was added last year, but
it turned out to be too buggy for any kind of production
work, and the compiler's development seem to have been
stalled year ago.
This is part of the pruning effort to leave here what's
really needed and beneficiary for users. This will
reduce the test matrix and give way to more important
things.
- Removed os2/icc. IBM Visual Age isn't available for OS/2
since very long, and no one seems to use this compiler
on this platform. Harbour support also wasn't tested
since long.
* doc/man/hbmk.1
* INSTALL
* utils/hbmk2/hbmk2.prg
- config/win/icc.cf
- Deleted win/icc from supported compiler list. This was
never working and the compiler isn't available anymore
for Windows. For AIX we could support it though.
* INSTALL
* Minor typos.
* mpkg_win.bat
+ Added zip link. Made NSIS link more direct.
* doc/man/hbmk.1
* INSTALL
* utils/hbmk2/hbmk2.prg
* config/dos/global.cf
- config/dos/rsx32.cf
- config/win/rsxnt.cf
- Pruned rsx32 and rsxnt compiler support. Both are dead
product since long years. Their successor is MinGW on win,
and DJGPP on dos.
; NOTE: More candidates for such pruning are:
- dmc (buggy and compiler not updated)
- xcc (based on very old version of pocc)
Any opinions?
* config/dos/global.cf
- Cleaned emx, watcom, rsx, bcc16 related branches.
* mpkg_win.bat
* mpkg_win.nsi
! Exclusion of junk files is now done in batch, so
the .zip is now also free from them.
* harbour/include/hbdefs.h
* harbour/source/vm/hvm.c
* respect HB_START_PROCEDURE in all builds if such public
function/procedure exists.
Now whole Harbour code can be compiled with -n1 in all builds.
Warning for Windows/DOS users:
if you have main() function in your .prg code then it will be
automatically detected as application startup entry just like
in other systems.
Otherwise the 1-st linked function will be used like so far.
+ added HB_START_PROC_STRICT macro which causes that HVM ignores
HB_FS_FIRST attribute. Before this modification HB_START_PROCEDURE
has such meaning.
* harbour/source/vm/memvars.c
! added protection against pushing new private variable on HVM stack
if such private variable is already created by the same function.
Clipper also has such protection. This code illustrates it:
proc main()
memvar var1, var2, var3
private var1 := "a", var2 := "b", var3 := "c"
? var1, var2, var3
private var1 := "A", var2, var3 := "C"
? var1, var2, var3
private var1 := NIL, var2, var3
? var1, var2, var3
return
compare Clipper and current Harbour results with old Harbour ones or
with xHarbour results.
* utils/hbmk2/hbmk2.prg
+ Added -prgflag:, -cflag:, -ldflag: options.
To lessen the chance to mess up hbmk and underlying
tools, only "-" and (on non-*nix) "/" prefixed values
are accepted. Values are slash corrected by hbmk and
filters can also be used.
+ -hbcc and -hblnk will now consider raw (unrecognized and
prefixed) options as C/linker flags respectively. Values
are slash corrected and filters can also be used.
; NOTE: Passing C/linker flags directly to underlying
tools isn't a very good idea if you want to stay
portable across tools and OSes. The only exception
is the '-D' C flag which seems universally available
on all C compilers.
* "/" prefixed Harbour options will now be recognized
in normal mode on non-*nix systems.
! DOS EOL char is now ignored in .hbp/.hbm files.
+ Added -bm owatcom C compiler switch in -mt mode for win/os2/linux.
Pls test on os2/linux.
* TOFIX: Attempted to add -gui support for win/owatcom. Harbour
still complains about "It's not a GUI app". This compiler
is a real bitch with tons of similarly looking options
and no adequate online docs, so if someone feels like
it, pls correct the TOFIX section in source.
Until then GTWVT and GTWVG won't work with owatcom.
; NOTE: Most probably not, but I hope hbmk2 now qualifies for
"basic functionality".
* mpkg_win.nsi
! Fixed to not include some more unnecessary files generated
by certain linkers along the build process.
* source/compiler/ppcomp.c
! #pragma -k? options are now case-insensitive like all
other Harbour options.
This completes this change:
2008-08-06 22:18 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
+ Added warning msg if referenced .hbm file cannot be found.
+ filename without extension referenced with @ prefix
will get an .hbm extension added automatically.
! Typo in prev fixed.
* Filename updated in comment.
* doc/man/hbmk.1
* Updates. Work in progress.
* utils/hbmk2/hbmk2.prg
+ Added man page, troff/groff links.
! Reversed the logic shared lib paths were included by.
* Changed the meaning -hbcc again. Now it will switch hbmk2
to a mode where it accept -c option. If -c is sensed, it
will stop after calling the C compiler.
! gtwxc removed from default GT list for *nix systems.
It should be added there by hbmk.cfg.