Commit Graph

103 Commits

Author SHA1 Message Date
Ryszard Glab
44f903550e ChangeLog 20000505-17:53 2000-05-05 15:47:37 +00:00
Ron Pinkas
2583f6096d 20000504-22:40 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     - Removed static qualifier from hb_compVariableGetPos() so it can be called from hb_compStrongType()

   * source/compiler/hbpcode.c
     + Added logic to hb_compStrongType() to allow assigment of NIL to any type variable.
     + Added "Adaptive Type Checking" to control type mismatch in undeclared variables.

   * include/hberrors.h
     ! Added #define HB_COMP_ARRAY_ASSIGN_TYPE to HB_COMP_WARN_ARRAY_ASSIGN_TYPE

   * source/compiler/hbgenerr.c
     * Added : Moved "Suspecious ..." to level w4

   * tests/testwarn.prg
     + Added code to demonstrate "Adaptive Type Checking".
2000-05-05 05:43:21 +00:00
Ron Pinkas
86e2384686 20000504-03:10 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.l
     + Added:
	"as bool array"      { return AS_LOGICAL_ARRAY; }
	"as boolean array"   { return AS_LOGICAL_ARRAY; }
	"as var"             { return AS_VARIANT; }
	"as variant"         { return AS_VARIANT; }
	"as num array"       { return AS_NUMERIC_ARRAY; }
	"as numeric array"   { return AS_NUMERIC_ARRAY; }
	"as char array"      { return AS_CHARACTER_ARRAY; }
	"as character array" { return AS_CHARACTER_ARRAY; }
	"as string array"    { return AS_CHARACTER_ARRAY; }
	"as logical array"   { return AS_LOGICAL_ARRAY; }
	"as bool array"      { return AS_LOGICAL_ARRAY; }
	"as boolean array"   { return AS_LOGICAL_ARRAY; }
	"as date array"      { return AS_DATE_ARRAY; }
	"as array array"     { return AS_ARRAY_ARRAY; }
	"as block array"     { return AS_BLOCK_ARRAY; }
	"as object array"    { return AS_OBJECT_ARRAY; }
	"as var array"       { return AS_VARIANT; }
	"as variant array"   { return AS_VARIANT; }

   * source/compiler/harbour.y
     + Added AsArray
     + Added : %token AS_NUMERIC_ARRAY AS_CHARACTER_ARRAY AS_LOGICAL_ARRAY AS_DATE_ARRAY AS_ARRAY_ARRAY AS_BLOCK_ARRAY AS_OBJECT_ARRAY AS_VARIANT_ARRAY
     + Added rules to support declarion of array elements type

   * source/compiler/harbour.c
     ! Minor fix to hb_compVariableGetPos() to signify var usage if warning level lower than 3

   * source/compiler/hbpcode.c
     + Added logic to hb_compStrongType() to support type checking of array elements declared type.

   * include/hberrors.h
     + Added #define HB_COMP_ARRAY_ASSIGN_TYPE

   * source/compiler/hbgenerr.c
     + Added : "3Incompatible type in assignment to declared array element expected: \'%s\'"

   * tests/testwarn.prg
     + Added code to demonstrate more warnings.

   * contrib/hbclip/hbclip.ch
     + Added additional strong typing compatibility translations
2000-05-04 10:26:57 +00:00
Viktor Szakats
bba60d9c11 20000504-09:12 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-04 07:10:29 +00:00
Ron Pinkas
eec5c93ec1 20000503-21:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* include/hbcomp.h
     + Added:
	#define VU_NOT_USED    0
	#define VU_INITIALIZED 1
	#define VU_USED        2

   * source/compiler/harbour.c
      * Modified refrences to pVar->iUsed to use new VU_* constants.

   * source/compiler/hbpcode.c
     * Enhanced hb_compStrongType() to check and set pVar->iUsed with new VU_*constants.
