Commit Graph

289 Commits

Author SHA1 Message Date
Viktor Szakats
be81ee127d 2000-05-27 23:12 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-05-28 19:52:03 +00:00
Ron Pinkas
5dafe5ee47 20000522-09:20 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.c
     + Added code to main() to process symbols and look for the first symbol in the prg and give it scope HB_FS_FIRST

   * source/compiler/genc.c
     + Added check for HB_FS_FIRST in the symbol processing loop, and output to the symbol table.

   * source/vm/hvm.c
     ! Fixed bug where if first symbol was an init symbol, it got executed twice.

   * source/vm/runner.c
     + Added logic to look for first symbol, to provide correct startup.
     ! Fixed bug where if first symbol was an init symbol, it got executed twice.

   * source/rtl/tclass.prg
     ! Corrected minor typo in HB_Structure()

   * tests/teststru.prg
     ! Corrected minor typo.

   + tests/testinit.prg
     + Added file to test proper startup processing.
2000-05-22 16:27:20 +00:00
Ron Pinkas
eb2d8afdb4 20000522-06:15 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/harbour.l
     + Added "as structure", "as stru", "as array of structure", "as array of stru"

   * source/compiler/hbpcode.c
     * Improved some logic in hb_StrongType()

   * source/vm/hvm.c
     ! Corrected startup symbol when having to use Main() as per Ryszard.

   * source/pp/pptable.c
     + Added the equivalent of:
        #COMMANDS STRUCTURE <StruName> <Var1> AS <Type1> [, <VarN> AS <TypeN> ] => ;
                  STATIC __<StruName> := {|| IF( __<StruName> == NIL, , ) , HB_Structure( <"StruName">, { <"Var1"> [, <"VarN">] } )} ;;
                  DECLARE <StruName> <Var1> AS <Type1> [ <VarN> AS <TypeN> ] ;;
                  #TRANSLATE AS NEW <ClassName> => AS CLASS <StruName> := ( Eval( __<StruName> ), HB_Structure( <StruName> ) )

	#TRANSLATE AS NEW <ClassName> => AS CLASS <ClassName> := <ClassName>():New()

   * source/rtl/tclass.prg
     + Added Function HB_Structure() ( Fully Declared! ) This function is used internally, but may be freely called from Clipper level.
       It Aceepts Parameter 1 Structure Name, and optional parameter 2, as array of structure variable names.
       If called with 2nd parameter, returns NIL (just creates the new Structure), if called with just parameter 1, it returns
       new instance of defined structure.

   + tests\teststru.prg
     + Added demo for new structure syntax
2000-05-22 13:53:14 +00:00
Ron Pinkas
8e184f78a4 20000520-21:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* include/hbvmpub.h
     + Added: #define HB_FS_FIRST    ( ( HB_SYMBOLSCOPE ) 0x40 )

   * source/compiler/genc.c
     + Added logic to add | HB_FS_FIRST to first defined symbol in a prg.

   * source/vm/hvm.c
     * Modified hb_vmProcessSymbols() to llok for HB_FS_FIRST for startup procedure instead of any first symbol.

   * source/compiler/harbour.y
     * Minor consilidation in AsType
       *** I am aware of 6 reduce conflicts resulting from previous removal of FROM_CLASS, and am looking into it. ***

   * tests/testwarn.prg
     ! Corrected the #translate to reflect latest syntax
