Commit Graph

66 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
cb87fbf546 2006-07-26 22:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
  * harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
  * harbour/include/hbexprop.h
  * 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/gencli.c
  * harbour/source/compiler/hbdead.c
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hblbl.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/compiler/hbstripl.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/macro.c
    * changed support for XBASE++ extended syntax in expressions like:
         v:="1,2,3"
         x := a[ &v ]
         a := { &v }
         f( &v )
      Now all data is stored on HV  * stack without any external registers
      which have to be saved/restored or updated in chosen operation.
      This modification was necessary to make HV  * reentrant safe and it
      also eliminated some small overhead caused by old code.
      I hope I haven't break anything in compiler - Ryszard please fix me
      if I made sth wrong.

  * harbour/source/vm/hvm.c
  * harbour/source/compiler/harbour.y
    * revert FOR/NEXT stop condition to be Clipper compatible

   PCODE table has been updated and all .prg code which used modified PCODEs
   has to be recompiled
2006-07-26 19:59:02 +00:00
Ryszard Glab
912b301c85 2006-07-14 16:00 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* include/hbcomp.h
   * include/hberrors.h
   * include/hbexpra.c
   * include/hbexprb.c
   * include/hbexprc.c
   * include/hbmacro.h
   * include/hbpcode.h
   * include/hbpp.h
   * include/hbxvm.h
   * source/common/expropt1.c
   * source/compiler/cmdcheck.c
   * source/compiler/expropta.c
   * source/compiler/exproptb.c
   * source/compiler/exproptc.c
   * source/compiler/genc.c
   * source/compiler/gencc.c
   * source/compiler/gencli.c
   * source/compiler/genhrb.c
   * source/compiler/genjava.c
   * source/compiler/genobj32.c
   * source/compiler/harbour.c
   * source/compiler/harbour.l
   * source/compiler/harbour.y
   * source/compiler/hbdead.c
   * source/compiler/hbfix.c
   * source/compiler/hbfunchk.c
   * source/compiler/hbgenerr.c
   * source/compiler/hblbl.c
   * source/compiler/hbpcode.c
   * source/compiler/hbstripl.c
   * source/macro/macroa.c
   * source/macro/macrob.c
   * source/macro/macroc.c
   * source/vm/hvm.c
   * source/vm/macro.c
      * fixed compilation of code that uses '@' pass by
       reference. The following syntax is no longer supported:
       var := IIF( .T., @var, var )
       however you can still use the following:
       funcall( IIF( bPassbyRef, @someVar, someVar ) )
      +added support for the following statement:
         WITH OBJECT <objexpression>
            ...
         END
       inside this statement you can use simplified form of sending
       messages to the object specified by <objexpression>
         :message( )    instead objexpression:message()
         :property      instead objexpression:property
       The runtime error will be generated at the time of message
       sending (or property access/assign) if <objexpression>
       is not a value of type object.
       You can use the reserved property:
         :__withobject
       to access/assign the controlling object.
      *fixed support for command line response file (@file.clp)
       to be compatible with Clipper (Clipper genertes a single
       obj file)
      *fixed memory leaks when there is a fatal error in autoopened
       module (using DO ... statement)
      *implicit startup functions are removed from the list of
       functions before generation of output code

   * source/pp/ppcomp.c
   * source/pp/pplib.c
   * source/pp/ppcore.c
      * redefinition of #define no longer causes a memory leak
      * fixed repeatable optional clauses
         #xcommand SET <var1> [, <varN>] WITH <val> =>
          <var1>:=<val>[; <varN>:=<val>]
      * fixed compilation of optional clauses (when used in different
        order then declared) -this fixes the following long
        waiting bug:
         #command MYCOMMAND [<mylist,...>] [MYCLAUSE <myval>] => ;
            MyFunction( {<mylist>} [, <myval>] )
         MYCOMMAND MYCLAUSE 321 "HELLO"
      * fixed restricted macro match marker <x:&>

   * tests/Makefile
   - tests/pretest.prg
   + utils/hbpptest
   + utils/hbpptest/Makefile
   + utils/hbpptest/pretest.prg
      * moved file 'pretest.prg' from tests to separate directory
        to make easier validation of the preprocessor

   * TODO
      * added note to fix hb_objGetMethod() so it will not generate
        error if there is no method

   * doc/en/clipper.txt
      * added documentation for WITH OBJECT usage