2000-05-04 04:35:54 +00:00
Ron Pinkas
f6cc8be651 20000503-19:25 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     * Corrcetd pVars->iUsed = 1 to pVars->iUsed |= 1 in hb_compVariableGetPos() so it won't override -1 value from StrongType()
2000-05-04 02:27:03 +00:00
Ron Pinkas
d4b1d4c1fd 20000502-23:15 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* include/hbcomp.h
     - Removed members cParamTypes and iParamCount from COMSYMBOL
     + Added member USHORT iStackSize to FUNCTION structure
     * Modified member pStack of FUNCTION to not pre allocate any memory.
     + Added new structure COMDECLARED
     + Added: extern PCOMDECLARED hb_compDeclaredAdd( char * ) and extern PCOMDECLARED hb_compDeclaredFind( char * );
     + Adede: extern PCOMDECLARED  hb_comp_pFirstDeclared and extern PCOMDECLARED  hb_comp_pLastDeclared

   * include/hberrors.h
     + Added:
        #define HB_COMP_DUP_DECLARATION                 17
        #define HB_COMP_DECLARATION_CONFLICT            18

   * source/compiler/genc.c
     * Modified hb_compGenCCode() to free the Declared Function linked list.

   * source/compiler/harbour.c
     + Added: PCOMDECLARED hb_compDeclaredAdd( char * ) and PCOMDECLARED hb_compDeclaredFind( char * );
     + Adede: PCOMDECLARED  hb_comp_pFirstDeclared and PCOMDECLARED  hb_comp_pLastDeclared

   * source/compiler/harbour.y
     * Modified parsing of DECLARE FUNCTION to use new PCOMDECLARED rather than PCOMSYMBOL

   * source/compiler/hbgenerr.c
     + Added:
       "3Duplicate Declaration of Function %s"
       "3Function \'%s\' conflicting with its declaration"

   * source/compiler/hbpcode.c
     * Modifief hb_compStrongType() to utilize PCOMDECLARED rather than PCOMSYMBOL
     * Modifief hb_compStrongType() to increase the pFunc->pStack as needed.

   * tests/testwarn.prg
     + Added code to demonstrate more warnings.
2000-05-03 06:32:02 +00:00
Ryszard Glab
b84589f8c4 ChangeLog 20000502-14:25 GMT+1 2000-05-02 12:20:23 +00:00
Ron Pinkas
d9583b3651 20000502-01:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
      * Correction compiler warning about piShifts in hb_compOptimizeJumps().

    * source/compiler/hbpcode.c
      * Correction compiler warning about pSym in hb_compStrongType().
2000-05-02 08:30:27 +00:00
Viktor Szakats
382f8da021 20000502-01:14 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-01 23:11:11 +00:00
Ron Pinkas
f14599541d 20000501-14:15 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
      * Minor correction to hb_compVariableAdd().

    * source/compiler/hbpcode.c
      * Enhancements to hb_compStrongType() to support new PUSH/POPALIASEDFIELDNEAR.

    * tests/testwarn.prg
      + Added code to demonstrate more warnings.
2000-05-01 21:14:35 +00:00
Ryszard Glab
4a98b9ca8b ChangeLog 20000501-18:55 GMT+1 2000-05-01 16:51:15 +00:00
Viktor Szakats
d2baf5dbfc 20000501-18:48 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-01 16:49:56 +00:00
Viktor Szakats
d2a2b542ea 20000501-17:42 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-01 15:48:24 +00:00
Viktor Szakats
778c316fa5 20000501-16:08 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-01 14:05:47 +00:00
Ron Pinkas
a10ec0d501 20000501-01:0 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* include/hbcomp.h
      + Added to COMSYMBOL :
         BYTE * cParamTypes;
         int    iParamCount;
      + Added :
        extern char * hb_comp_szDeclaredFun

    * source/compiler/harbour.y
      * Enhanced DECLARE FUNCTION parsing to properly maintain number and type of declared function parameters.

    * source/compiler/harbour.c
      + Added char * hb_comp_szDeclaredFun
      * Modified hb_compVariableAdd() to support dummy parameter vars in Function Decleration.

    * source/compiler/hbpcode.c
      * Enhancements to hb_compStrongType() to support parameter checks of declared function.

    * tests/testwarn.prg
      + Added code to demonstrate more warnings.

    * include/hberrors.h
      + Added :
        #define HB_COMP_PARAM_COUNT                     15
        #define HB_COMP_PARAM_TYPE                      16

    * source/compiler/hbgenerr.c
      + added :
        "3Invalid number of parameters: \'%s\' expected: \'%s\'"
        "3Incompatible parameter # %s expected: \'%s\'"
2000-05-01 08:00:25 +00:00
Ron Pinkas
e0201e2067 20000430-21:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
      - Removed refrence to pFunc->iFunctionIndex.

    * source/compiler/hbpcode.c
      * Enhancements to hb_compStrongType()

    * tests/testwarn.prg
      + Added code to demonstrate more warnings.

    * include/hberrors.h
      - Removed pFunctionCalls and iFunctionIndex members of _FUNC structure.
