Commit Graph

61 Commits

Author SHA1 Message Date
Ryszard Glab
dde0793b53 2005-11-14 11:00 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbcomp.h
   * include/hberrors.h
   * include/hbexpra.c
   * include/hbexprb.c
   * include/hbexprop.h
   * include/hbhash.h
   * include/hbmacro.h
   * include/hbpcode.h
   * source/common/Makefile
   * source/common/expropt1.c
   * source/common/expropt2.c
   * source/common/hbhash.c
   * source/compiler/expropta.c
   * source/compiler/exproptb.c
   * source/compiler/genc.c
   * source/compiler/harbour.c
   * source/compiler/harbour.l
   * source/compiler/harbour.y
   * source/compiler/hbfix.c
   * source/compiler/hbgenerr.c
   * source/compiler/hbident.c
   * source/compiler/hbpcode.c
   * source/macro/macro.l
   * source/macro/macro.y
   * source/macro/macroa.c
   * source/macro/macrob.c
   * source/rtl/dates.c
   * source/vm/hvm.c
   * source/vm/macro.c
   + source/common/hbdate.c
   + tests/ddate.prg
   + tests/switch.prg
      +added support for DATE type constants in the following format:
         0dYYYYMMDD
      for example (see tests/ddate.prg for more):
      IF( dDate > 0d20051112 )

      +added support for SWITCH command (see tests/switch.prg)
         SWITCH <expr>
         CASE <integer_expression>
            ...
            [EXIT]
         CASE <string_expression>
            ...
            [EXIT]
         [OTHERWISE]
            ...
         END

   Notice:
      - Integer and string expressions can be mixed in a single
        SWITCH command with no runtime errors;
      - CASE expression have to be resolved at compile time and
        the result has to be either an integer or string constant
      - if there is no EXIT statement then next CASE is executed
        (or OTHERWISE for the last CASE)
      For example:
      CASE 1+32+2*4
      CASE CHR(64)
      CASE ASC('A')
      CASE "A"+CHR(13)

   Notice:
      The above changes apply only to FLEX version!
2005-11-14 09:47:46 +00:00
Przemyslaw Czerpak
188575920d 2005-10-24 02:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/dot/pp.prg
  * harbour/contrib/dot/pp_harb.ch
  * harbour/include/hbapi.h
  * harbour/include/hbapirdd.h
  * harbour/include/hbdefs.h
  * harbour/include/hbextern.ch
  * harbour/include/hbinit.h
  * harbour/include/hbstack.h
  * harbour/include/hbsxfunc.h
  * harbour/include/hbvm.h
  + harbour/include/hbvmopt.h
  * harbour/include/hbvmpub.h
  * harbour/source/codepage/cdp_tpl.c
  * harbour/source/codepage/cdppl852.c
  * harbour/source/codepage/cdppliso.c
  * harbour/source/codepage/cdpplmaz.c
  * harbour/source/codepage/cdpplwin.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/harbour.c
  * harbour/source/lang/msgca.c
  * harbour/source/lang/msgpl852.c
  * harbour/source/lang/msgpliso.c
  * harbour/source/lang/msgplmaz.c
  * harbour/source/lang/msgplwin.c
  * harbour/source/rdd/Makefile
  * harbour/source/rdd/dbcmd.c
  -  harbour/source/rdd/dbf0.prg
  * harbour/source/rdd/dbf1.c
  -  harbour/source/rdd/delim0.prg
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/rddsys.prg
  -  harbour/source/rdd/sdf0.prg
  * harbour/source/rdd/sdf1.c
  * harbour/source/rdd/dbfcdx/Makefile
  -  harbour/source/rdd/dbfcdx/dbfcdx0.prg
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  -  harbour/source/rdd/dbfcdx/sixcdx0.prg
  * harbour/source/rdd/dbfdbt/Makefile
  -  harbour/source/rdd/dbfdbt/dbfdbt0.prg
  * harbour/source/rdd/dbfdbt/dbfdbt1.c
  * harbour/source/rdd/dbffpt/Makefile
  -  harbour/source/rdd/dbffpt/dbffpt0.prg
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/Makefile
  * harbour/source/rdd/dbfntx/dbfntx0.prg
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rdd/hbsix/Makefile
  * harbour/source/rdd/hbsix/sxcompr.c
  * harbour/source/rdd/hbsix/sxcrypt.c
  * harbour/source/rdd/hbsix/sxdate.c
  * harbour/source/rdd/hsx/hsx.c
  * harbour/source/rdd/nulsys/nulsys.prg
  * harbour/source/rtl/browdbx.prg
  * harbour/source/rtl/cdpapi.c
  * harbour/source/vm/arrays.c
  * harbour/source/vm/arrayshb.c
  * harbour/source/vm/asort.c
  * harbour/source/vm/break.c
  * harbour/source/vm/classes.c
  * harbour/source/vm/cmdarg.c
  * harbour/source/vm/codebloc.c
  * harbour/source/vm/debug.c
  * harbour/source/vm/dynlibhb.c
  * harbour/source/vm/dynsym.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/eval.c
  * harbour/source/vm/evalhb.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/fm.c
  * harbour/source/vm/garbage.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/initsymb.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/maindllp.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/memvclip.c
  * harbour/source/vm/pcount.c
  * harbour/source/vm/proc.c
  * harbour/source/vm/pvalue.c
  * harbour/source/vm/runner.c
    * remove default API and stack macros. Now API/stack macros can be
      enabled by including hb_vmopt.h file.
      This file should be included _ONLY_ by core code because binary
      object/libraries generated after can work only with _EXACTLY_ the
      same HVM compiled the same C alignment switches
    * cleaned some HB_EXTERN_C declaration - Anotonio you should be able
      to build FWH now
    * cleaned startup initialization code -
      please update lang and codepage files - I only updated
      source/codepage/cdppl*.c and source/lang/msgpl*.c files
      Or other files should be updated or they will not work MSC
    * synced with recent xHarbour modification in RDD init code