2000-05-21 04:55:06 +00:00
Ryszard Glab
afd8141942 ChangeLog 20000504-17:10 GMT+1 2000-05-04 15:02:17 +00:00
Viktor Szakats
503b74c9af 20000502-19:28 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-02 17:35:26 +00:00
Viktor Szakats
4e4af6c94e 20000502-19:28 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-02 17:25:09 +00:00
Ryszard Glab
fcac8dc38e ChangeLog 20000502-14:55 GMT+1 2000-05-02 12:47:25 +00:00
Viktor Szakats
4f4de292f3 20000502-10:41 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-02 08:41:18 +00:00
Viktor Szakats
fdb62e01c5 20000502-09:30 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-02 07:31:14 +00:00
David G. Holm
91ea081a6b See ChangeLog entry 2000-05-02 01:45 GMT-4 David G. Holm <dholm@jsd-llc.com> 2000-05-02 05:46:45 +00:00
Viktor Szakats
4f884b97a4 20000502-02:13 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-02 00:13:40 +00:00
Viktor Szakats
234074140c 20000502-02:13 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-02 00:12:34 +00:00
Viktor Szakats
be7f72c97d 20000502-01:43 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-01 23:41:19 +00:00
Viktor Szakats
382f8da021 20000502-01:14 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-01 23:11:11 +00:00
Ryszard Glab
b82fbc0aa2 ChangeLog 20000501-19:05 GMT+1 2000-05-01 16:56:48 +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
778c316fa5 20000501-16:08 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-05-01 14:05:47 +00:00
Ryszard Glab
e3ea62558f ChangeLog 20000501-15:45 GMT+1 2000-05-01 13:38:43 +00:00
Ryszard Glab
91e200477b ChangeLog 20000426-13:15 GMT+1 2000-04-26 11:10:44 +00:00
Viktor Szakats
8b84b0a6ea 20000426-00:22 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-25 22:23:18 +00:00
Ryszard Glab
9f23de3925 ChangeLog 20000425-12:40 GMT+1 2000-04-25 10:37:40 +00:00
Antonio Linares
476ed76bd5 20000425-11:17 GMT+1 2000-04-25 09:17:13 +00:00
Viktor Szakats
94ffc45414 20000425-03:38 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-25 01:38:22 +00:00
Antonio Linares
c947379fea 20000424-22:06 GMT+1 2000-04-24 20:06:02 +00:00
Ryszard Glab
2fb49392b4 ChangeLog 20000424-19:15 GMT+1 2000-04-24 17:09:30 +00:00
Viktor Szakats
9310045570 20000423-14:23 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-23 12:20:17 +00:00
Viktor Szakats
6aee9c236d 20000423-11:38 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-23 09:39:45 +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
7140870656 20000422-22:47 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-22 20:44:26 +00:00
Ron Pinkas
a34c135487 20000422-11:35 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hvm.c
     * Minor correction of HB_TRACE messages for HB_P_ZERO, HB_P_ONE, HB_P_PUSHNIL, HB_P_PUSHBYTE, and HB_P_PUSHINT
2000-04-22 18:49:40 +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
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
Viktor Szakats
75eb1fcb3e 20000421-00:54 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-20 22:50:55 +00:00
Ron Pinkas
68f8243cbe 20000419-05:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hvm.c
     + Added PCodes HB_P_JAMPSHORT, HB_P_JAMPSHORTFALSE and HB_P_JAMPSHORTTRUE

   * source/compiler/harbour.c
     + Added hb_compOptimizeJumps() - Jumps Optimizer.
     + Added hb_compSort_ULONG() Call back function for qsort - used in the Jump Optimizer.
     + Added support for new elements of _FUNC.
     * Modified hb_compGen*Jump*() to support Short Normal and Far Jumps.

   * source/include/hbexprb.c
     * Reverted handling of .OR. .AND. and IIF() to use default (FAR) JUMPs - note the use of (0) when calling hb_compGenJump*().

   * source/compiler/genc.c
     + Added support for HB_P_JAMPSHORT, HB_P_JAMPSHORTFALSE and HB_P_JAMPSHORTTRUE

   * source/compiler/cmdcheck.c
     + Added support for new switch -J[0|1] default is J1 which enables the Jump Optimizer - Use -J0 to disable.

   * source/compiler/hbgenerr.c
     - Removed following errors:
        "Jump offset too long for HB_P_JUMP needed HB_P_JUMPFAR",
        "Jump offset too long for HB_P_JUMPTRUE needed HB_P_JUMPFARTRUE",
        "Jump offset too long for HB_P_JUMPFALSE needed HB_P_JUMPFARFALSE",

     * Changed "HB_P_JUMPx not found when fixing offset" to "Jump PCode not found"

   * source/include/hberrors.h
     - Removed following defines:
   	#define HB_COMP_ERR_INVALID_JUMPTRUE            46
   	#define HB_COMP_ERR_INVALID_JUMPFALSE           47
   	#define HB_COMP_ERR_JUMP_NOT_FOUND              48

   * source/include/hberrors.h
     + Added following to __FUNC
   	ULONG  * pNOOPs;                 /* pointer to the NOOP array */
   	ULONG  * pJumps;                 /* pointer to the Jumps array */
   	int    iNOOPs;                   /* NOOPs Counter */
   	int    iJumps;                   /* Jumps Counter */

   * source/include/hbpcode.h
     + Added HB_P_JAMPSHORT, HB_P_JAMPSHORTFALSE and HB_P_JAMPSHORTTRUE