2000-05-01 04:37:09 +00:00
Ryszard Glab
d7d9f2bee5 ChangeLog 20000430-13:50 GMT+1 2000-04-30 11:44:51 +00:00
Ron Pinkas
4966e9016b 20000429-23:50 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* harbour/source/compiler/harbour.c
      ! Fixed hb_compVariableAdd() to utilize parameter cValueType for Codeblock local variables, so that correct type is stored.

    * harbour/source/compiler/harbour.y
      ! Fixed hb_compExprCBVarAdd( $<asExpr>0, $1, $2 ) to hb_compExprCBVarAdd( $<asExpr>0, $1, hb_comp_cVarType ) and
	hb_compExprCBVarAdd( $<asExpr>0, $3, $4 ) to hb_compExprCBVarAdd( $<asExpr>0, $3, hb_comp_cVarType ) so that
        correct type is passed.
      + Added hb_comp_cVarType = ' ' to reset declared type after BlockVar[s] PRIVATE and PUBLIC.

    * harbour/source/compiler/hbpcode.c
      * Minor corrections to hb_compStrongType()
2000-04-30 06:56:59 +00:00
Viktor Szakats
cb0587d149 20000427-15:34 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-28 13:42:52 +00:00
Ryszard Glab
638f750251 ChangeLog 20000427-20:40 GMT+1 2000-04-27 18:34:18 +00:00
David G. Holm
23e1b2174a See ChangeLog entry 2000-04-26 20:00 GMT-4 David G. Holm <dholm@jsd-llc.com> 2000-04-27 00:41:41 +00:00
Ron Pinkas
13c38352c7 20000426-12:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* harbour/include/hbcomp.h
       + Added:
         BYTE   pStack[256];              /* Compile Time Stack */
         SHORT   iStackIndex;              /* Compile Time Stack Index */
         BYTE   pFunctionCalls[256];      /* Array of Function Calls Compile Time Stack Postion */
         SHORT  iFunctionIndex;           /* Index into Array of Function Calls Compile Time Stack Postion */

    * harbour/include/hberrors.h
       * Modified Memory Errors to indicate the requested size.
       -* Removed few Strong Type warnings, and modified few others.

    * harbour/include/hbexprb.c
      * Modified all HB_EXPR_PCODE?( hb_compGenPCode1 ,...) to HB_EXPR_GENPCODE?( ... ) to diferntiate between the
        calls top GenPCode?() and the other calls using this macro, since the GenPCode?() now uses additional parameter:
	BOOL bAffectStack
      * Modified all the GenPCode?() to pass additional required paramter.

    * harbour/include/hbexprc.c
      * Modified all HB_EXPR_PCODE?( hb_compGenPCode1 ,...) to HB_EXPR_GENPCODE?( ... ) to diferntiate between the
        calls top GenPCode?() and the other calls using this macro, since the GenPCode?() now uses additional parameter:
	BOOL bAffectStack
      * Modified all the GenPCode?() to pass additional required paramter.

    * harbour/include/hbexprop.h
      + Added macros:
        #define HB_EXPR_GENPCODE1( action, p1 ) action( (p1) )
        #define HB_EXPR_GENPCODE2( action, p1, p2, p3 ) action( (p1), (p2), (p3) )
        #define HB_EXPR_GENPCODE3( action, p1, p2, p3, p4 ) action( (p1), (p2), (p3), (p4) )
        #define HB_EXPR_GENPCODE4( action, p1, p2, p3, p4, p5 ) action( (p1), (p2), (p3), (p4), (p5) )

	And:

        #define HB_EXPR_GENPCODE1( action, p1 ) action( (p1), pMacro )
        #define HB_EXPR_GENPCODE2( action, p1, p2, p3 ) action( (p1), (p2), (p3), pMacro )
        #define HB_EXPR_GENPCODE3( action, p1, p2, p3, p4 ) action( (p1), (p2), (p3), (p4), pMacro )
        #define HB_EXPR_GENPCODE4( action, p1, p2, p3, p4, p5 ) action( (p1), (p2), (p3), (p4), (p5), pMacro )

    * harbour/include/hbmacro.h
       Added:
         extern void hb_compGenPCode1( BYTE, HB_MACRO_DECL );
         extern void hb_compGenPCode2( BYTE, BYTE, BOOL, HB_MACRO_DECL );
         extern void hb_compGenPCode3( BYTE, BYTE, BYTE, BOOL, HB_MACRO_DECL );
         extern void hb_compGenPCode4( BYTE, BYTE, BYTE, BYTE, BOOL, HB_MACRO_DECL );
         extern void hb_compGenPCodeN( BYTE * pBuffer, ULONG ulSize, BOOL, HB_MACRO_DECL );

	 And:
         extern void hb_compGenPCode1( BYTE byte, HB_MACRO_DECL );
         extern void hb_compGenPCode2( BYTE byte1, BYTE byte2, BOOL bStackAffected, HB_MACRO_DECL );
         extern void hb_compGenPCode3( BYTE byte1, BYTE byte2, BYTE byte3, BOOL bStackAffected, HB_MACRO_DECL );
         extern void hb_compGenPCode4( BYTE byte1, BYTE byte2, BYTE byte3, BYTE byte4, BOOL bStackAffected, HB_MACRO_DECL );
         extern void hb_compGenPCodeN( BYTE * pBuffer, ULONG ulSize, BOOL, HB_MACRO_DECL );

	 *** I think this is redundant but I went by exisitng declarations !!! Ryszard Please Check !!!

    * harbour/source/compiler/harbour.c
      * Modified GenPCode2-N() to require additional paramter.
      * Modified GenPCode2-N() to call StrongType() if needed.
      * Modified all the GenPCode?() calls to pass additional required paramter.

    * harbour/source/compiler/harbour.y
      * Modified all the GenPCode?() to pass additional required paramter.

    * harbour/source/compiler/hbgenerr.c
       * Modified Memory Errors to indicate the requested size.
       -* Removed few Strong Type warnings, and modified few others.

    * harbour/source/compiler/hbpcode.c
      Added void hb_compStrongType( int iSize ) - This is the Strong Type Checker! It's not 100% completed but it's stable and the
      approch guarntee 100% accuracy once we fine tune the calculations of the Compile Time Stack to be identical to the R/T Stack.

    * harbour/source/vm/macro.c
      * Modified GenPCode2-N() to require additional paramter.
      * Modified GenPCode2-N() to call StrongType() if needed.
      * Modified all the GenPCode?() calls to pass additional required paramter.

    * harbour/tests/testwarn.prg
      + Added code to demonstrate more warnings.