2005-10-24 00:52:42 +00:00
Ryszard Glab
971da5e61e 2005-03-18 11:45 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* config/dos/global.cf
      *restored creation of subdirectiories under plain DOS

   * include/hbapi.h
   * include/hbcomp.h
   * include/hbdefs.h
   * include/hbvm.h
   * source/compiler/genc.c
   * source/compiler/harbour.c
   * source/compiler/hbpcode.c
   * source/vm/dynsym.c
   * source/vm/hvm.c
   * source/vm/macro.c
      *modified creation of symbols table
         *symbol of function name never share a symbol of variable
         *symbol for INIT/EXIT procedure has now '$' suffix - this means
         that such procedures cannot be called from user code
         (Clipper compatible)
       See the following code:
       PROCEDURE MAIN
        aaa()
       RETURN
       INIT PROCEDURE aaa
        ? "In INIT procedure", PROCNAME(0)
       RETURN
       STATIC PROCEDURE aaa
        ? "In STATIC procedure", PROCNAME(0)
       RETURN
       It will print:
       In INIT procedure aaa$
       In STATIC procedure aaa

      *fixed access to static functions in a macro compiler (symbols for
      static functions never goes into dynamic symbols table)

   * source/pp/ppcore.c
      *increased numer of nested optional clauses (max 5 currently - work
      in progress)
2005-03-18 10:39:33 +00:00
Ryszard Glab
181e59a3a6 2005-01-03 10:30 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbcomp.h
   * include/hbexprb.c
   * include/hbmacro.h
   * source/compiler/exproptb.c
   * source/compiler/harbour.c
   * source/compiler/hbgenerr.c
   * source/macro/macrob.c
   * source/vm/macro.c
      * compiler reports error on the following syntax now (Clipper
        compatibility):
         {|| &macrovar <operator> anysymbol}
        "codeblock contains both macro and declared symbol reference"
        Notice, that Clipper reports error even in this case:
        MEMVAR mvar
        {|| &mvar,mvar}

   * source/vm/memvars.c
      * restored initial and expand sizes for memvars table

   * source/pp/ppcore.c
      * some empty lines added
2005-01-03 09:28:58 +00:00
Przemyslaw Czerpak
a188a207d6 2004-12-28 11:35 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/samples/dbf.c
  * harbour/contrib/samples/time.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencli.c
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rtl/accept.c
  * harbour/source/rtl/errorapi.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/initsymb.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/memvclip.c
    * changed 'extern HB_FUNC' to HB_FUNC_EXTERN for easier ABI
      manipulations
2004-12-28 10:33:04 +00:00
Przemyslaw Czerpak
e657086589 2004-10-20 07:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbdefs.h
    + added macros HB_{PUT|GET}_{LONG|PTR}
    * changed HB_CAST_BYTE_NUMBERS_OFF to HB_STRICT_ALIGNMENT

  * harbour/source/vm/fm.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/macro.c
    * replaced code which made pointer casting without respecting
      machine alignment with proper macros
2004-10-20 05:08:06 +00:00
Przemyslaw Czerpak
4549e35314 2004-10-19 22:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    * changed 'sed' and 'tr' expresions to be compatible with SunOS
    + added Darwin dynlib support borrowed from xHarbour thanks
      to Phil Krylov

  * harbour/bin/hb-mkslib.sh
    * minor modification

  * harbour/bin/postinst.sh
  * harbour/config/darwin/gcc.cf
    + Phil's modification for Darwin
    * removed HB_OS_BSD and HB_BIG_ENDIAN - the first macro is set in
      hbsetup.h when HB_OS_DARWIN is set, the second one should be
      automatically detected inside hbdefs.h using C header files.

  * harbour/config/sunos/gcc.cf
    * removed HB_BIG_ENDIAN macro - the same as above

  * harbour/include/hbapi.h
  * harbour/source/vm/fm.c
    * changed 16/32 bit hack #if UINT_MAX == ULONG_MAX for hb_xmem*()
      functions to still not perfect but working on current platforms
      #if UINT_MAX > USHRT_MAX

  * harbour/include/hbdefs.h
    + added HB_DBL_LIM_INT24(d) and HB_LIM_INT24(l) macros
    + try to autodect byte order using information form system C header
      files - it whoud work for Linux, BSD/Darwin, SunOS - maybe also
      for some other *nixes
    * removed some dangerous casting. [x]Harbour code still depnds on
      8bytes double - in CDX for binary compatibility IEEE754 double is
      necessary - if some architectures uses differ type of double value
      for binary compatibility we will have to create proper conversion
      functions for HB_{PUT|GET}_{LE|BE}_DOUBLE and HB_ORD2DBL/HB_DBL2ORD
      macros

  * harbour/include/hbsetup.h
    * define HB_OS_UNIX when HB_OS_SUNOS set

  * harbour/source/common/hbstr.c
  * harbour/source/pp/ppcore.c
    * casting

  * harbour/source/compiler/harbour.c
    * use HB_LIM_INT*() macros instead of hard coded values
    * removed some unnecessary if () statement - always true

  * harbour/source/compiler/harbour.l
  * harbour/source/compiler/hbfix.c
  * harbour/source/vm/macro.c
    * use HB_LIM_INT*() macros instead of hard coded values

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    ! minor fix

  * harbour/source/rdd/dbfntx/dbfntx1.c
    ! small fix - the temporary index file was not removed
    * do not force any name for temporary index files - important
      in some cases (like DOS and short file names)

  * harbour/source/rtl/diskspac.c
    ! fixed type in SunOS version

  * harbour/source/rtl/gtsln/Makefile
    * minor cleanups

  * harbour/utils/hbtest/rt_math.prg
    * changed to number results to be Clipper compatible.