2006-07-14 13:47:17 +00:00
Przemyslaw Czerpak
b76d9f8dd3 2006-06-27 19:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbexpra.c
  * harbour/include/hbexprb.c
    * indenting

  * harbour/source/vm/hvm.c
  * harbour/source/vm/macro.c
    ! fixed HB_P_MACROPUSHINDEX
      - removed hb_vm_iExtraIndex
      - fixed GPF in direct uninitialized HB_ITEM usage
      - make it safe for HVM reentrant and pending RT errors
      There is a set of global hb_vm*Extra* variables which
      tries to extend HVM by adding some additional registers
      to it. This code does not work as it should even know
      and it's absolutely not reentrant safe. It will have to
      be fixed before we will have .prg destructor and MT support.
      As I can see the same problems has xHarbour.
2006-06-27 17:11:17 +00:00
Przemyslaw Czerpak
917c8057e6 2006-06-14 13:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/config/linux/dir.cf
  * harbour/config/linux/gcc.cf
    * formatting

  * harbour/config/linux/global.cf
  * harbour/config/linux/install.cf
    * added -ldl to linked library list and RANLIB executing after library
      creation

  * harbour/contrib/ole/ole2.c
    * added #include "hbapicls.h"

  + harbour/include/hbapicls.h
  * harbour/include/hbapi.h
    + added HB_IT_ENUM item
    + added collect member to HB_IT_POINTER structure for POINTER items
      inspected by GC
    * changed the order of HB_CODEBLOCK members to safe few bytes on
      alignment
    * removed counters from HB_CODEBLOCK and HB_BASEARRAY structure
    + added hb_xRefInc(), hb_xRefDec(), hb_xRefFree(), hb_xRefCount(),
      hb_xRefResize() functions. They are internal Harbour VM functions
      and covered by internal API macro. Should not be used by 3-rd
      party code because we may change them in the future or even remove.
    + added hb_gcRefInc(), hb_gcRefDec(), hb_gcRefFree(), hb_gcRefCount()
      functions. These are also internal function which corresponds to the
      above hb_x*() ones.
    - removed hb_arrayRelease() function. This function is not longer
      necessary and it should never be public function - it was implemented
      in very dangerous way.
    - removed hb_codeblockDelete() function.
    - removed hb_memvarValueDecGarbageRef()
    + added USHORT usLen parameter to hb_codeblockMacroNew() - when sets
      to non 0 value it informs that PCODE should be copied to dynamically
      allocated buffer.
    * moved all classes/object functions to separate file: hbapicls.h
    + added hb_retptrGC()
    + added internal function hb_memvarGetItem()

  * harbour/include/hbapiitm.h
    - removed hb_itemForwardValue() and added macro which translates
      hb_itemForwardValue() to hb_itemMove()
    + added hb_itemUnShareString() and hb_itemReSizeString() functions
    + added hb_itemSetNil() macro

  * harbour/include/hbdefs.h
    * some cleanups in macro definitions

  * harbour/include/hbexprb.c
    * indenting

  * harbour/include/hbvm.h
  * harbour/include/hbinit.h
    + added hb_vmProcessSymbolsExt(), hb_vmRegisterSymbols(),
      hb_vmFreeSymbols(), hb_vmBeginSymbolGroup(),
      hb_vmInitSymbolGroup(), hb_vmExitSymbolGroup()
    * changed hb_vmProcessSymbols() to return address of register symbol
      table. For normal code it's the same address as given in parameter
      so it does not break backward binary compatibility.
    * changed symbol init macros to work correctly with modified address
      of symbol table

  * harbour/include/hbsetup.h
    * added support for HB_USE_PROFILER macro. Now profiler code is
      is disable in HVM by default
    * commented out HB_ASORT_OPT_ITEMCOPY - it's not longer used - see note.

  * harbour/include/hbstack.h
    * added missing parenthesis in hb_stackItem() macro

  * harbour/include/hbtypes.h
    * updated VM_PROCESS_DLL_SYMBOLS definition
    + added VM_PROCESS_SYMBOLS_EXT
    - removed HB_ARRAYRELEASE

  * harbour/include/hbver.h
    * changed revision number to 2

  * harbour/include/hbvmpub.h
    - remove pFunPtr from HB_DYNS and cover profiler member by
      #ifndef HB_NO_PROFILER
    + added HB_PCODEFUNC structure
    + added HB_FS_PCODEFUNC, HB_FS_DYNCODE and HB_FS_LOCAL - the last one
      is not used yet.

  * harbour/include/hbxvm.h
    * added some multipcode functions for some speed optimization in -gc3
      output

  * harbour/include/hbapicdp.h
  * harbour/source/codepage/cpbg866.c
  * harbour/source/codepage/cpbgiso.c
  * harbour/source/codepage/cpbgwin.c
  * harbour/source/codepage/cpeldos.c
  * harbour/source/codepage/cpelwin.c
  * harbour/source/codepage/cpesdos.c
  * harbour/source/codepage/cpesmwi.c
  * harbour/source/codepage/cpeswin.c
  * harbour/source/codepage/cpgedos.c
  * harbour/source/codepage/cpgewin.c
  * harbour/source/codepage/cphu852.c
  * harbour/source/codepage/cphuiso.c
  * harbour/source/codepage/cphuwin.c
  * harbour/source/codepage/cppl852.c
  * harbour/source/codepage/cppliso.c
  * harbour/source/codepage/cpplmaz.c
  * harbour/source/codepage/cpplwin.c
  * harbour/source/codepage/cppt850.c
  * harbour/source/codepage/cpptiso.c
  * harbour/source/codepage/cpru866.c
  * harbour/source/codepage/cprukoi.c
  * harbour/source/codepage/cpruwin.c
  * harbour/source/codepage/cpsl437.c
  * harbour/source/codepage/cpsl852.c
  * harbour/source/codepage/cpsliso.c
  * harbour/source/codepage/cpslwin.c
  * harbour/source/codepage/cpsrwin.c
  * harbour/source/common/hbfhnd.c
  * harbour/source/common/hbstr.c
  * harbour/source/common/hbver.c
  * harbour/source/compiler/gencli.c
  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/langapi.c
  * harbour/source/rtl/gtalleg/gtalleg.c
  * harbour/source/rtl/gtalleg/ssf.h
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/gtos2/gtos2.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtwin/gtwin.c
  * harbour/source/rtl/gtwvt/gtwvt.c
  * harbour/source/rtl/gtxwc/gtxwc.c
    * cleaned the code to avoid warnings for some non ANSI C constructions

  * harbour/source/compiler/cmdcheck.c
    * formatting

  * harbour/source/compiler/gencc.c
    * added some multipcode optimizations

  * harbour/source/compiler/genc.c
    * keep function name set by compiler for static initstatics

  * harbour/source/compiler/harbour.c
    * extend init statics name with the number of used static variables
    * formatting

  * harbour/source/compiler/hbusage.c
    + added my name to developers list - I hope that there is enough
      of my code in Harbour (BTW for quite long time) ;-)

  * harbour/source/rdd/dbcmd.c
    - removed DBF2TEXT() function

  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    * generate RT error when someone tries to create DBF with memo fields
      without MEMO RDD linked.

  * harbour/source/rtl/errorapi.c
    * replace all hb_vmDo() with hb_vmSend()

  * harbour/source/rtl/math.c
    * use hb_errPutArgs() to pass parameters to error object

  * harbour/source/rtl/philes.c
  * harbour/source/rtl/space.c
  * harbour/source/rtl/strpeek.c
    * some minor optimizations

  * harbour/source/vm/arrays.c
    - removed hb_arrayRelease() function.
    * changed hb_arrayReleaseGarbage() to be safe for recursive call
    * updated to use GC counters

  * harbour/source/vm/arrayshb.c
    * use stack function/macros instead of direct accessing HB_STACK members

  * harbour/source/vm/asort.c
    * removed unused HB_ASORT_OPT_ITEMCOPY

  * harbour/source/vm/classes.c
    * added class code from HVM
    % added fast overloaded operator detection and execution
    + added hb_objHasOperator(), hb_objOperatorCall()
    + added separated overloading of "=" and "==" operators
    * operate on PHB_SYMB not PHB_FUNC - support for pure PCODE function
      without any machine code
    * use stack function/macros instead of direct accessing HB_STACK members
    * separated profiler code
    * some code cleaning

  * harbour/source/vm/codebloc.c
    + added USHORT usLen parameter to hb_codeblockMacroNew() - when sets
      to non 0 value it informs that PCODE should be copied to dynamically
      allocated buffer.
    * updated to use GC counters
    - removed hb_codeblockDelete() function.
    * changed hb_codeblockDeleteGarbage() to be safe for recursive call
    - removed restoring statics base in hb_codeblockEvaluate()

  * harbour/source/vm/debug.c
    * cleaned and optimized some code

  * harbour/source/vm/dynlibhb.c
    + added support for loading and unloading dynamic libraries with PCODE
    + added support for dynamic libraries in Linux (.so)
    + added HB_LIBERROR() - returns error string with last error in
      HB_LIBLOAD() - now works only in Linux

  * harbour/source/vm/dynsym.c
    * separated profiler code
    + use pDynSym->pSymbol->value.pFunPtr instead of pDynSym->pFunPtr

  * harbour/source/vm/estack.c
    + added #include "hbapicls.h"
    + added hb_stackPushReturn(), hb_stackPopReturn()

  * harbour/source/vm/eval.c
  * harbour/source/vm/extend.c
    * use stack function/macros instead of direct accessing HB_STACK members
    + added hb_retptrGC()

  * harbour/source/vm/fm.c
    + added hb_xRefInc(), hb_xRefDec(), hb_xRefFree(), hb_xRefCount(),
      hb_xRefResize() functions. They are internal Harbour VM functions
      and covered by internal API macro. Should not be used by 3-rd
      party code because we may change them in the future or even remove.

  * harbour/source/vm/garbage.c
    + added hb_gcRefInc(), hb_gcRefDec(), hb_gcRefFree(), hb_gcRefCount()
      functions. These are also internal function which corresponds to the
      above hb_x*() ones.
    * changed Step 3 of GC pass and execution of clean-up function to be
      safe for recursive calls and additional activity.
      Ryszard see my note and s_pDeletedBlock
    + added GC inspected HB_IT_POINTER items.

  * harbour/source/vm/hvm.c
    * separated profiler code
    * separated class code from HVM
    + added support for loading and unloading libraries with PCODE modules
    + added support for pure PCODE functions
    + added support for string item resizing and preallocating string buffer
    + added some new multipcode functions for -gc3 optimization
    + added hb_vmProcessSymbolsExt(), hb_vmRegisterSymbols(),
      hb_vmFreeSymbols(), hb_vmBeginSymbolGroup(),
      hb_vmInitSymbolGroup(), hb_vmExitSymbolGroup()
    * changed hb_vmProcessSymbols() to return address of register symbol
      table. For normal code it's the same address as given in parameter
      so it does not break backward binary compatibility.
    + use new code for operator overloading
    * changed FOR EACH to dynamically check iteration scope in
      hb_vmEnumNext()/hb_vmEnumPrev() and remove max number of iteration
      stored on HVM stack
    * temporary use hb_itemUnRefOnce() instead of hb_itemUnRefRefer() as
      workaround for possible GPF. I'd like Ryszard will chose the final
      version

  * harbour/source/vm/itemapi.c
    + added support for preallocating string buffer size
    + added hb_itemUnShareString() and hb_itemReSizeString()
    * updated string items to use counters allocated with each
      memory block by xh_xgrab()/hb_xalloc()
    * updated codeblock and array items to use GC reference counters
    + added GC inspected HB_IT_POINTER items.
    * generate RT error in hb_itemUnreOnce() for enumerator items
      out of scope
    + added hb_itemPutPtrGC()

  * harbour/source/vm/macro.c
    * use pDynSym->pSymbol->value.pFunPtr instead of pDynSym->pFunPtr

  * harbour/source/vm/maindllp.c
    * updated usage of hb_vmProcessSymbols()
    * added hb_vmProcessSymbolsExt()

  * harbour/source/vm/memvars.c
    + added hb_memvarGetItem()
    - removed hb_memvarValueDecGarbageRef()

  * harbour/source/vm/proc.c
    + added #include "hbapicls.h"

  * harbour/source/vm/pvalue.c
    * do not access stack structure directly but use hb_stack*()
      functions (macros)

  * harbour/source/vm/runner.c
    * synced with xHarbour

  * harbour/utils/hbtest/rt_misc.prg
   * added overloading "=" operator. Now "==" and "=" can be overloaded
     with different methods

   All names I used for new functions/macros can be changed. Please look at
   it and if you will some better propositions then we can use it.
   hb_vmProcessSymbolsExt() is added but not used yet.
2006-06-14 11:21:26 +00:00
Przemyslaw Czerpak
ecae40ccf8 2006-05-05 11:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    * changed the exit code for .hrb file compilation by xhbcmp

  * harbour/include/hbcomp.h
  * harbour/source/compiler/gencc.c
  * harbour/source/compiler/hblbl.c
    * removed some variables which are not necessary in Harbour

  * harbour/source/compiler/hbfix.c
    + added unconditional and conditional jump joining optimization

  * harbour/source/vm/classes.c
    * indenting and some minor modifications

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    ! clear the logical key position buffer for pending relations
      or hot record buffer updating

  * harbour/source/rdd/dbffpt/dbffpt1.c
  * harbour/source/vm/hvm.c
    * casting

  * harbour/source/vm/macro.c

  * xharbour/include/hbvmpub.h
    * removed HB_FS_ALLOCATED

  * xharbour/source/vm/dynsym.c
    * changed the code for hb_symbolNew() to avoid possible memory leak
      alerts and keep the list of all dynamic symbols accessible.
      It also reduced a little bit the memory fragmentation and total
      size of memory allocated for dynamic symbols.
2006-05-05 09:37:09 +00:00
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