2000-04-18 12:41:08 +00:00
Viktor Szakats
c9cc857853 20000415-18:23 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-15 16:20:46 +00:00
Viktor Szakats
8440262da1 20000415-12:38 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-15 10:36:42 +00:00
Viktor Szakats
ce2c427df3 20000415-05:12 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-15 03:09:29 +00:00
Ron Pinkas
d5fdbc0e34 20000413-19:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/compiler/hvm.c
     * Added FAR support to HB_P_SEQBEGIN and HB_P_SEQEND

   * source/compiler/harbour.c
     * Modified hb_compGenJumpThere() to revert back to "short" JUMPs when fixing the jumps, it will than use HB_P_NOOP for the unused 3rd byte.
     * It now supports all variations of JUMP including SEQBEGIN and  SEQEND as well as the logig to not interfere with "short" JUMPs.
     + Added more error handling to hb_compGenJumpThere()

   * source/include/hbexprb.c
     * Modified handling of .OR. .AND. and IIF() to use "short" JUMPs - note the use of -1 when calling hb_compGenJumpXXX().

   * source/compiler/genc.c
     + Added support for HB_P_NOOP (was missing!)
     * Modified HB_P_SEQBEGIN and HB_P_SEQEND to support FAR jumps

   * source/compiler/hbgenerr.c
     + Added following errors:
        "Jump offset too long for HB_P_JUMP needed HB_P_JUMPFAR",
        "Jump offset too long for HB_P_JUMPTRUE needed HB_P_JUMPFARTRUE",
        "Jump offset too long for HB_P_JUMPFALSE needed HB_P_JUMPFARFALSE",
        "HB_P_JUMPx not found when fixing offset"

   * source/include/hbexprb.c
     + Added following defines:
	#define HB_COMP_ERR_INVALID_JUMP                45
	#define HB_COMP_ERR_INVALID_JUMPTRUE            46
	#define HB_COMP_ERR_INVALID_JUMPFALSE           47
	#define HB_COMP_ERR_JUMP_NOT_FOUND              48
2000-04-14 02:59:49 +00:00
Viktor Szakats
0477819e8a 20000414-03:08 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-14 01:06:14 +00:00
Ron Pinkas
be8587e794 20000413-01:30 GMT-8 Ron Pinkas <Ron@Profit-Master.com>
* source/include/hbpcode.h
     + Added HB_P_JUMPFAR, HB_P_JUMPFARFALSE, and HB_P_JUMPFARTRUE

   * source/compiler/hvm.c
     + Added support for HB_P_JUMPFAR, HB_P_JUMPFARFALSE, and HB_P_JUMPFARTRUE to support longer than 2^15 jumps.

   * source/compiler/harbour.c
     * Enhanced hb_compGenJump(), hb_compGenJumpFalse(), hb_compGenJumpTrue(), hb_compGenJumpHere() and hb_compGenJumpThere()
       to utilize HB_P_JUMPFAR, HB_P_JUMPFARFALSE, and HB_P_JUMPFARTRUE to support longer than 2^15 jumps.

   * source/compiler/genc.c
     + Added support for HB_P_JUMPFAR, HB_P_JUMPFARFALSE, and HB_P_JUMPFARTRUE to support longer than 2^15 jumps.
2000-04-13 09:46:07 +00:00
Viktor Szakats
e12b9dd9e9 20000411-13:12 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-11 11:17:46 +00:00
Viktor Szakats
bf2a6741b3 20000409-03:48 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-09 02:12:16 +00:00
Viktor Szakats
f8505455b2 20000403-11:01 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-03 09:03:16 +00:00
Viktor Szakats
458ae9564a 20000403-11:01 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-03 09:01:09 +00:00
Viktor Szakats
0279d0eb0e 20000403-04:47 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-03 02:45:48 +00:00
Viktor Szakats
83c6681014 20000403-02:11 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-03 00:09:34 +00:00
Viktor Szakats
6ac91e4f1a 20000403-01:26 GMT+1 Victor Szakats <info@szelvesz.hu> 2000-04-02 23:26:02 +00:00