2004-10-19 21:26:21 +00:00
Przemyslaw Czerpak
ef0883bf02 2004-10-11 21:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/Makefile
  + harbour/make_bsd.sh
  + harbour/make_drw.sh
  * harbour/make_tgz.sh
  + harbour/bin/hb-func.sh
  * harbour/bin/pack_src.sh
  + harbour/bin/postinst.bat
  + harbour/bin/postinst.sh
  * harbour/config/dir.cf
  * harbour/config/bsd/gcc.cf
  * harbour/config/bsd/global.cf
  + harbour/config/darwin/dir.cf
  + harbour/config/darwin/gcc.cf
  + harbour/config/darwin/global.cf
  + harbour/config/darwin/install.cf
  * harbour/config/dos/dir.cf
  * harbour/config/dos/global.cf
  * harbour/config/dos/install.cf
  * harbour/config/dos/owatcom.cf
  * harbour/config/dos/watcom.cf
  * harbour/config/linux/gcc.cf
  * harbour/config/linux/global.cf
  * harbour/contrib/Makefile
  * harbour/contrib/dot/pp_harb.ch
  * harbour/contrib/libct/Makefile
  * harbour/contrib/libct/bit1.c
  * harbour/contrib/libct/bit2.c
  * harbour/contrib/libct/bit3.c
  * harbour/contrib/libct/files.c
  * harbour/contrib/libct/ftoc.c
  - harbour/contrib/libct/invertwin.prg
  + harbour/contrib/libct/invrtwin.prg
  * harbour/contrib/libct/keyset.c
  * harbour/contrib/libct/makefile.bc
  * harbour/contrib/libmisc/dates2.c
  * harbour/contrib/rdd_ads/ads1.c
  * harbour/contrib/rdd_ads/adsfunc.c
  * harbour/contrib/samples/date.c
  * harbour/include/dbinfo.ch
  * harbour/include/hbapi.h
  * harbour/include/hbapicdp.h
  * harbour/include/hbapifs.h
  * harbour/include/hbapigt.h
  * harbour/include/hbapiitm.h
  * harbour/include/hbcomp.h
  * harbour/include/hbdate.h
  * harbour/include/hbdbf.h
  * harbour/include/hbdbferr.h
  * harbour/include/hbdefs.h
  * harbour/include/hbexprb.c
  * harbour/include/hbexprc.c
  * harbour/include/hbexprop.h
  * harbour/include/hbmacro.h
  * harbour/include/hbmath.h
  * harbour/include/hbpcode.h
  * harbour/include/hbrddcdx.h
  * harbour/include/hbrdddbf.h
  * harbour/include/hbrdddbt.h
  * harbour/include/hbrddfpt.h
  * harbour/include/hbrddntx.h
  * harbour/include/hbset.h
  * harbour/include/hbsetup.h
  * harbour/include/set.ch
  * harbour/source/common/Makefile
  * harbour/source/common/expropt1.c
  * harbour/source/common/expropt2.c
  - harbour/source/common/hbffind.c
  * harbour/source/common/hbfsapi.c
  * harbour/source/common/hbstr.c
  * harbour/source/common/hbver.c
  + harbour/source/common/hbverdsp.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/harbour.c
  * harbour/source/compiler/harbour.l
  * harbour/source/compiler/harbour.slx
  * harbour/source/compiler/harbour.sly
  * harbour/source/compiler/harbour.y
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/hbusage.c
  * harbour/source/compiler/simplex.c
  * harbour/source/macro/macro.l
  * harbour/source/macro/macro.slx
  * harbour/source/macro/macro.y
  * harbour/source/pp/ppcore.c
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
  - harbour/source/rdd/dbfcdx/dbfcdx1.h
  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/rdd/dbfntx/dbfntx1.c
  * harbour/source/rtl/Makefile
  * harbour/source/rtl/abs.c
  * harbour/source/rtl/at.c
  * harbour/source/rtl/datec.c
  * harbour/source/rtl/dates.c
  * harbour/source/rtl/dateshb.c
  * harbour/source/rtl/datesx.c
  * harbour/source/rtl/empty.c
  * harbour/source/rtl/errorapi.c
  * harbour/source/rtl/errorint.c
  * harbour/source/rtl/filesys.c
  * harbour/source/rtl/fstemp.c
  + harbour/source/rtl/hbffind.c
  * harbour/source/rtl/hbrandom.c
  * harbour/source/rtl/idle.c
  * harbour/source/rtl/inkey.c
  * harbour/source/rtl/math.c
  * harbour/source/rtl/minmax.c
  * harbour/source/rtl/pad.c
  * harbour/source/rtl/padc.c
  * harbour/source/rtl/padl.c
  * harbour/source/rtl/padr.c
  * harbour/source/rtl/philes.c
  * harbour/source/rtl/round.c
  * harbour/source/rtl/soundex.c
  * harbour/source/rtl/str.c
  * harbour/source/rtl/strcase.c
  * harbour/source/rtl/strmatch.c
  * harbour/source/rtl/strtran.c
  * harbour/source/rtl/strzero.c
  * harbour/source/rtl/substr.c
  * harbour/source/rtl/val.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtcrs/kbdcrs.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtsln/kbsln.c
  * harbour/source/rtl/gtsln/keytrans.c
  * harbour/source/vm/arrays.c
  * harbour/source/vm/codebloc.c
  * harbour/source/vm/estack.c
  * harbour/source/vm/eval.c
  * harbour/source/vm/extend.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
  * harbour/source/vm/macro.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/runner.c
  * harbour/tests/bldtest/bldtest.c
  * harbour/utils/hbtest/hbtest.prg
  * harbour/utils/hbtest/rt_misc.prg
  * harbour/utils/hbtest/rt_str.prg
   * Sorry but it's too much modification for full description
     cvs diff gives file 785982 bytes length. So I only count the
     main things:
   ! cleand the code (no more warning messages under Linux and GCC and
     DOS OpenWatcom) - some of them were real bugs
   ! cleaned all endian dependend code I've found - now Harbour can be
     compiled on LITLE and BIG endian machines - for some other like
     PDP ENDIAN it's enough to define proper macros in hbdefs.h
   + added macros for to get/put values in chosen byte order:
         HB_GET_LE_[U]INT{16,24,32,64}( pPtr )
         HB_GET_BE_[U]INT{16,24,32,64}( pPtr )
         HB_PUT_LE_[U]INT{16,24,32,64}( pPtr, nVal )
         HB_PUT_BE_[U]INT{16,24,32,64}( pPtr, nVal )
   + added macro HB_CAST_BYTE_NUMBERS_OFF which disables casting in
     HB_{GET|PUT}_{LE|BE}_* macros - it's necessary for some platforms
     like ALPHA DEC.
   ! cleaned the code for 64bit machines
   * changed all parameters in hb_date* functions (day, month, year, week)
     from LONG to int - it doesn't change binary compatibility for 32bit
     machines but can cause troubles with compiling the old source
   + changed HB_IT_LONG type to HB_LONG which is mapped to long long
     by default for 32 bit machines.
   + change HB_IT_INTEGER to be real 'int' C type not 'short int'
   + added HB_IS_NUMINT() macro
   + added hb_parnll, hb_stornll, hb_retnll, hbretnlllen, hb_itemPutNLL,
     hb_itemPutNLLLen, hb_itemGetNLL which operates on LONGLONG
   + added hb_parnint, hb_stornint, hb_retnint, hb_retnintlen,
     hb_itemPutNInt, hb_itemPutNIntLen, hb_itemGetNInt which operates on
     HB_LONG
   + added HB_PUSHLONGLONG pcode
   + changed compiler and optimizer to use HB_LONG numbers and reduce
     conversion from to double which may damage the 64bit number.
   + common functions for string to number conversions for compiler, RTL
     and RDD to reduce problems with differ FL values for the same number:
     hb_compStrToNum(), hb_valStrnToNum(), hb_strToNum(), hb_strnToNum()
   + common function hb_numRoun() which uses exactly the same algorithms
     as string to number conversion for the same reason - please keep
     this functions together.
   + hack inside hb_numRound() similar to the one used by CL5.3
   + hb_numInt() which uses uses the same hack as hb_numRound()
   + rewritten number to string conversion
   + some new string manipulation functions hb_strncpy(), hb_strncat(), ...
     They works differ the the C one - always set 0 at the end, the buffer
     has to be n+1 bytes length, the n is total size of buffer not the
     left free space.
   ! cleaned some code which operates on ASCIIZ string to avoid potential
     buffer overflow
   + updated RDD code - it's the first part - in few days I plan to change
     workarea structure in both projects - it will break any 3rd party RDDs
     so they have to be updated. I want to add SUPERTABLE into workarea
     to allow creating new RDD on-line.
   ! cleaned the bugs with negating integers - on most machines (like x86)
     the integers are not 0 symmetric - it means that x = -x does not work
     for {INT,LONG,LONGLONG}_MIN (hb_vmNegate, ABS())
   + cleaned error messages to be Clipper compatible.
   + updated build process for .DEB packages - now hb* scripts and shared
     libs are created by standard make install
   * added new .prg #defines: __PLATFORM__<cPlatfrom>,
     __ARCH{16|32|64}BIT__, __LITTLE_ENDIAN__|__BIG_ENDIAN__|__PDP_ENDIAN__
     !!! cPlatfrom can have lower letters (for xHarbour compatibility)
     If you do not like it please change it.
   * others ...