2000-04-26 20:04:07 +00:00
Ryszard Glab
91e200477b ChangeLog 20000426-13:15 GMT+1 2000-04-26 11:10:44 +00:00
Ron Pinkas
6d81ed27b0 20000425-22:00 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     * Consolidated all hb_compGenPCodeX() belonging to 1 logical operation into just one hb_compGenPCodeN().
2000-04-26 05:03:52 +00:00
David G. Holm
6017b70035 See ChangeLog entry 2000-04-25 17:40 GMT-4 David G. Holm <dholm@jsd-llc.com> 2000-04-25 21:45:04 +00:00
Ron Pinkas
83bdb86c0a 20000425-07:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     * Resolved conflicts from my previous upload to dod witj change from JUMPSHORT TO JUMP*NEAR.
2000-04-25 15:14:44 +00:00
Ron Pinkas
a3b90dd225 20000425-07:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     * Replaced sequential calls to hb_compGenPCode3() + hb_compGenPCode3() with 1 call to new hb_compGenPCode4()

   * source/compiler/hbpcode.c
     + Added hb_compGenPCode4( BYTE, BYTE, BYTE, BYTE )

   * include/hbcomp.h
     + Added hb_compGenPCode4( BYTE, BYTE, BYTE, BYTE )

   * source/vm/macro.c
     + Added hb_compGenPCode4( BYTE, BYTE, BYTE, BYTE, HB_MACRO_DECL )
2000-04-25 14:38:23 +00:00
Ryszard Glab
9f23de3925 ChangeLog 20000425-12:40 GMT+1 2000-04-25 10:37:40 +00:00
Viktor Szakats
94ffc45414 20000425-03:38 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-25 01:38:22 +00:00
Ryszard Glab
2fb49392b4 ChangeLog 20000424-19:15 GMT+1 2000-04-24 17:09:30 +00:00
Viktor Szakats
9e7e8924d9 20000424-03:44 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-24 01:41:26 +00:00
Viktor Szakats
f9b6cb23a2 20000423-06:09 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-23 04:06:29 +00:00
Ron Pinkas
6871362ad5 20000422-20:40 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hvm.c
     - Removed pOptimized from hb_compOptimizeJumps() which now uses memmove() and thus more effective.
     * Renamed hb_compFixReturns() to hb_compFinalizeFunction().

   * source/compiler/harbour.y
     * Renamed call to hb_compFixReturns() to hb_compFinalizeFunction().
