aae5c40c3a
2007-03-13 23:35 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/pp/pplib.c ! fixed std rules initialization - now it should also use GC pointer item or __PP_STDRULES will ignore it
Przemyslaw Czerpak
2007-03-13 22:35:22 +00:00
0ef0f1aab9
2007-03-13 19:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbapi.h * harbour/include/hbapiitm.h * harbour/source/vm/garbage.c * harbour/source/vm/extend.c * harbour/source/vm/itemapi.c + added hb_gcFunc(), hb_parptrGC(), hb_itemGetPtrGC() hb_parptrGC() and hb_itemGetPtrGC() uses GC cleanup function address to validate if pointer item points to expected memory block type
Przemyslaw Czerpak
2007-03-13 18:40:56 +00:00
9569027809
2007-03-12 14:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexpra.c * emulate xHarbour HB_ENUMINDEX() inside FOR EACH loop when HB_COMPAT_XHB macro is set It's only for compatibility - I strongly suggest to use <unumvar>:__enumIndex() which is more flexible and allow to chose the enumerator variable not only the one from last loop
Przemyslaw Czerpak
2007-03-12 13:42:10 +00:00
4f10cc035a
2007-03-12 14:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexpra.c * emulate xHarbour HB_ENUMINDEX() inside FOR EACH loop when HB_COMPAT_XHB macro is set It's only for compatibility - I strongly suggest to use <unumvar>:__enumIndex() which is more flexible and allow to chose the enumerator variable not only the one from last loop
Przemyslaw Czerpak
2007-03-12 13:37:49 +00:00
5325e4643b
2007-03-11 11:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/main/Makefile * Changed order of linked libraries for linkers with linear library symbols scanning
Przemyslaw Czerpak
2007-03-11 10:02:26 +00:00
8ce0d03aa0
2007-03-09 04:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/common.mak * harbour/makefile.bc * harbour/makefile.vc * harbour/bin/hb-func.sh * harbour/config/global.cf * harbour/include/error.ch * harbour/include/hbcomp.h * harbour/include/hbcompdf.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c - harbour/include/hbexprc.c * harbour/include/hbexprop.h * harbour/include/hbmacro.h * harbour/source/Makefile * harbour/source/common/expropt1.c * harbour/source/common/expropt2.c * harbour/source/compiler/Makefile - harbour/source/compiler/exproptc.c - harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbcomp.c * harbour/source/compiler/hbgenerr.c + harbour/source/compiler/hbmain.c * harbour/source/compiler/hbpcode.c * harbour/source/macro/Makefile * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc - harbour/source/macro/macroc.c + harbour/source/main/Makefile + harbour/source/main/harbour.c * harbour/source/vm/macro.c * resolved name conflicts between compiler and macro compiler. Now new compiler library is created. There are some things which can be improved and cleaned yet but it's enough to create single binaries with compiler+HVM+RTLs. I updated non GNU make files but I cannot tested the modifications - please check and fix me if necessary
Przemyslaw Czerpak
2007-03-09 03:44:42 +00:00
61800e95cc
2007-03-05 23:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcompdf.h * harbour/include/hbexprb.c * harbour/source/compiler/hbgenerr.c * do not generate warnings about meaningless expression usage in code optimized by short logical expression evaluation, f.e.: proc main() (f1() .or. (f2(), .t.)) return
Przemyslaw Czerpak
2007-03-05 22:30:50 +00:00
49c3039329
2007-03-05 14:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/config/os2/install.cf * workaround for command line size limitation borrowed from xHarbour
Przemyslaw Czerpak
2007-03-05 13:05:12 +00:00
b184835529
2007-03-05 04:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexpra.c ! fixed GPF when _GET_() parameter is passed in parenthesis
Przemyslaw Czerpak
2007-03-05 03:19:20 +00:00
f9452a8f85
2007-03-04 14:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbapifs.h * harbour/include/hbcompdf.h * harbour/include/hbpp.h * harbour/source/common/hbfsapi.c * harbour/source/compiler/cmdcheck.c * harbour/source/compiler/harbour.c * harbour/source/compiler/hbusage.c * harbour/source/compiler/ppcomp.c * harbour/source/pp/ppcore.c * cleanup .ppo file creation + new compiler switch: p+ to enable preprocessor tracing when used information about applied rules is stored in .ppt file * harbour/include/hbdefs.h * harbour/source/rtl/gtos2/gtos2.c * OS2 build cleanup
Przemyslaw Czerpak
2007-03-04 13:11:36 +00:00
29f3929a08
2007-03-02 00:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/pp/ppcore.c * clear included file counter in hb_pp_reset() * insert space after stream comment /* */ - it's not Clipper compatible but it's necessary as long as we have automatic identifier concatenation
Przemyslaw Czerpak
2007-03-01 23:44:00 +00:00
4a6f109e4b
2007-03-01 14:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/config/os2/global.cf * harbour/contrib/hgf/os2pm/os2pm.c * harbour/include/hbdefs.h * harbour/include/hbgtcore.h * harbour/source/rdd/dbcmd.c * harbour/source/vm/mainpm.c * cleaned OS2 build errors and warnings reported by David Macias. Modifications not tested - OS2 users will have to make tests and reports problems.
Przemyslaw Czerpak
2007-03-01 13:15:01 +00:00
1cba971155
2007-02-28 08:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbpp.h * harbour/source/compiler/complex.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/pp/ppcore.c * updated lexer to recognize IF(<exp1>,<exp2>,<exp3>) in expressions like IF(<exp,...>) - it allow to make some grammar rules much more simple.
Przemyslaw Czerpak
2007-02-28 07:11:17 +00:00
d4f042a2a5
2007-02-27 12:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcomp.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/include/hbmacro.h * harbour/include/hbpcode.h * harbour/include/hbxvm.h * harbour/source/common/hbdate.c * harbour/source/compiler/genc.c * harbour/source/compiler/gencc.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbdead.c * harbour/source/compiler/hbfix.c * harbour/source/compiler/hblbl.c * harbour/source/compiler/hbopt.c * harbour/source/compiler/hbpcode.c * harbour/source/compiler/hbstripl.c * harbour/source/rtl/abs.c * harbour/source/rtl/at.c * harbour/source/rtl/chrasc.c * harbour/source/rtl/datec.c * harbour/source/rtl/dateshb.c * harbour/source/rtl/diskspac.c * harbour/source/rtl/disksphb.c * harbour/source/rtl/gtfunc.c * harbour/source/rtl/left.c * harbour/source/rtl/len.c * harbour/source/rtl/math.c * harbour/source/rtl/minmax.c * harbour/source/rtl/mod.c * harbour/source/rtl/philes.c * harbour/source/rtl/philesx.c * harbour/source/rtl/replic.c * harbour/source/rtl/round.c * harbour/source/rtl/set.c * harbour/source/rtl/space.c * harbour/source/rtl/strcase.c * harbour/source/rtl/strpeek.c * harbour/source/rtl/transfrm.c * harbour/source/rtl/trim.c * harbour/source/rtl/type.c * harbour/source/rtl/val.c * harbour/source/rtl/word.c * harbour/source/vm/hvm.c * harbour/source/vm/macro.c * added some PCODEs to cover all possible combination of ++, --, <op>= operations in the same way and keep Clipper compatible RT errors. * added some other PCODEs to optimize some commonly used expressions/ statements * use HB_ERR_ARGS_BASEPARAMS instead of hb_paramError() * some other cleanups and minor optimizations * harbour/utils/hbtest/rt_math.prg * update expected result for MOD() - it was not Clipper compatible and it will be hard to make it compatible without introducing some Clipper's side effects
Przemyslaw Czerpak
2007-02-27 11:03:59 +00:00
f2d03902f8
2007-02-22 03:22 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * harbour/source/rtl/tget.prg ! Fixed :Type to not return NIL right after the GetNew() call.
Viktor Szakats
2007-02-22 02:23:59 +00:00
cc37512243
2007-02-21 22:37 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * harbour/include/common.ch + Changed HB_SYMBOL_UNUSED() to also work in codeblock. Thanks to Przemek.
Viktor Szakats
2007-02-21 21:40:35 +00:00
26617b2472
2007-02-18 12:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/common.mak * harbour/source/compiler/Makefile * harbour/source/compiler/hbfix.c + harbour/source/compiler/hbopt.c * divided hbfix.c into two separated functions: - hb_compFixFuncPCode() which only fix generated PCODE updating local parameters numbers when PARAMETERS is used - hb_compOptimizePCode() which makes PCODE optimization It allows to not execute hb_compFixFuncPCode() when PARAMETERS is not use and execute hb_compOptimizePCode() more then once in optimization process.
Przemyslaw Czerpak
2007-02-18 11:40:22 +00:00
4aec3b34ad
2007-02-14 00:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/libct/ctwfunc.c * harbour/contrib/libct/ctwin.c * harbour/contrib/libct/ctwin.h + added CTWIN compatible ALERT - it works in differ way then the standard Clipper one. In the moment when CTWIN is activated (it's enough to call any CTWIN function like WOPEN()/WBOARD(),... or CTWINIT()) standard ALERT() is replaced by CTWIN one build in inside CTWIN GT driver. It allocates separate window for ALERT box and makes differ formatting of passed text. TODO: add support for SET KEY blocks
Przemyslaw Czerpak
2007-02-13 23:18:20 +00:00
98d97eb695
2007-02-13 21:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/bin/hb-func.sh * do not pass linking parameters to GCC/G++ when is used for compilation only
Przemyslaw Czerpak
2007-02-13 19:59:41 +00:00
65ef23e405
2007-02-12 16:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/rdd_ads/ads1.c * do not release FLOCK() after DBAPPEND() - only RLOCKs should be removed * harbour/contrib/rdd_ads/rddads.h * set ADS_REQUIRE_VERSION when not set by user scripts
Przemyslaw Czerpak
2007-02-12 15:52:52 +00:00
36d66abf4d
2007-02-12 10:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/pp/ppcore.c ! fix line numbering when preprocess static buffers, f.e. by __PP_PROCESS()
Przemyslaw Czerpak
2007-02-12 09:52:59 +00:00
8c0a2d69cd
2007-02-09 00:28 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * harbour/source/rtl/isprint.c * harbour/include/hbapi.h ! hb_printerIsReady() C level function made public again. + Added proper declaration for it.
Viktor Szakats
2007-02-08 23:33:20 +00:00
4a808699da
2007-02-09 00:10 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * harbour/source/common/hbstr.c ! Fixed three BCC5.5 warnings.
Viktor Szakats
2007-02-08 23:18:28 +00:00
e2fde5133c
2007-01-17 13:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/gencc.c * harbour/source/vm/hvm.c ! fixed typo in hb_xvmGreaterEqualThenIntIs() - <= was used instead of >= ! fixed :¯o() messages used in WITH OBJECT structure and -gc3 output + added some missing optimizations in -gc3 output
Przemyslaw Czerpak
2007-01-17 12:49:25 +00:00
9ec0932f6d
2007-01-09 16:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/harbour.spec * harbour/include/hbver.h * updated version number to 1.1.0
Przemyslaw Czerpak
2007-01-09 15:15:42 +00:00
fe34def396
2007-01-09 15:34 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/ChangeLog + harbour/ChangeLog.017 * new ChangeLog file created * harbour/doc/whatsnew.txt * harbour/harbour.spec * harbour/include/hbver.h * updated version number to 0.47.0 * tagged CVS as build47
Przemyslaw Czerpak
2007-01-09 14:37:47 +00:00
320928af76
2006-01-09 15:27 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/ChangeLog + harbour/ChangeLog.017 * new ChangeLog file created * harbour/doc/whatsnew.txt * harbour/harbour.spec * harbour/include/hbver.h * updated version number to 0.47.0 * tagged CVS as build47
Przemyslaw Czerpak
2007-01-09 14:27:05 +00:00
4189493df5
2006-01-09 15:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/ChangeLog + harbour/ChangeLog.017 * new ChangeLog file created * harbour/doc/whatsnew.txt * harbour/harbour.spec * harbour/include/hbver.h * updated version number to 0.47.0 * tagged CVS as build47
Przemyslaw Czerpak
2007-01-09 14:22:17 +00:00
30f56abce2
2007-01-09 15:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/hbusage.c * update the year in hb_compPrintLogo() from 2006 to 2007
Przemyslaw Czerpak
2007-01-09 14:10:22 +00:00
e4c865436e
2007-01-08 00:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexpra.c ! fixed GPF which can appear on syntax error during compilation one of enumerator message
Przemyslaw Czerpak
2007-01-07 23:52:41 +00:00
46ea724aba
2007-01-07 19:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/hvm.c * small modification to protect against creating long references chains which can hardly reduce the performance in some cases
Przemyslaw Czerpak
2007-01-07 18:26:44 +00:00
3fd903247e
2007-01-07 05:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcomp.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/include/hbexprop.h * harbour/source/common/expropt1.c * harbour/source/common/expropt2.c * harbour/source/compiler/Makefile * harbour/source/compiler/cmdcheck.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/harbour.yyh * harbour/source/compiler/hbcomp.c * harbour/source/compiler/hbusage.c * harbour/source/compiler/ppcomp.c * harbour/source/macro/Makefile * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc * harbour/source/macro/macro.yyh * harbour/source/vm/macro.c * harbour/source/vm/memvars.c * harbour/source/vm/memvclip.c * keep prefix definition for bison public symbols in *.y files instead of passing them as bison arguments to avoid possible mistakes during *.yy[hc] file generation ! fixed iif() reduction when used as single function parameter + add -kM compiler switch - turn off macrotext substitution * updated <string> + <string> optimization and other macrotext usage to keep more Clipper compatible behavior ! fixed typo in expression type checking in IIF() reduction - it was working because wrongly used macros has the same values as the valid ones - removed compiler switches and macros for old HB_INLINE() syntax - it was not supported after last months modifications. Only: HB_INLINE([params,...]) { C code } is supported. ! fixed passing parameters by reference in IIF() statement and macro compiler. The following valid Clipper code: &("myfunc(<exp>, @var1, @var2)") was not supported ! do not allow to use references or empty expressions in expression list AFAIK it's Clipper compatible. If I'm wrong then please fix me but Clipper allows to use references only as function arguments, 2-nd and 3-rd IIF() argument and as directly created array items ( {...@var...} ) DO ... WITH ... is a special case of function call. ! Changed grammar rules to accept only Clipper compatible parameters. ! fixed typo in macro name in hb_memvarNewParameter() function. * use HB_FUNC_EXEC(...) instead of HB_FUNCNAME(...)()
Przemyslaw Czerpak
2007-01-07 04:09:09 +00:00
386c27f01f
2007-01-05 16:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexprb.c * make function call optimizations only when hb_compFunCallCheck() do not report errors
Przemyslaw Czerpak
2007-01-05 15:01:11 +00:00
647e9281bf
2006-12-30 22:45 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcomp.h * harbour/include/hbcompdf.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/source/common/expropt1.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbgenerr.c * harbour/source/macro/macro.l * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc * harbour/source/macro/macro.yyh * harbour/source/macro/macrolex.c * harbour/source/vm/macro.c * final grammar cleanup: removed unused and/or unnecessary grammar expressions in *.y files, fixed some differences between compiler and macrocompiler, fixed some other bugs, typos, clipper incompatibilities, etc. It's end of year, it's late and sorry but I'd like to begin making something absolutely differ then creating detail description ;-) If you will have any questions then I'll answer in new year.
Przemyslaw Czerpak
2006-12-30 21:51:33 +00:00
40999edb49
2006-12-28 16:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcomp.h * harbour/include/hbcompdf.h * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/include/hbpcode.h * harbour/include/hbpp.h * harbour/include/hbxvm.h * harbour/source/compiler/genc.c * harbour/source/compiler/gencc.c * harbour/source/compiler/gencli.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbgenerr.c * harbour/source/compiler/hbpcode.c * harbour/source/vm/hvm.c * harbour/source/vm/macro.c * changed HB_P_MACROPUSHINDEX PCODE behavior - now it does not evaluated macro expression * eliminated HB_ET_MACRO_INDEX - HB_ET_MACRO_LIST can be used instead * accept ... in codeblocks only when codeblocks parameters are defined as variables, f.e: {|a,b,...|qout(a+b,...)} ! fixed error in a[&s]:=100 + added support for a[...] - now ... can be used in the same context as xbase++ like multivalue macro (a[&s]) * disabled ++, --, <op>= optimizations when -kc (strict Clipper compatibility mode) compiler switch is used
Przemyslaw Czerpak
2006-12-28 15:44:41 +00:00
88716ffc11
2006-12-27 21:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcompdf.h * removed not longer used pFunCall from asMacro expression. This item was used only in a very old s:="1,2";f(&s) implementation.
Przemyslaw Czerpak
2006-12-27 20:17:22 +00:00
7a13cae5e3
2006-12-27 15:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcomp.h * harbour/include/hbcompdf.h * harbour/include/hberrors.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbpcode.h * harbour/include/hbxvm.h * harbour/source/common/expropt1.c * harbour/source/compiler/genc.c * harbour/source/compiler/gencc.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbdead.c * harbour/source/compiler/hbfix.c * harbour/source/compiler/hbgenerr.c * harbour/source/compiler/hblbl.c * harbour/source/compiler/hbpcode.c * harbour/source/compiler/hbstripl.c * harbour/source/vm/hvm.c + added support for passing optional parameters to called function, f.e.: proc p( a, b, ... ) qout( a, b, "X", ... ) * forbid creating function pointer when function is used with parameters, f.e.: x:=@f1(1,2,3)
Przemyslaw Czerpak
2006-12-27 14:01:52 +00:00
3df896f666
2006-12-24 16:54 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcompdf.h * harbour/include/hbexprb.c * harbour/source/common/expropt1.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbcomp.c - removed not longer used fExternal from compiler structure * allow to pass array items by reference ( func(@a[1]) ) and some cleanups in reference rules. Probably we should also block using: @func(param1 [,param2,[,...paramN]]) and accept only @func() ! fixed using statements in codeblocks used to initialize static variables and some other cleanups (f.e. allow to use as static initializers any functions which are later eliminated by expression optimizer.
Przemyslaw Czerpak
2006-12-24 16:12:13 +00:00
4efdbba99b
2006-12-23 06:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexprb.c * do not generate HB_P_FUNCPTR - it's not longer necessary + added optimization for <exp> + 1, <exp> - 1 - disabled by default because it changes error messages in hbtest, code like NIL + 1 generates 'argument error ++' instead of 'argument error +'. I'd like you will decide what you prefer - faster code or strict Clipper error messaged.
Przemyslaw Czerpak
2006-12-23 05:00:33 +00:00
4b5017e7e2
2006-12-22 11:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/rdd_ads/adsfunc.c * do not use hb_param( pItem, HB_IT_BYREF ) but ISBYREF() macro
Przemyslaw Czerpak
2006-12-22 11:25:28 +00:00
2cdb32d6c3
2006-12-22 11:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/rdd_ads/adsfunc.c * do not use hb_param( pItem, HB_IT_BYREF ) but ISBYREF() macro
Przemyslaw Czerpak
2006-12-22 10:07:21 +00:00
6014551d2c
2006-12-19 00:35 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexprc.c * added support _" prefix when macro message is used in assignment context also when -kc is used. We can block this feature for -kc but as long as is not blocked it should work in the same way for -kc and -kh
Przemyslaw Czerpak
2006-12-18 23:35:29 +00:00
bdb38dde43
2006-12-15 16:55 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbapi.h * harbour/include/hbcomp.h * harbour/include/hbcompdf.h * harbour/include/hbdefs.h * harbour/include/hberrors.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/include/hbpcode.h * harbour/include/hbxvm.h * harbour/source/common/expropt1.c * harbour/source/common/expropt2.c * harbour/source/common/hbstr.c * harbour/source/compiler/cmdcheck.c * harbour/source/compiler/genc.c * harbour/source/compiler/gencc.c * harbour/source/compiler/gencobj.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbdead.c * harbour/source/compiler/hbfix.c * harbour/source/compiler/hbgenerr.c * harbour/source/compiler/hblbl.c * harbour/source/compiler/hbpcode.c * harbour/source/compiler/hbstripl.c * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc * harbour/source/rtl/console.c * harbour/source/rtl/isprint.c * harbour/source/rtl/left.c * harbour/source/rtl/right.c * harbour/source/rtl/strtran.c * harbour/source/vm/codebloc.c * harbour/source/vm/hvm.c * harbour/source/vm/macro.c * general PCODE cleanup and address most of TODO/TOFIX notes in source code: ! fixed GPF traps when too long string or codeblock is generatd + added support for 16MB codeblocks and strings ! removed macrocompiler limitation for jumps range ! fixed GPF when more then 255 local variables is used and added support for 2^15 locals ! removed all strtok() functions % added optimization for all +=, -=, *=, %=, ^=, **= operations when left side of expression is variable or array item % added optimization for all +=, -=, *=, %=, ^=, **= operations when left side of expression is object method and updated ++, -- for new code. It's still disabled until we will not add support for late evaluated reference items to HVM ! fixed a[++i]++ and similar operations (a[++i]*=2, ...). Now ++i is executed only once. It's not Clipper compatible but it was in TODO note in source code. It can be disabled by -kc option * finished support to xHarbour like #pragma TEXTHIDDEN(1) ! fixed local add int optimization when PARAMETERS used after optimization changed local variable number over 255 ! fixed GPF trap when in HB_P_<op>EQ PCODEs when executed for direct values * others ! fixed problems reported by Chen * optimized strtran(), left(), right() to not create new string copy when the same value is returned
Przemyslaw Czerpak
2006-12-15 15:54:28 +00:00
22159d57b5
2006-12-13 18:45 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/rtl/console.c * pacify false CG error messages - Chen Kedem modifications (sizeof(int) in #if replaced by hardcoded 4 for compilers which does not allow to use sizeof() in #if directives)
Przemyslaw Czerpak
2006-12-13 17:46:43 +00:00
efee430f3b
2006-12-12 14:55 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbstack.h ! fixed typo in function name, should be: hb_stackLocalVariable() not hb_stacklocalVariable() + added hb_stackId() * hide hb_stack declaration when HB_STACK_MACROS is not set
Przemyslaw Czerpak
2006-12-12 13:58:20 +00:00
3d627021e6
2006-12-11 22:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/rtl/memoline.c ! added fix sent to me by Randy Portnoff - it's a little bit differ then the one Randy sent to list but this one seems to be correct. I never used this function in Clipper and made only very basic tests. I believe that Randy make better tests and this fix will not break some other constructions.
Przemyslaw Czerpak
2006-12-11 21:15:16 +00:00
93e0db5a23
2006-12-09 17:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/config/bsd/gcc.cf * harbour/config/darwin/gcc.cf * harbour/config/dos/bcc16.cf * harbour/config/dos/djgpp.cf * harbour/config/dos/owatcom.cf * harbour/config/dos/rsx32.cf * harbour/config/hpux/gcc.cf * harbour/config/linux/gcc.cf * harbour/config/linux/owatcom.cf * harbour/config/os2/gcc.cf * harbour/config/os2/icc.cf * harbour/config/sunos/gcc.cf * harbour/config/w32/bcc32.cf * harbour/config/w32/gcc.cf * harbour/config/w32/mingw32.cf * harbour/config/w32/msvc.cf * harbour/config/w32/rsxnt.cf * harbour/config/w32/watcom.cf * added respecting HB_GT_DEFAULT, though it's quite possible that I'll remove it at all soon. * some other cleanup
Przemyslaw Czerpak
2006-12-09 16:11:10 +00:00
b86b5a8fe7
2006-12-08 05:55 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/bin/hb-func.sh * harbour/bin/hb-mkslib.sh * harbour/bin/postinst.sh * harbour/config/bsd/gcc.cf * harbour/config/darwin/gcc.cf * harbour/config/dos/owatcom.cf * harbour/config/hpux/gcc.cf * harbour/config/linux/gcc.cf * harbour/config/linux/owatcom.cf * harbour/config/os2/gcc.cf * harbour/config/sunos/gcc.cf * harbour/config/w32/watcom.cf * harbour/contrib/rdd_ads/ads1.c * harbour/contrib/rdd_ads/adsfunc.c * harbour/include/hbapifs.h * harbour/include/hbexprc.c * harbour/include/hbsetup.h * harbour/source/common/expropt2.c * harbour/source/common/hbdate.c * harbour/source/common/hbgete.c * harbour/source/common/hbstr.c * harbour/source/common/hbver.c * harbour/source/common/hbverdsp.c * harbour/source/compiler/cmdcheck.c * harbour/source/compiler/fixflex.c * harbour/source/compiler/gencobj.c * harbour/source/compiler/genobj32.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.l * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc * harbour/source/compiler/hbfix.c * harbour/source/compiler/hbfunchk.c * harbour/source/pp/ppcore.c * harbour/source/pp/ppgen.c * harbour/source/pp/pplib.c * harbour/source/rdd/dbcmd.c * harbour/source/rdd/workarea.c * harbour/source/rdd/dbfcdx/dbfcdx1.c * harbour/source/rdd/dbffpt/dbffpt1.c * harbour/source/rdd/hsx/hsx.c * harbour/source/rtl/accept.c * harbour/source/rtl/ampm.c * harbour/source/rtl/console.c * harbour/source/rtl/defpath.c * harbour/source/rtl/errorint.c * harbour/source/rtl/filesys.c * harbour/source/rtl/fkmax.c * harbour/source/rtl/fstemp.c * harbour/source/rtl/hbffind.c * harbour/source/rtl/hbgtcore.c * harbour/source/rtl/langapi.c * harbour/source/rtl/seconds.c * harbour/source/rtl/set.c * harbour/source/rtl/tobject.prg * harbour/source/rtl/transfrm.c * harbour/source/rtl/gtcrs/chrmap.c * harbour/source/rtl/gtcrs/gtcrs.c * harbour/source/rtl/gtcrs/gtcrs.h * harbour/source/rtl/gtpca/gtpca.c * harbour/source/rtl/gtwvt/gtwvt.c * harbour/source/rtl/gtxwc/gtxwc.c * harbour/source/vm/classes.c * harbour/source/vm/cmdarg.c * harbour/source/vm/debug.c * harbour/source/vm/estack.c * harbour/source/vm/fm.c * harbour/source/vm/hvm.c * harbour/source/vm/macro.c * harbour/source/vm/proc.c * harbour/source/vm/runner.c * harbour/utils/hbmake/hbmlang.c * harbour/utils/hbpp/hbpp.c * harbour/utils/hbpp/hbppcomp.c * harbour/utils/hbpp/hbppcore.c * harbour/utils/hbpp/hbpplib.c * harbour/utils/hbpp/pragma.c * harbour/utils/hbver/hbverfix.c * general code cleanup: all strcpy() and strcat() replaced hb strn*() and hb_strn*(), sprintf() by snprintf(), etc. It fixed some possible buffer overflow but it's also possible that it will exploit some some hidden so far problems but I strongly prefer to know about them ASAP to fix them before final 1.0 release. ! fixed bug I introduce in codeblock falgs which disabled early macro evaluation in codeblocks. ! added missing protection against execution by bison destructor for used CBSTART token on syntax error. % use PP stringify logik added for FLEX support to remove all redundant spaces in stringified for early macro evaluation codeblocks and add spaces between operators if after preprocessing they were removed. Now we are supporting also some code which cannot be compiled by Clipper. % cleaned and improved the speed of printer redirecting in console code. Chen please check if CG still reports problems and if not ubdate TODO/TOFIX or inform me about them. * some cleanups in building process for different *nixes: MacOSX, SunOS, *BSD, etc. * removed not longer necessary (I hope) compiler flag to force default 'char' type as signed. Now Harbour should work with signed and unsigned char without any problems. To other developers: please remember that when you are using 'char' as 8 bytes signed integer then it's a bug. Always explicitly use: 'signed char' in such case. On some platforms it's not possible to set default type for 'char' so if you hardcode that 'char' is signed or unsigned somewhere then code will not be portable. Chen if you will find a while to also rebuild Harbour with BCC and -K switch to make some tests with CG then I'll be thankful.
Przemyslaw Czerpak
2006-12-08 05:03:58 +00:00
0ed571953a
2006-12-04 19:20 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc * harbour/source/macro/macro.yyh * harbour/source/macro/macrolex.c * added support for extended string (e"...") to macro compiler and strings with embedded ASCII NUL character (chr(0))
Przemyslaw Czerpak
2006-12-04 18:22:29 +00:00
610a3fbeb1
2006-11-28 21:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/makefile.bc * harbour/config/c.cf ! fixed typo in last modification - I have bad day today.
Przemyslaw Czerpak
2006-11-28 20:38:47 +00:00
0ae7932565
2006-11-28 21:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/makefile.bc * harbour/config/c.cf * changed default settings to not use bison for generation new grammar files. Now developers who will want to update our grammar definition files for compiler and macro compiler should set environment variable HB_REBUILD_PARSER=yes to force preprocessing new rules by bison and should remember to update before committing modifications in *.y file(s) corresponding *.yy[ch] files by copping the new ones generated by parser. ! fixed typo in makefile.bc - instead of $(HARBOUR_DIR)\macro.yyc should be $(MACRO_DIR)\macro.yyc
Przemyslaw Czerpak
2006-11-28 20:22:58 +00:00
9967551273
2006-11-28 19:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/harbour.y * use HB_COMP_PARAM macro in expression destructor instead of direct accessing hb_comp_data global variable to make compiler code MT safe
Przemyslaw Czerpak
2006-11-28 18:29:44 +00:00
e79392e512
2006-11-28 05:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/harbour.c ! fixed typo in last modification which caused memory leak
Przemyslaw Czerpak
2006-11-28 04:41:45 +00:00
74deff4644
2006-11-25 19:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/include/hbexprop.h * harbour/source/common/expropt1.c * harbour/source/common/expropt2.c * harbour/source/compiler/complex.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.y * harbour/source/macro/macro.y + added support for strings with with ASCII NUL character Strings with ASCII NUL character are not stored with hash table but dynamically allocated/deallocated ! fixed compilation of strings with ASCII NUL character which can appear in escaped strings e"..." or after compiler chr(0) optimization % removed some not longer necessary memory allocations
Przemyslaw Czerpak
2006-11-25 18:33:28 +00:00
e6a3baea64
2006-11-24 19:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/config/bsd/gcc.cf * harbour/config/darwin/gcc.cf * harbour/config/dos/djgpp.cf * harbour/config/dos/owatcom.cf * harbour/config/hpux/gcc.cf * harbour/config/linux/gcc.cf * harbour/config/linux/owatcom.cf * harbour/config/os2/gcc.cf * harbour/config/sunos/gcc.cf * harbour/config/w32/bcc32.cf * harbour/config/w32/gcc.cf * harbour/config/w32/mingw32.cf * harbour/include/hbcomp.h * harbour/include/hbcompdf.h * harbour/include/hberrors.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbver.h * harbour/source/common/hbstr.c * harbour/source/common/hbver.c * harbour/source/compiler/Makefile * harbour/source/compiler/cmdcheck.c * harbour/source/compiler/complex.c * harbour/source/compiler/gencli.c * harbour/source/compiler/genjava.c * harbour/source/compiler/genobj32.c * harbour/source/compiler/harbour.c - harbour/source/compiler/harbour.simple - harbour/source/compiler/harbour.slx - harbour/source/compiler/harbour.sly * harbour/source/compiler/harbour.y * harbour/source/compiler/hbgenerr.c - harbour/source/compiler/hbslex.c - harbour/source/compiler/hbstrong.c * harbour/source/compiler/hbusage.c - harbour/source/compiler/simplex.c * harbour/source/macro/Makefile - harbour/source/macro/macro.slx - harbour/source/macro/macroslx.c * harbour/source/pp/ppcore.c * harbour/utils/hbpp/hbppcomp.c - removed SIMPLEX references ! fixed memory leak in request _GET_ * use hb_compIdentifiersNew() in INLINE and AUTOOPEN structures members * eliminated all internal exit() calls. Now hb_compGenError() with fatal errors does not interrupt application but only sets HB_COMP_PARAM->fExit = TRUE; What should cause silent clean application close. Please keep it in mind making future modifications and do not introduce and exit() function call. + added support for \x<hex> and \<oct> quoting in extended strings (just like in C). Warning !!!. Embedded 0 bytes are supported by PP, lexer and expression optimizer but not by bison. To make them working it will be necessary to change Literal terminal symbol holder and add length field in bison rules and also change the hash table used to hold identifiers, literals and macros to store and use real string length. If someone will try to use strings with embedded 0 now then they will be cut but nothing worser should happen.
Przemyslaw Czerpak
2006-11-24 18:10:07 +00:00
841d16a4b8
2006-11-24 07:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/harbour.y * fixed some memory leaks which cannot be addressed by destructor because they are inside our own code which were not freeing properly passed expressions, f.e.: x:=1->f or: x:=field->(1) This should close the memory leaks problem in grammar parser. * indenting
Przemyslaw Czerpak
2006-11-24 06:56:41 +00:00
98255c8aa0
2006-11-24 03:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/Makefile * commented out YACC_FLAGS = -p hb_comp this should not be committed, it will be used in the future.
Przemyslaw Czerpak
2006-11-24 02:28:23 +00:00
9cd2098d6d
2006-11-23 20:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbapi.h * harbour/include/hbcomp.h + harbour/include/hbcompdf.h * harbour/include/hberrors.h * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/include/hbexprop.h * harbour/include/hbmacro.h * harbour/include/hbpp.h * harbour/include/hbvm.h * harbour/source/common/expropt1.c * harbour/source/common/expropt2.c * harbour/source/compiler/Makefile * harbour/source/compiler/cmdcheck.c * harbour/source/compiler/complex.c * harbour/source/compiler/genc.c * harbour/source/compiler/gencc.c * harbour/source/compiler/gencli.c * harbour/source/compiler/gencobj.c * harbour/source/compiler/genhrb.c * harbour/source/compiler/genjava.c * harbour/source/compiler/genobj32.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.l * harbour/source/compiler/harbour.y * harbour/source/compiler/hbcomp.c * harbour/source/compiler/hbdead.c * harbour/source/compiler/hbfix.c * harbour/source/compiler/hbfunchk.c * harbour/source/compiler/hbgenerr.c * harbour/source/compiler/hbident.c * harbour/source/compiler/hbpcode.c * harbour/source/compiler/ppcomp.c * harbour/source/macro/macro.y * harbour/source/pp/ppcore.c * harbour/source/pp/ppgen.c * harbour/source/pp/pplib.c * harbour/source/vm/cmdarg.c * harbour/source/vm/estack.c * harbour/source/vm/fm.c * harbour/source/vm/macro.c * harbour/utils/hbpp/hbpp.c * harbour/utils/hbpp/hbpp.h * harbour/utils/hbpp/hbppcomp.c * harbour/utils/hbpp/hbppcore.c * harbour/utils/hbpp/hbpplib.c * harbour/utils/hbpp/pragma.c * changed the internal compiler API to be MT safe. All global and static non constant variables replaced by HB_COMP structure which have all compiler context settings. It's possible to allocate simultaneously many compiler contexts and compile code. Only constant/read only variables are shared. In macro compiler HB_COMP is replaced by HB_MACRO. In source code I everywhere used to macros: HB_COMP_DECL and HB_COMP_PARAM which are equivalents of old HB_MACRO_DECL and HB_MACRO_PARAM definitions. We will only have to change compiler FATAL errors support to not execute exit() for non batch systems. * make macro compiler fully MT safe * removed not longer used definitions and variables ! add direct accessing to PP line number information - it fixes missing line numbers reported recently ! added generating .ppo files when tokens are teken directly by compiler - it fixes empty .ppo file problem ! clear hb_stack internall variables after removing hb_stack to avoid possible GPF if application still works and try to access unexsiting hb_stack ! do not allocate new memory block when final FM statistic report is generated - it fixes problem with GPF when application compiled with FM statistic exits and CLIPPER envvar is set. ! fixed memory leak hb_cmdargCheck() ! added to harbour.y symbol destructors - it should fixes memory leaks in syntax errors but it uses quite new bison feature which is not fully supported yet. Unfortunately it's also not MT safe and the destructors implementation in 1.875c does not respect %parse-param. Bison documentation says that it should so I hope it will be fixed soon (or maybe even already is in the newest bison versions) before I'll add multi context compilation support. If not then I will have to add some workaround. I can pass compiler context pointer inside YYSTYPE using hack in a lexer but it will force really huge number modifications in existing bison rules so probably it will be much easier to fix bison or write a small tool to update generated parser. * other modifications - the total size of patch is nearly 1MB and detail description will have to take me few days.
Przemyslaw Czerpak
2006-11-23 18:57:54 +00:00
b78cf8e34b
2006-11-21 05:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/complex.c + harbour/source/compiler/hbcomp.c * added missing header and file in my previous commit
Przemyslaw Czerpak
2006-11-21 04:06:19 +00:00
0cada37011
2006-11-21 03:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/common.mak * harbour/source/compiler/Makefile * harbour/include/hbcomp.h * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/source/compiler/cmdcheck.c * harbour/source/compiler/genc.c * harbour/source/compiler/harbour.c * harbour/source/compiler/harbour.l * harbour/source/compiler/harbour.slx * harbour/source/compiler/harbour.y * harbour/source/compiler/hbgenerr.c * harbour/source/compiler/hbident.c * harbour/source/compiler/ppcomp.c + harbour/source/compiler/complex.c + added new PP based compiler lexer - it's smaller, MT safe and a little bit faster then then the FLEX version. + added HB_COMP structure to hold compiler data in future MT version + added global variable HB_COMP_PTR hb_comp_data to make conversion to MT easier - now it holds only PP and lexer data. * update PP related code in compiler to be MT safe + added %pure-parser, %parse-param and %lex-param for bison to generate MT safe grammar parser. * updated FLEX to work with recent compiler modifications and pure-parser bison API
Przemyslaw Czerpak
2006-11-21 02:29:33 +00:00
4831d0332a
2006-11-18 16:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/makefile.bc * harbour/makefile.vc * added -Iobj\$(CC_DIRNAME) to CFLAGS as temporary workaround for recent modifications in core files This modification can be done in cleaner way but I intentionally wanted to minimize modifications. I hope Windows developers will make it better.
Przemyslaw Czerpak
2006-11-18 15:12:50 +00:00
403fd7f29e
2006-11-18 15:35 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbexpra.c * harbour/include/hbexprb.c * harbour/include/hbexprc.c * harbour/source/macro/macro.y * harbour/source/macro/macrolex.c * do not allocate separate memory in macro compiler for terminal symbols which needs string representation - it fixes some set of memory leaks and increase a little bit macro compilation ! fixed accessing freed memory in: private cMacro := "cEarly", cEarly := {"Early"} @ 12,10 GET &cMacro[1] ! fixed GPF in: p:=@left() and similar expressions
Przemyslaw Czerpak
2006-11-18 14:37:18 +00:00
5e19a3c8fd
2006-11-17 22:55 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/pp/ppcore.c ! fixed casting - it resolves problem reported by Alexander with preprocessing chr(255) from static buffer (PP used by .prg code)
Przemyslaw Czerpak
2006-11-17 22:06:54 +00:00
f474925255
2006-11-17 14:55 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/common/hbstr.c ! fixed decoding strings without trailing ASCII NUL character in hb_strRemEscSeq()
Przemyslaw Czerpak
2006-11-17 13:59:17 +00:00