2004-10-11 20:44:30 +00:00
Ryszard Glab
ec407c3d59 2004-09-08 16:40 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbapi.h
   * source/vm/dynsym.c
      * a new function 'hb_dynsymScope' was added to check if the
      passed symbol has requested scope

   * source/vm/macro.c
   * source/vm/hvm.c
      * fixed support for static functions used in macro compiled
      expressions (the runtime error is generated during evaluation
      instead of macro compilation - like in Clipper)

   * source/pp/ppcore.c
      * fixed support for '&macro.' in complex expressions
2004-09-08 14:32:51 +00:00
Ryszard Glab
58e748bc75 2004-04-24 15:30 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbapi.h
      * changed ULONG hb_objHasMsg into BOOL hb_objHasMsg

   * include/hbvmpub.h
      * added
         union {
          PHB_FUNC pFunPtr;
          int iStaticsBase;
         } value
       to HB_SYMB structure to remove pointer/int conversion

   * source/compiler/genc.c
   * source/compiler/gencli.c
   * source/rdd/dbf1.c
   * source/rdd/delim1.c
   * source/rdd/sdf1.c
   * source/rdd/dbfcdx/dbfcdx1.c
   * source/rdd/dbfdbt/dbfdbt1.c
   * source/rdd/dbffpt/dbffpt1.c
   * source/rdd/dbfntx/dbfntx1.c
   * source/rtl/symbol.prg
   * source/vm/classes.c
   * source/vm/dynsym.c
   * source/vm/hvm.c
   * source/vm/initsymb.c
   * source/vm/macro.c
   * source/vm/runner.c
      * changed to use new HB_SYMB structure
      * removed all pointer/long castings (except runner.c)