2000-04-23 03:45:26 +00:00
Viktor Szakats
523eb5e21d 20000423-04:02 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-23 01:59:52 +00:00
Viktor Szakats
a110bc7ea0 20000423-03:24 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-23 01:21:21 +00:00
Viktor Szakats
7140870656 20000422-22:47 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-22 20:44:26 +00:00
Viktor Szakats
2d7f222ed0 20000422-21:36 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-22 19:33:37 +00:00
Viktor Szakats
28a4c0837e 20000422-20:37 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-22 18:34:36 +00:00
Viktor Szakats
12fcab20d5 20000422-18:41 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-22 16:38:48 +00:00
Viktor Szakats
09bb6f21b2 20000422-16:16 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-22 14:13:56 +00:00
Ryszard Glab
da278bc7ca ChangeLog 20000422-13:50 GTM+1 2000-04-22 11:35:46 +00:00
Ron Pinkas
220b114c3e 20000421-14:20 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hvm.c
     + Added support for new PCodes HB_P_PUSHBYTE, and HB_P_PUSHONE
     + Added void hb_vmPushOne( void ), void hb_vmPushZero( void ) and void hb_vmPushByte( BYTE )
     * Optimized HB_P_ZERO by using hb_vmPushZero()

   * source/compiler/harbour.c
     - REMMED not used hb_compGenPushInteger()
     * Optimized hb_compGenPushLong() to USE HB_P_ZERO, HB_P_ONE, HB_P_PUSHBBYTE, HB_P_PUSHBINT, or , HB_P_PUSHLONG as needed.
     * Optimized few pairs of hb_compGenPCode1() to use hb_compGenPCode2() instead.

   * source/compiler/genc.c
     + Added support for PCodes HB_P_PUSHBYTE, and HB_P_PUSHONE

   * source/compiler/hbpcode.c
     + Added hb_compGenPCode2( BYTE, BYTE )

   * source/compiler/harbour.y
     * Optimized few pairs of hb_compGenPCode1() to use hb_compGenPCode2() instead.

   * source/include/hbpcode.h
     + Added PCodes HB_P_PUSHBYTE, and HB_P_PUSHONE

   * source/include/hbvm.h
     + Added:
        extern void    hb_vmPushOne( void ); /* pushes a 0 onto the stack */
        extern void    hb_vmPushZero( void ); /* pushes a 1 onto the stack */
        extern void    hb_vmPushByte( BYTE bNumber ); /* pushes a integer number onto the stack */

   * include/hbcomp.h
     - Removed #ifef of GenObj32
2000-04-21 21:51:21 +00:00
Ron Pinkas
84c34d5733 20000420-23:15 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/cmdcheck.c
     - Removed #ifdef HARBOUR_OBJ_GENERATION

   * source/compiler/genhrb.c
     - Removed unused vars wVar and wLen.

   * source/compiler/genjava.c
     - Removed unused vars wVar and wLen.

   * source/compiler/genobj32.c
     - Removed #ifdef HARBOUR_OBJ_GENERATION

   * source/compiler/harbour.c
     - Removed #ifdef HARBOUR_OBJ_GENERATION
2000-04-21 06:20:38 +00:00
Ron Pinkas
9e13451dde 20000420-20:10 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     + Added hb_compOptimizeFrames() - Resolves and or removes HB_P_FRAME & HB_P_SFRAME.
     * Modified hb_compFixReturns() to call hb_compOptimizeFrames()

   * source/compiler/genc.c
     - Removed the SWITCH LOOP from hb_compGenCCompact()

   * source/compiler/genhrb.c
     - Removed the SWITCH LOOP from hb_compGenCCompact()

   * source/compiler/genjava.c
     - Removed the SWITCH LOOP from hb_compGenCCompact()

   * source/compiler/genobj32.c
     - Removed the SWITCH LOOP from hb_compGenCCompact()
2000-04-21 03:22:00 +00:00
Viktor Szakats
e327eca7ee 20000421-00:34 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-20 22:31:42 +00:00
Viktor Szakats
503b9a920e 20000420-23:33 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-20 21:41:47 +00:00
Ryszard Glab
a14bd974c9 ChangeLog 20000419-18:40 GMT+1 2000-04-19 16:29:42 +00:00
Paul Tucker
d020f613ed 20000418-22:40 DST 2000-04-19 02:33:46 +00:00
Ron Pinkas
7360ca8f8b 20000418-18:35 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     * Modified hb_compCodeBlockEnd() to call hb_compOptimizeJumps() and release pNOOPs and pJumps pointers.
2000-04-19 01:38:18 +00:00