2004-04-24 13:33:06 +00:00
Ryszard Glab
76ea4f0b3e 2004-04-09 10:10 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbexpra.c
   * include/hbexprop.h
   * source/compiler/expropta.c
   * source/macro/macroa.c
   * source/vm/macro.c
      * fixed my previous fix to correctly release memory in
      the macro compiler
2004-04-09 08:05:34 +00:00
Ryszard Glab
9e734084d4 2004-04-08 17:20 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbexpra.c
   * source/compiler/expropta.c
   * source/macro/macroa.c
   * source/vm/macro.c
      * fixed bug cousing that some memory was deallocated
      more then once

   * source/debug/debugger.prg
      * fixed support for .T./.F. in command window
      * fixed issues when the application was using
      SET EXACT ON
2004-04-08 15:05:24 +00:00
Ryszard Glab
3b7d43dcbc 2004-04-06 15:40 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbapi.h
   * include/hbvm.h
   * source/vm/hvm.c
   * source/vm/macro.c
      * fixed bug introduced earlier by me in the macro compiler:
        PUBLIC &macro
        works correctly now
2004-04-06 13:24:11 +00:00
Ryszard Glab
b79d50c582 2004-04-02 13:15 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbexpra.c
   * include/hbexprop.h
   * source/common/expropt1.c
   * source/compiler/expropta.c
   * source/macro/macro.y
   * source/macro/macroa.c
   * source/vm/macro.c
      * fixed to release memory in cases where invalid
      syntax was macro compiled

   * source/vm/itemapi.c
      * fixed to correctly check for infinity on Unix
      STR(LOG(-1)) no longer core dumps

   * source/rtl/filesys.c
   * source/rdd/hbdbsort.c
      * fixed to suppres warnings

   * source/pp/ppcore.c
   * utils/hbtest/rt_misc.prg
      * Clipper preproceses '**' into '^' - harbour too
2004-04-02 11:14:37 +00:00
Ryszard Glab
1e22b1fe7a 2004-03-01 11:15 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbexprb.c
   * include/hbmacro.ch
      * fixed support for strings as array of bytes
        (in macro compiler)
      * added a new #define HB_SM_ARRSTR as a flag
        for HB_SETMACRO() to disable/enable strings
        as array of bytes

   * source/vm/macro.c
      * added HB_SM_ARRSTR support
      * fixed TYPE() function to return correct value when an
        assigment to undeclared variable is checked (Clipper
        creates the memvar variable) - thanks to Phil Krylov

   * source/compiler/hbusage.c
      * fixed typo for -ks switch
2004-04-01 09:17:44 +00:00
Ryszard Glab
e3971c5905 2004-03-30 16:30 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbapi.h
   * source/vm/macro.c
      * added HB_ITEM_PTR pError member to HB_MACRO structure
      * fixed bug in macro compiler - calls to static
        functions are not allowed in macro compiler

   * source/common/expropt1.c
   * source/common/hbffind.c
      *fixed minor warnings reported by Randy Portnoff

   * source/rtl/set.c
      *SET(_SET_DEBUG) defaults to FALSE (Clipper compatible)

   * source/rtl/idle.c
      *small optimization of hb_idleState()

   * source/compiler/harbour.y
      *the compiler generates line number for DO CASE
      (if debug info requested - to allow breakpoint)

   * source/debug/debugger.prg
      *the debugger shows the line number for modules where
      no source code is available
2004-03-30 14:13:52 +00:00
Ryszard Glab
1aad158eb0 Changelog 2003-10-23 11:00 UTC+0100 Ryszard Glab 2003-10-23 09:26:09 +00:00
Tomaz Zupan
3a020b8283 2003-02-18 22:05 UTC+0100 Tomaz Zupan <tomaz.zupan@orpo.si> 2003-02-18 21:02:54 +00:00
Antonio Linares
2fad3600c7 see changelog 2002-10-14 15:46:57 +00:00
Ignacio Ortiz de Zuniga
6bfb00c39a 2002-03-06 18:30 UTC+0100 Ignacio Ortiz 2002-04-06 16:34:03 +00:00
Antonio Linares
20d82b2ee1 Fixed bug in Macro Compiler where Field Assignment is compiled mistakenly as a Memvar Assignment. 2002-03-18 13:33:45 +00:00
Antonio Linares
fa0ea9268b See changelog for description 2002-01-30 10:46:51 +00:00
Chen Kedem
b8fcce5aa5 2002-01-30 12:30 UTC+0200 Chen Kedem <niki@actcom.co.il> 2002-01-30 10:31:01 +00:00
Ryszard Glab
eedb0202d1 ChangeLog 2001-09-08 17:00 UTC+0100 2001-09-08 15:41:24 +00:00
Ryszard Glab
f047a9927f ChangeLog 2001-08-17 20:15 UTC+0100 2001-08-17 18:26:37 +00:00
Ron Pinkas
559b060f97 2001-08-09 02:30 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/macro.c
   * include/hbcomp.h
   * include/hbexprb.c
   * include/hbexprc.c
   * include/hbmacro.h
   * include/hbmsetup.h
   * include/set.ch
   * source/compiler/cmdcheck.c
   * source/compiler/genc.c
   * source/compiler/harbour.c
   * source/compiler/hbpcode.c
   * source/rdd/dblist.prg
   * source/vm/hvm.c
     - Removed support for syncing of macro setting with main module.
     - Removed support for -ks which is replaced with -kr.
     + Added default logic to auto symchronize all macro activations with the compile time switches of each respective module.
     + Added -kr to disable auto synching, thus allowing Run-Time setting by means of HB_SETMACRO().
2001-08-09 09:48:59 +00:00
Ron Pinkas
cb4e5e74e0 2001-08-05 12:15 UTC-0800 Ron Pinkas <ron@profit-master.com>
+ include/hbmsetup.h
   * include/hbmacro.h
     * Moved #defines of HB_SM_* to new file hbmsetup.h

   * source/compiler/harbour.c
   * source/vm/macro.c
   * source/compiler/genc.c
     + Added logic to automatically synchronize HB_SETMACRO() level with the -k option supplied to compiler.

     /* HB_SETMACRO() may still be called explictly, but now specifying any -k option to harbour will automatically provide same
       level of functionalty in macro compiler. Example:

           harbour test -kc

        will restrict the compiler to the Clipper level mode, and will automatically disable extended macro support in that module
        without requiring:

           HB_SETMACRO( HB_SM_HARBOUR, .F. )
           HB_SETMACRO( HB_SM_XBASE, .F. )

        By default all harbour extensions are enabled - you can use -kc, -kx -ki, etc., to disable any unwanted feature.

        We should still review the need to have -ki which I find absolutley redundant and unproductive.
     */
2001-08-05 19:24:12 +00:00
Ron Pinkas
71ce8f8787 2001-08-04 11:00 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/macro.c
      ! Added missing ; in line 956
2001-08-04 18:03:25 +00:00
Ryszard Glab
65cd98cadb ChangeLog 2001-08-04 15:15 UTC+0100 2001-08-04 14:19:29 +00:00
Ron Pinkas
928a660c0a 2001-07-26 16:21 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/macro.c
     * Corrected typo in trace message within hb_macroExpandString()
2001-07-26 23:25:29 +00:00
Ron Pinkas
da40f1d977 2001-07-23 20:50 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/macro.c
     ! Corrected a compiler warning.
2001-07-24 03:46:39 +00:00
Ron Pinkas
fc7c28a6b3 2001-07-23 04:15 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hbexprop.h
     + Added #define  HB_ET_MACRO_PARE    64

   * source/vm/hvm.c
   * source/vm/macro.c
   * source/macro/macro.y
   * include/hbexprb.c
     + Added support for HB_P_MACROPUSHPARE aand HB_P_MACROPUSHINDEX

   * include/hbmacro.h
     + Added #define HB_MACRO_GEN_PARE     16  /* generate parentesized list */

   * source/common/expropt1.c
   * source/common/expropt2.c

   * include/hbpcode.h
   * source/compiler/genc.c
   * source/compiler/hbfix.c
   * source/compiler/hbpcode.c
     + Added new opcode HB_P_MACROPUSHPARE

   /* This should complete macro list support for ( &cMacro ) and aArray[ &cMacro ] syntaxes. */
2001-07-23 11:13:06 +00:00
Ron Pinkas
e2e1eeb028 2001-07-22 14:30 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hbapi.h
     * Changed 2nd parameter to BYTE iContext in hb_macroGetValue( HB_ITEM_PTR pItem, BYTE iContext )

   * include/hbexprop.h
     + Added #define  HB_ET_MACRO_LIST    16   /* &variable used as in literal arrays or parentesised expressions. */
     + Added #define  HB_ET_MACRO_INDEX   32   /* &variable used as arrays index. */

   * include/hbexprb.c
     + Added macro list support logic to hb_compExprUseArray()
     + Added generation of HB_P_MACROLIST,  HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX in hb_compExprUseMacro()

       /* HB_P_MACROLIST and HB_P_MACROLISTEND are only generated as an enevelope if array contains a one or more macro element
          which will generate an HB_P_MACROPUSHLIST. */

   * include/hbpcode.h
   * source/compiler/genc.c
   * source/compiler/hbfix.c
   * source/compiler/hbpcode.c
     + Added: new opcodes HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX.

   * source/vm/hvm.c
   * source/vm/macro.c
     + Added: support for new opcodes HB_P_MACROLIST, HB_P_MACROPUSHLIST, HB_P_MACROLISTEND, and HB_P_MACROPUSHINDEX.

       /* HB_P_MACROPUSHINDEX not completed yet.*/

   /* NOTE: This implements macro as literal array arguments list syntax <{ &cMacro }>.
           ( &Cmacro ) and Array[ &cMacro ] are not completed yet.

      *** All prgs must be recompiled due to new opcodes !!!
   */
2001-07-23 06:31:41 +00:00
Ryszard Glab
f6353a8674 ChangeLog 2001-07-22 20:15 UTC+0100 2001-07-22 19:03:52 +00:00
Ron Pinkas
6f912ba2bd 2001-07-19 20:30 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hbapi.h
     + Added #define HB_MAX_MACRO_ARGS 16

   * source/vm/hvm.c
   * source/vm/macro.c
     + Added support for nested HB_P_MACROPUSHARG

   * contrib/dot/pp.prg
     - Removed bSplit in PP_PreProLine(). Instead added logic to split the line unless line is a directive.
2001-07-20 03:32:06 +00:00
Ron Pinkas
3928d386a1 2001-07-18 16:10 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/macro.c
   * source/vm/hvm.c
     % Simplified logic for suppoting macro lists. Removed global variables:
          int hb_vm_iFunCalls = 0, *hb_vm_aiMacroListParameters = NULL, hb_vm_iMacroListAllocated
       which are no longer needed. No longer using any logic in any PCODE case, other than HB_P_PUSHMACROARG.
       No longer using any arrays, or memory allocations.

   * include/hbexpra.c
   * include/hbexprb.c
     * HB_P_PUSHMACROARG will now be followed with a push symbol sequence, indicating its parrent function call.

   * include/hbpcode.h
     * Added decimal values into the description comments for readability.
2001-07-18 23:11:05 +00:00
Ron Pinkas
8abc351c51 2001-07-17 18:25 UTC-0800 Ron Pinkas <ron@profit-master.com>
* utils/hbpp/hbpp.c
     * Commented an exit() call in hb_compGenError() to continue processing after an error just like Harbour does.

   * include/hbapi.h
     + Added 2nd parameter BOOL bArg to hb_macroGetValue()

   * include/hbexpra.c
     + Added global BOOL hb_exp_bArgList = FALSE;

   * include/hbexprb.c
     + Added logic to generate HB_P_MACROPUSHARG rather than HB_MACROPUSH when pushed macro is a function call argument.

   * include/hbpcode.h
   * source/compiler/genc.c
   * source/compiler/hbfix.c
   * source/compiler/hbpcode.c
     + Added new HB_P_MACROPUSHARG

   * source/macro/macro.y
     + Added logic to generate an error if macro expression is list, unless servicing an HB_MACROPUSHARG.

   * source/vm/hvm.c
     + Added support for new HB_P_MACROPUSHARG calling hb_macroGetValue() with TRUE for bArg.

   * source/vm/macro.c
     + Added 2nd parameter BOOL bArg to hb_macroGetValue() to signify servicing of HB_P_MACROPUSHARG.

   * contrib/dot/pp.prg
     + Added bSplit 4th paramater to PP_PreProLine() defaulting to .T.. - Calls from PP_PreProFile() set it to .F..
2001-07-18 01:29:53 +00:00
Ron Pinkas
6ed48b5b25 2001-07-16 09:45 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/hvm.c
   * source/vm/macro.c
     + Wrapped macro statement support within #ifdef HB_MACRO_STATEMENTS (which is NOT defined).
2001-07-16 16:42:59 +00:00
Ron Pinkas
d8977933fa 2001-07-16 03:40 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/hvm.c
   * source/vm/macro.c
     + Added missing #include "hbpp.h" to resolve strict compiler warnings.
2001-07-16 10:40:24 +00:00
Ron Pinkas
6c5369f4f8 2001-07-16 02:45 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/vm/hvm.c
     * Few improvements to recent support for lists in macro expansion

   * source/vm/macro.c
     + Added preprocessing support to hb_macroGetValue()

   * source/compiler/harbour.sly
   * source/compiler/harbour.y
     + Added rules to support MacroVar and MacroExpr as a standalone Statement.
2001-07-16 09:41:28 +00:00
Ron Pinkas
005cee072c 2001-07-15 20:45 UTC-0800 Ron Pinkas <ron@profit-master.com>
* include/hbapi.h
     + Added member iListElements to HB_MACRO structure.

   * source/macro/macro.y
     + Added rules to support a macro of a comma seperated list.

   * source/vm/hvm.c
     + Added: int hb_vm_iFunCalls = 0, *hb_vm_aiMacroListParameters = NULL, hb_vm_iMacroListAllocated
       to support new logic to track number of extra parameters introduced by means of a macro expanded to a list.

   * source/vm/macro.c
     + Added logic to track number of extra parameters introduced by means of a macro expanded to a list.
2001-07-16 03:43:13 +00:00
David G. Holm
cc172e3091 See ChangeLog entry 2001-06-14 17:15 UTC-0400 David G. Holm <dholm@jsd-llc.com> 2001-06-14 21:20:43 +00:00
Ron Pinkas
9d823b9a8b 2001-03-22 11:00 UTC-0800 Ron Pinkas <ron@profit-master.com>
* hb_slex.vc
     * Minor corrections.

   * include/hbapi.h
     + extern PHB_ITEM hb_paramError( int iParam ); /* Returns either the generic parameter or a NIL item if param not provided */
     + extern PHB_ITEM hb_arrayFromStack( USHORT uiLen ); /* Creates and returns an Array of n Elements from the Eval Stack - Does NOT pop the items. */
     + extern PHB_ITEM hb_arrayFromParams( void ); /* Creates and returns an Array of current Generic Parameters. */

   * include/hbapierr.h
     * extern USHORT   hb_errRT_BASE           ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiArgCount, ... );
     * extern USHORT   hb_errRT_BASE_Ext1      ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags, USHORT uiArgCount, ... );
     * extern PHB_ITEM hb_errRT_BASE_Subst     ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiArgCount, ... );
     * extern void     hb_errRT_BASE_SubstR    ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiArgCount, ... );
       + Added support for variable number of Error Arguments.

   * source/rtl/errorapi.c
     * hb_errRT_BASE           ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiArgCount, ... );
     * hb_errRT_BASE_Ext1      ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags, USHORT uiArgCount, ... );
     * hb_errRT_BASE_Subst     ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiArgCount, ... );
     * hb_errRT_BASE_SubstR    ( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiArgCount, ... );
       + Added support for variable number of Error Arguments.

   * source/vm/arrays.c
     + PHB_ITEM hb_arrayFromStack( USHORT uiLen )
     + PHB_ITEM hb_arrayFromParams( void )

   * source/vm/extend.c
      + PHB_ITEM hb_paramError( int iParam )

   * source/rdd/dbcmd.c
     * Added the Error Arguments as parameters to hb_errRT_BASE*().

   * source/rtl/abs.c
   * source/rtl/at.c
   * source/rtl/chrasc.c
   * source/rtl/copyfile.c
   * source/rtl/datec.c
   * source/rtl/dateshb.c
   * source/rtl/diskspac.c
   * source/rtl/disksphb.c
   * source/rtl/do.c
   * source/rtl/left.c
   * source/rtl/len.c
   * source/rtl/math.c
   * source/rtl/minmax.c
   * source/rtl/mod.c
   * source/rtl/philes.c
   * source/rtl/philesx.c
   * source/rtl/replic.c
   * source/rtl/round.c
   * source/rtl/set.c
   * source/rtl/space.c
   * source/rtl/str.c
   * source/rtl/strcase.c
   * source/rtl/strtran.c
   * source/rtl/strzero.c
   * source/rtl/substr.c
   * source/rtl/transfrm.c
   * source/rtl/trim.c
   * source/rtl/type.c
   * source/rtl/val.c
   * source/rtl/word.c
     * Added the Error Arguments as parameters to hb_errRT_BASE*().

   * source/vm/arrayshb.c
   * source/vm/eval.c
   * source/vm/hvm.c
   * source/vm/macro.c
   * source/vm/memvars.c
   * source/vm/runner.c
     * Added the Error Arguments as parameters to hb_errRT_BASE*().

   * source/vm/classes.c
     + Added 0 arguments (J.F. can you please decide what should be the arguments! )

   /* HBTEST now reports 173 failures ( down from 376 ) many of the failures are justified.

      I have tested this as much as I could, but since it invloved lots of "Cust & Pasets" more testing should be done.

      It would be great if someone could review each of HBTEST Reported Failures on a one-by-one basis.

     BTW, HBTEST reports 1 UN-RELEASED Memory Block (from before my changes)!
   */
2001-03-22 19:49:50 +00:00
Ryszard Glab
4370282dd8 ChangeLog 2001-01-09 16:15 UTC+0100 2001-01-09 15:10:35 +00:00
Ryszard Glab
ccc567b1d0 ChangeLog 2000-12-12 21:25 UTC+0100 2000-12-12 20:22:23 +00:00
Ron Pinkas
0c2228a024 2000-11-30 18:25 UTC+0800 Ron Pinkas <ron@profit-master.com>
* include/hbmacro.h
   * source/macro/macro.y
   * source/vm/macro.c
     ! Renamed hb_compParse() to hb_macroYYParse(). We already have hb_macroParse() and hcompparse()

   * source/compiler/harbour.y
     * Added token GET (not used) just so that harboury.h is compatible with harbour.sly

   * source/rtl/tgetint.prg
     * Reverted to use _1 and == NIL to not break Clipper compatibility.

     /* Ryszard, if you want to re-introduce PCount() and HB_PVALUE(), I'll ask (since I wrote this original code)
        that you protect it with #ifdef FLEX etc. If you do I would suggest you further protect it with #ifdef STRICT...
	becuase this will defintly break strict compatability. */
2000-12-01 02:25:20 +00:00
Ryszard Glab
7df80dd709 ChangeLog 2000-11-17 20:50 UTC+0100 2000-11-17 19:44:48 +00:00
Ryszard Glab
9440d323b0 ChangeLog 2000-11-08 18:25 UTC+0100 2000-11-08 17:28:24 +00:00
Ryszard Glab
bc1ffaa562 ChangeLog 2000-06-12 15:40 UTC+0100 2000-06-12 13:37:08 +00:00
Viktor Szakats
be81ee127d 2000-05-27 23:12 UTC+0100 Victor Szakats <info@szelvesz.hu> 2000-05-28 19:52:03 +00:00