Commit Graph

6657 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
35ca6dae33 2006-06-07 16:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbrddcdx.h
  * harbour/include/hbrdddbf.h
  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/delim1.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    * cleaned // comments and some compiler warnings

  * harbour/include/dbinfo.ch
  * harbour/source/rdd/dbf1.c
    ! fixed setting [V]FP DBF table type

  * harbour/source/vm/arrays.c
    ! fixed ADEL() to clear last element
    % optimized a little bit AINS() - use hb_itemMove() instead of
      hb_itemCopy()
2006-06-07 14:41:08 +00:00
Jacek Kubica
618955a1a2 *** empty log message *** 2006-06-05 18:41:17 +00:00
Przemyslaw Czerpak
ceb75ebe27 2006-06-04 18:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbdefs.h
    * use i64 suffix for BCC 3.0 and higher for long long int

  * harbour/source/rtl/dummy.prg
  * harbour/source/rdd/dbcmd.c
    * added undocumented Clipper function: __dbTrans()
      __dbOpenSDF() and __dbJoin() I'll commit soon.
      There is also __dbTransRec() in dummy.prg but I cannot find any
      information about this function and its parameters in GOOGLE.
      If someone knows what is this functions syntax and can Inform
      me then I'll implement it. I guess it's a wrapper to TRANSREC()
      RDD method.

  * harbour/source/rdd/dbf1.c
    * DBI_LOCKOFFSET now returns DBF record lock offset really used
      (f.e. updated in FP locking after open/close production index)

  * harbour/source/rdd/delim1.c
    * cleaned BCC warning

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    ! updated internal production index flag after manual opening
      production index
2006-06-04 16:41:02 +00:00
Przemyslaw Czerpak
b8b5e032be 2006-06-02 14:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
  * harbour/config/global.cf
  + harbour/include/usrrdd.ch
  + harbour/source/rdd/usrrdd/Makefile
  + harbour/source/rdd/usrrdd/usrrdd.c
  + harbour/source/rdd/usrrdd/rdds/Makefile
    + added USRRDD library. It allows to create new RDD from scratch
      or by inheriting from any other RDDs (except USRRDDs) and overloading
      any of their methods at .prg level.
      I hope you will find a lot of fun in creating your own RDDs.
      I wanted to create more examples and added some documentation
      but I do not have time for it now - sorry. Try to look at examples
      below and if you need some more detail information then look at
      Clipper's NG Technical Reference Guide or ask me. I'll try to help.
      Two RDDs which seems to be requested by users are ARRAY RDD and
      OLE RDD. I hope that some of you implement them.

  + harbour/source/rdd/usrrdd/rdds/dbtcdx.prg
    * Very simple RDD DBTCDX which inherits from DBFCDX and
      set default memo type to DBT, see exmemo.prg as an example.

  + harbour/source/rdd/usrrdd/rdds/fptcdx.prg
    * Very simple RDD FPTCDX which inherits from DBFCDX and
      set default memo type to FPT, see exmemo.prg as an example.

  + harbour/source/rdd/usrrdd/rdds/smtcdx.prg
    * Very simple RDD SMTCDX which inherits from DBFCDX and
      set default memo type to SMT, see exmemo.prg as an example.

  + harbour/source/rdd/usrrdd/rdds/fcomma.prg
    * A simple RDD which uses HB_F*() functions from MISC library
      to access CSV files. It allow to open an CSV file and navigate
      using SKIP()/GOTO()/GOTOP()/GOBOTTOM() functions using
      BOF()/EOF()/RECNO()/LASTREC() to check current state.
      HB_F*() functions does not support single field access and allow
      to read only the whole line. This RDD also. I only added one
      virtual field which exist in all tables open by this RDD called
      LINE which contains the current .csv file line.

  + harbour/source/rdd/usrrdd/rdds/hscdx.prg
    * A simple RDD which adds automatically update HSX indexes to DBFCDX
      To create new HSX index for current work area use: HSX_CREATE()
      To open already existing one use HSX_OPEN(),
      To close use: HSX_CLOSE()
      To retieve an handle use: HSX_HANDLE()

  + harbour/source/rdd/usrrdd/rdds/rlcdx.prg
    * A simple RDD which introduce lock counters. It has full DBFCDX
      functionality from which it inherits but if you execute DBRLOCK(100)
      twice then you will have to also repeat call to DBRUNLOCK(100) to
      really unlock the record 100. The same if for FLOCK()
      This idea comes from one of messages sent by Mindaugas Kavaliauskas.

  + harbour/source/rdd/usrrdd/example/exfcm.prg
    * example of using FCOMMA RDD

  + harbour/source/rdd/usrrdd/example/exhsx.prg
    * example of using HSCDX RDD

  + harbour/source/rdd/usrrdd/example/exrlx.prg
    * example of using RLCDX RDD

  + harbour/source/rdd/usrrdd/example/exmemo.prg
    * example of using DBTCDX, FPTCDX and SMTCDX RDDs
2006-06-02 12:41:01 +00:00
Ryszard Glab
7db31d8504 2006-06-02 14:15 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* harbour.spec
   * include/hbver.h
      * updated to set version 0.46.1 for build46
2006-06-02 12:09:59 +00:00
Ryszard Glab
718afe4c4c 2006-06-02 14:15 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* harbour.spec
   * include/hbver.h
      * updated to set version 0.46.1 for build46
2006-06-02 12:05:37 +00:00
Ryszard Glab
886dc4fcbd 2006-06-02 14:00 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* include/hbexpra.c
   * source/compiler/expropta.c
      * fixed bug in GET var[ any_one_dim_index ]

   * source/pp/ppcore.c
      * fixed BCC warning

      NOTICE: The above files are retagged to 'build46'
2006-06-02 11:43:30 +00:00
Przemyslaw Czerpak
b7ec491c40 2006-05-31 14:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/dbcmd.c
    ! fixed default RDD seting in APPEND FROM / COPY TO
  * ChangeLog
    * fixed date in my last commit info
2006-05-31 12:08:32 +00:00
Tomaz Zupan
945fa390bb 2006-05-31 13:45 UTC+0200 Tomaz Zupan (tomaz.zupan at orpo.si)
* harbour.spec
    * Added Mandriva to recognised distros
    * Sinchronised version with harbour/include/hbver.h
2006-05-31 11:45:15 +00:00
Przemyslaw Czerpak
a6d505a6b6 2005-10-30 18:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* changed xharbour to harbour in directory names in ChangeLog description
2006-05-30 16:27:25 +00:00
Przemyslaw Czerpak
f7b754f74b 2005-10-30 18:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* xharbour/source/rdd/sdf1.c
    * cleaned BCC warning
  * xharbour/source/rdd/delim1.c
    ! fixed BCC compilation (string initialization with dynamic
      values is forbidden by BCC)
2006-05-30 16:23:45 +00:00
Przemyslaw Czerpak
268c9d28dc 2006-05-30 12:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbver.h
    * changed version number and ChangeLog entry

  * harbour/make_tgz.sh
    ! fixed creating PP in DJGPP builds

  * harbour/contrib/dot/pp.prg
    ! minor fix in parameter checking

  * harbour/contrib/libmisc/hb_f.c
    ! fixed bug in record numbering after reaching EOF position and
      backward skipping

  * harbour/include/hbrdddel.h
  * harbour/source/rdd/delim1.c
    + implemented DELIM RDD. It should be fully Clipper compatible
      in comma files parsing. If you will find any difference, please
      inform me and I'll update it. Unlike in Clipper in [x]Harbour
      these RDD can be used also in direct import operations with
      APPEND FROM ... VIA "DELIM"
      These RDD also support whole record transfering between RDDs
      if they support the same record format and field representation
      and can translate extended field types like "I", "B", "V3", "V4",
      etc.

  * harbour/source/rtl/dbdelim.prg
    * replaced old code of __dbDelim() function with simple calls to
      __dbCopy()/__dbApp() - it should fix most of the reported
      incompatibilities in DELIM import/export operations and
      increase their speed many times

  * harbour/include/hbrddsdf.h
  * harbour/source/rdd/sdf1.c
    + implemented SDF RDD. It should be fully Clipper compatible
      in SDF files parsing. If you will find any difference, please
      inform me and I'll update it. Unlike in Clipper in [x]Harbour
      these RDD can be used also in direct import operations with
      APPEND FROM ... VIA "SDF"
      These RDD also support whole record transfering between RDDs
      if they support the same record format and field representation
      and can translate extended field types like "I", "B", "V3", "V4",
      etc.

  * harbour/source/rtl/dbsdf.prg
    * replaced old code of __dbSDF() function with simple calls to
      __dbCopy()/__dbApp() - it should fix most of the reported
      incompatibilities in SDF import/export operations and
      increase their speed many times

  * harbour/source/rdd/dbcmd.c
    + added support for table structure inheriting in transfer RDDs.
    + added eleventh parameter with delimiter to __dbCopy()/__dbApp()

  * harbour/source/rdd/dbf1.c
    * force 10 bytes size for memo fields in DBF and SMT memos.
    * some minor clean-up.

  * harbour/source/rdd/workarea.c
    * added some dummy DBI_* actions in base RDD level
2006-05-30 10:28:42 +00:00
Chen Kedem
3c0977df5d 2006-05-30 12:09 UTC+0300 Chen Kedem <niki@actcom.co.il> 2006-05-30 09:09:17 +00:00
Ryszard Glab
e391cb707c 2006-05-29 16:00 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* harbour.spec
   * doc/whatsnew.txt
   * include/hbver.h
      * modified to store build number 46
2006-05-29 13:51:04 +00:00
Ryszard Glab
66f19fe13b 2006-05-29 14:10 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* source/pp/ppcore.c
      *fixed invalid memory access

   * source/compiler/harbour.c
      *fixed to generate error in cases when variable name is duplicated
      in PARAMETERS and PRIVATE statements (NOTICE: this error is
      generated when automatic memvar declaration was requested only
      using -a command line switch)
2006-05-29 11:59:37 +00:00
Chen Kedem
ad6dfff8e1 2006-05-23 14:21 UTC+0300 Chen Kedem <niki@actcom.co.il>
(fixed a small typo in my last ChangeLog)
2006-05-23 11:25:36 +00:00
Chen Kedem
658d94b056 2006-05-23 14:21 UTC+0300 Chen Kedem <niki@actcom.co.il> 2006-05-23 11:21:29 +00:00
Przemyslaw Czerpak
d495e5ad00 2006-05-19 21:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    * added support -go[0-3] and other -g* switches to xhb* scripts

  * harbour/include/hbapi.h
    + added ISSYMBOL() macro
    * formatting

  * harbour/include/hbapirdd.h
    * changed definition of SUPERTABLE for optional dynamic overloading
      this modification will not effect existing code

  * harbour/include/hbrddfpt.h
  * harbour/source/rdd/dbffpt/dbffpt1.c
    * added support for NIL value in SIX3 FPT files

  * harbour/include/hbcomp.h
  * harbour/source/compiler/harbour.c
  * harbour/source/compiler/genc.c
  * harbour/source/compiler/gencli.c
  * harbour/source/compiler/genhrb.c
  * harbour/source/compiler/genjava.c
    ! message symbols are not function symbols - cleaned the HB_FS_MESSAGE
      usage and fix the problem with registering static function in global
      symbol table

  * harbour/source/compiler/gencc.c
    ! fixed typo in compilation for platforms 64 bit LONG

  * harbour/include/hbvmpub.h
  * harbour/source/compiler/cmdcheck.c
  * harbour/source/vm/asort.c
  * harbour/source/vm/evalhb.c
    * formatting

  * harbour/source/rdd/dbcmd.c
    * formatting and some minor clean-up

  * harbour/source/rdd/workarea.c
    * added default SYSNAME method
    ! fixed possible memory leak when APPEND failed in TRANSREC method

  * harbour/source/rdd/hsx/hsx.c
    ! fixed using HS_ADD()/HS_REPLACE() without STRING/BLOCK expression

  * harbour/source/rtl/cdpapi.c
    * cleaned GCC4 warning

  * harbour/source/rtl/do.c
    * changed to keep parameter references in DO() function. Now it works
      like IIF()/EVAL()

  * harbour/source/vm/classes.c
    * removed some definitions repared from hbapi.h
    + added support to passing function references as HB_IT_SYMBOL

  * harbour/source/vm/dynlibhb.c
    ! fixed GPF in HB_LIBDO called with wrong parameter

  * harbour/source/vm/hvm.c
    ! fixed hb_rddGetFieldValue() to not operate on unallocated stack area
      it could cause unpredictable results when RDD had to access HVM, f.e.
      for evaluation some pending relations. The whole code should be
      carefully checked and to not operate on hb_stackTopItem() if other
      functions are called to make the HVM fully reentrant.
    + added commented out support for passing HB_IT_SYMBOL as function
      pointer
    * formatting

  * harbour/source/vm/itemapi.c
    * return "S" for HB_IT_SYMBOL by hb_itemType()
    * formatting
2006-05-19 19:06:45 +00:00
Chen Kedem
2f27db20c4 2006-05-14 09:36 UTC+0200 Chen Kedem <niki@actcom.co.il> 2006-05-14 06:36:44 +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
700203598f 2006-04-18 14:10 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* bin/bld.sh
      * fixed typo

   * source/pp/ppcore.c
      * fixed bug in ParseOptional
      <"var"> were not recognized correctly
      (This fixes SET RELATION bug reported by David Macias)
2006-04-18 11:59:12 +00:00
Przemyslaw Czerpak
8bc1e2f652 2006-04-15 20:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
  + harbour/include/blob.ch
  * harbour/include/dbinfo.ch
  * harbour/include/hbdbferr.h
  * harbour/include/hbrddfpt.h
  * harbour/source/rdd/dbf1.c
  * harbour/source/rdd/workarea.c
  * harbour/source/rdd/dbffpt/dbffpt1.c
    + added all CL5.3 BLOB*() functions support
    + added new RDD DBFBLOB compatible with CL5.3 DBFBLOB
      It operates on memo files only (.dbv) without tables (.dbf)
      To create .DBV file use:
         dbCreate( cFile, {}, "DBFBLOB" )

  * harbour/source/rdd/dbcmd.c
    * do not report error when empty structure table is passed to DBCREATE()
      CL5.3 allow to create even DBF files without any fields and because
      I can imagine some valid code which use it as a feature then I also
      allow it in DBF RDD.
      Authors of RDDs which do not allow to create tables without fields
      should add to their low level RDD code necessary RT error.
2006-04-15 18:51:38 +00:00
Jacek Kubica
3498a9c55b *** empty log message *** 2006-04-13 17:10:36 +00:00
Przemyslaw Czerpak
ba694969f5 2006-04-10 00:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/dbfntx/dbfntx1.c
    ! fixed skip back after updating last record
2006-04-09 22:51:25 +00:00
Przemyslaw Czerpak
6b48bcaafc 2006-04-09 19:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/dbfcdx/dbfcdx1.c
    ! fixed scope checking when skip is done from the record which
      dos not exist in index

  * harbour/source/vm/classes.c
    * use hb_itemClone() - it will save us modifications in the
      future if we will add new items which will be passed as
      parameters like arrays (f.e. hashes)
    * some source code formatting
2006-04-09 17:20:33 +00:00
Alexander S.Kresin
68f940c3e0 2006-04-09 14:55 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su> 2006-04-09 10:54:01 +00:00
Przemyslaw Czerpak
2b6f6caa62 2006-04-07 15:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    * support for detecting startup function in C++ mode

  * harbour/include/hbapi.h
    * some few #defines to translate some xHarbour functions names to Harbour

  * harbour/include/hbxvm.h
  * harbour/source/compiler/gencc.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
  * harbour/source/common/hbdate.c
    + added optimizations for add and div by integer value
    * changed code generated for double values to avoid limitation in some
      C compilers like MSC and possible differ conversion inside C RTL then
      the one which uses Harbour RTL
    * some minor optimizations, cleanups and code formating

  * harbour/source/compiler/hbfix.c
    * optimize usage of HB_P_NOT PCODE - remove repeated NOT operations
      or revert conditional jumps if they are just after NOT.

  * harbour/source/rdd/dbf1.c
    * added support for NULL value set in memo fields by ACCESS

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    * fixed ordKeyPos() - for records out of scope

  * harbour/source/rtl/padc.c
  * harbour/source/rtl/padl.c
  * harbour/source/rtl/padr.c
  * harbour/source/rtl/substr.c
    * some minor optimizations to avoid new string item creation when
      it's not necessary

  * harbour/source/vm/classes.c
  * harbour/source/vm/extend.c
    * minor code formatting and optimizations
2006-04-08 00:51:27 +00:00
Viktor Szakats
23bb599ea9 2006-04-07 15:30 UTC+0100 Viktor Szakats (viktor.szakats syenar.hu)
* harbour/source/vm/classes.c
     % Optimized __CLSADDMSG() to call hb_parc() only once instead
       of 25 times for most cases.
     ! Possible problem fixed in __CLSADDMSG() where message parameter
       was required to be uppercase when overloading operator .NOT.,
       .AND. or .OR.
     % hb_dynsymGet() calls replaced with hb_dynsymGetCase() where the
       parameter was an already uppercased constant.

   * harbour/source/vm/dynsym.c
     ! Fixed HB_TRACE() function name in hb_dynsymGetCase().
2006-04-07 13:50:40 +00:00
Przemyslaw Czerpak
130a3239d2 2006-04-07 15:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    * support for detecting startup function in C++ mode

  * harbour/include/hbapi.h
    * some few #defines to translate some xHarbour functions names to Harbour

  * harbour/include/hbxvm.h
  * harbour/source/compiler/gencc.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
  * harbour/source/common/hbdate.c
    + added optimizations for add and div by integer value
    * changed code generated for double values to avoid limitation in some
      C compilers like MSC and possible differ conversion inside C RTL then
      the one which uses Harbour RTL
    * some minor optimizations, cleanups and code formating

  * harbour/source/compiler/hbfix.c
    * optimize usage of HB_P_NOT PCODE - remove repeated NOT operations
      or revert conditional jumps if they are just after NOT.

  * harbour/source/rdd/dbf1.c
    * added support for NULL value set in memo fields by ACCESS

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    * fixed ordKeyPos() - for records out of scope

  * harbour/source/rtl/padc.c
  * harbour/source/rtl/padl.c
  * harbour/source/rtl/padr.c
  * harbour/source/rtl/substr.c
    * some minor optimizations to avoid new string item creation when
      it's not necessary

  * harbour/source/vm/classes.c
  * harbour/source/vm/extend.c
    * minor code formatting and optimizations
2006-04-07 12:57:59 +00:00
Ryszard Glab
7ccc4310e1 2006-04-06 14:05 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* source/compiler/harbour.c
      * fixed registering of startup procedure name

   * source/pp/ppcore.c
      * ignore escaped '<' in command/translate definitions
        (work in progress)
2006-04-06 11:56:06 +00:00
Jacek Kubica
7ea92ddaa6 *** empty log message *** 2006-04-05 15:14:25 +00:00
Antonio Linares
6c238a7034 some required changes for Microsoft C 2006-04-05 13:49:14 +00:00
Antonio Linares
b1072902c9 some required changes for Microsoft C 2006-04-05 12:37:04 +00:00
Antonio Linares
f526649ee3 some required changes for Microsoft C 2006-04-05 12:30:23 +00:00
Antonio Linares
56fdc28b7d Added hblbl.c and gencc.c modules 2006-04-05 12:22:37 +00:00
Ryszard Glab
4005a2d163 2006-04-05 13:35 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* source/compiler/harbour.c
      * fixed allocation of startup procedure name

   * source/compiler/harbour.l
      * fixed compilation of macro expression (the first letter
        was eaten in some cases)

   * source/pp/ppcomp.c
   * source/pp/ppcore.c
   * source/pp/pplib.c
      * fixed calls to hb_pp_ParseDirective
      * increased back the input buffer to HB_PP_STR_SIZE (12288 bytes)
2006-04-05 11:28:42 +00:00
Ryszard Glab
a579fbc805 2006-03-29 11:55 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* include/hbpp.h
      *fixed declaration of hb_pp_StreamBlock

   * source/pp/ppcore.c
      * added two guards for buffer overflow
2006-03-29 09:48:28 +00:00
Przemyslaw Czerpak
b9ee88d465 2006-03-28 18:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/compiler/harbour.c
    ! upper the default .prg function name created from .prg file name
      when compiled without -n switch
2006-03-28 19:51:27 +00:00
Przemyslaw Czerpak
de066c0455 2006-03-28 17:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    * warnings cleanup
2006-03-28 15:26:39 +00:00
Ryszard Glab
7864d83543 2006-03-28 14:35 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* include/hbexpra.c
    * fixed optimization of 'EVAL' in macro compiler

  * source/pp/ppcore.c
    * fixed calculation of length of stringify expressions
2006-03-28 12:25:21 +00:00
Jacek Kubica
ff0af41f5e *** empty log message *** 2006-03-28 11:53:12 +00:00
Przemyslaw Czerpak
fbd8b70d4b 2006-03-28 13:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcomp.h
    + added hb_compPCodeSize() and hb_compStrongType() declarations

  * harbour/include/hbpp.h
    * formatting

  * harbour/source/compiler/Makefile
  + harbour/source/compiler/hbstrong.c
  * harbour/source/compiler/hbpcode.c
    * moved strong typing code to separate file

  * harbour/source/compiler/hbpcode.c
    + added hb_compPCodeSize() function
    + added support for automatic size checking of variable size PCODEs
      in hb_compPCodeEval()

  * harbour/source/compiler/gencc.c
    * added escaping of '?' character in generated strings to
      avoid possible conflicts with trigraph sequences which
      are part of ANSI C standard
    * force .0 at the end of double numbers to avoid possible range
      conflicts in generated .c files
    * removed unnecessary HB_SYMBOL_UNUSED()

  * harbour/source/compiler/harbour.l
  * harbour/source/compiler/harbour.y
  * harbour/source/macro/macro.l
  * harbour/source/macro/macro.y
    * added #define realloc hb_xrealloc

  * harbour/source/compiler/hbdead.c
  * harbour/source/compiler/hbfix.c
  * harbour/source/compiler/hblbl.c
  * harbour/source/compiler/hbstripl.c
    * use hb_compPCodeSize() function
    * removed not longer necessary functions for checking the real size
      of variable size PCODEs

  * harbour/source/vm/hvm.c
    * fixed RT error number in hb_vmAddInt() for negative values to be
      Clipper compatible
2006-03-28 11:00:49 +00:00
Ryszard Glab
167ef1f0c5 2006-03-27 15:25 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* contrib/htmllib/default.ch
    * fixed IF/THEN command

  * source/compiler/hbident.c
  * source/compiler/harbour.l
    * added memory duplication for macro text (&a._m)

  * source/pp/ppcore.c
    * fixed my last commits
    * processed this file with indent
2006-03-27 13:15:07 +00:00
Przemyslaw Czerpak
29f11ab65c 2006-03-25 03:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
    * added pEnd to hb_stack structure to speed up hb_stackPush()
      which is one of the most often used operation in HVM.

  * harbour/include/hbapi.h
    * small trick with HB_IS_* macros to give a compiler a chance to make
      them faster on some machines

  * harbour/source/compiler/genc.c
    ! fixed stripping non identifier characters from symbol table name

  * harbour/source/compiler/hbpcode.c
    * cleaned comment

  * harbour/source/rdd/dbf1.c
    * set Operation in error object to field name in field{put,get} methods.
    + added DBI_LOCKOFFSET

  * harbour/source/vm/classes.c
    * formatting

  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
    * some minor speed optimizations
2006-03-25 02:44:01 +00:00
Ryszard Glab
7ed7c4709d 2006-03-23 14:50 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* source/pp/ppcore.c
    * fixed preprocessor to preserve spaces the same way (almost)
      as Clipper

  * tests/pretest.prg
    * added more tests to check preprocessor
2006-03-23 13:42:36 +00:00
Przemyslaw Czerpak
68ceb7444c 2006-03-22 16:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
    + added hb_stackDecrease( ULONG )

  * harbour/include/hbxvm.h
  * harbour/source/vm/hvm.c
    + added hb_xvmArrayItemPush(), hb_xvmArrayItemPop(), hb_xvmMultByInt()

  * harbour/source/compiler/gencc.c
    % use hb_xvmArrayItemPush(), hb_xvmArrayItemPop(), hb_xvmMultByInt()
      If someone has time then it will be good to also add:
      hb_xvmDivByInt(), hb_xvmModulusInt(), hb_xvmPlusInt(), hb_xvmMinusInt()

  * harbour/source/vm/itemapi.c
    * use simple memcpy() in hb_itemSwap() - it's save in current HVM
      It could become unsafe if we add reference tracing or sth like
      that in the future but in such case we will have to also update
      hb_itemCopy() and hb_itemMove() so we can also update hb_itemSwap()

  * harbour/source/vm/asort.c
  * harbour/source/vm/classes.c
  * harbour/source/vm/memvars.c
  * harbour/source/vm/hvm.c
    * cleaned the code which created HB_ITEMs on C stack. Only three
      places have to be update yet and array/clodeblock creation little
      bit modified and we will be able add automatic GC activation in
      hb_xgrab() or hb_gcAlloc().
2006-03-22 15:14:21 +00:00
Przemyslaw Czerpak
baf6771099 2006-03-21 13:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    ! added missing void in hb_xvmActionRequest() declaration to avoid
      BCC warnings
2006-03-21 12:46:33 +00:00
Jacek Kubica
7b9e174d65 *** empty log message *** 2006-03-21 12:37:46 +00:00
Jacek Kubica
7a9909dea3 *** empty log message *** 2006-03-21 03:22:42 +00:00
Przemyslaw Czerpak
4ee1406dd5 2006-03-21 02:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/make_gnu.bat
  * harbour/make_gnu.cmd
  * harbour/make_gnu.sh
    * added information about GTWVT to GT description for Windows

  * harbour/contrib/rdd_ads/ads1.c
  * harbour/contrib/rdd_ads/adsfunc.c
  * harbour/source/rdd/dbf1.c
    * synced with xHarbour

  * harbour/source/rtl/console.c
    ! fixed PROW() updating to be Clipper compatible when row number
      exceed 16bit integer value

  * harbour/source/rtl/filesys.c
    ! fixed possible GPF when hb_fsCurDirBuff()

  * harbour/source/rtl/str.c
  * harbour/source/rtl/strzero.c
    * minor optimizations

  * harbour/source/rtl/strpeek.c
    ! fixed accessing the last character in STRPEEK() and STRPOKE()

  * harbour/include/hbgtinfo.ch
  * harbour/source/rtl/gtwin/gtwin.c
    + synced with recent xHarbour modifications

  * harbour/source/rtl/gtwvt/gtwvt.c
    * cleaned BCC warning

  * harbour/include/hbapi.h
  * harbour/source/vm/codebloc.c
    * declare BYTE * passed to hb_codeblockNew() as const

  * harbour/include/hbpcode.h
    ! fixed the PCODE numbers in PCODE description, 122 was repeated for
      two different PCODEs: HB_P_ONE and HB_P_MACROLIST

  * harbour/source/compiler/genc.c
    ! fixed hb_p_functionshort pcode size returned by genc function
    ! fixed double value presented in verbose genc mode for HB_P_PUSHDOUBLE
    ! fixed number of cases presented in verbose genc mode for HB_P_SWITCH

  * harbour/source/compiler/hbdead.c
    + added support for dead code elimination in functions which uses
      SWITCH ...; CASE ...; ...; END syntax

  * harbour/source/compiler/harbour.c
  * harbour/source/compiler/hbfix.c
    ! fixed optimization for HB_P_PUSHLOCALNEAR and HB_P_POPLOCALNEAR.
      It was a long existing bug not reported so far because 0, 1 and 2
      PCODEs uses only one BYTE and bad PCODE tracing in hbfix.c didn't
      caused bad side effects as long as number of locals in function
      was smaller then 768. Now for functions HB_P_PUSHLOCAL and
      HB_P_POPLOCAL is used and later changed to NEAR version in hbfix.c
      if possible.

  * harbour/source/compiler/hbfix.c
    * join sequential jumps to optimize constructions like:
         while ...
            ...
            if ...
               exit
            endif
         enddo

  * harbour/source/compiler/hbdead.c
    * remove HB_P_END PCODE also at the and of function if is repeated
      just before, f.e. in code like (source/rtl/color53.prg):
         Function RADGRDEFCO( cColor )
            if isdefcolor()
               Return applydefau( cColor, "W/N", "W/N", "W+/N")
            Else
               Return applydefau( cColor, 3, 1, 4)
            endif
         Return nil
      Now such redundant constructions like above are fully stripped by
      compiler anyhow if someone has time and think is important then can
      clean also this .prg code.


  * harbour/include/Makefile
  * harbour/include/hbcomp.h
  + harbour/include/hbxvm.h
  * harbour/source/compiler/Makefile
  * harbour/source/compiler/cmdcheck.c
  * harbour/source/compiler/genc.c
  + harbour/source/compiler/gencc.c
  + harbour/source/compiler/hblbl.c
  * harbour/source/compiler/hbpcode.c
  * harbour/source/vm/hvm.c
    + added support for generating real C code not PCODE in .c files.
      Now with  -gc3 Harbour will generate .c files with real .c code
      which is later compiled to real machine code.
      I left PCODE only for code block definitions though it's also
      possible to have even code block compiled to machine code but
      we will have to add a flag to codeblock structure which will
      be checked at runtime and proper method of execution in EVAL
      will be chosen. If you think it's worth of afford then I can
      add it too in some spare time.
      The final binaries are noticable longer then the one which has
      only PCODE but they are faster. The speed improvement depends
      on type of operations. The pure Clipper code which does not
      execute any external time consuming C functions compiled with
      -gc3 is from 10% to 50% faster.
      The side effect of generating pure machine code is also harder
      recompilation but it does not mean that is impossible. If sth
      can be executed by some machines (virtual or hardware) then it
      can always be decompiled by definition.
      This modification opens door for farther optimization, f.e. when
      we will have fully working strong type support then we can add
      using native .c types.
      In fact this module is PCODE to .c translater not part of compiler
      and can be used as separate module to translate generated PCODE,
      f.e. .hrb files.
      Maybe in the future we will change the compiler to generate meta
      code not directly PCODE and it will be possible to make optimizations
      on this meta code which will depend on selected output type:
      VHM PCODE, C code, .NET code, etc. but at this moment adding support
      for .c compilation directly into compiler will make the compiler code
      too much complicated for me - IMHO it's better to invest time into
      clear separation to FRONT_END->REAL_COMPILER->BACK_END
      Please make test with your code. I rebuild whole Harbour code with
      -gc3 set in HB_FLAGS in harbour/config/rules.cf and all seems to
      work correctly. hbtest returns exactly the same results.
      I also made tests with my programs and they work correctly but
      I had to define actions for all PCODEs and it's possible that made
      some typos in some of them which are very seldom used so your tests
      will be very important.
2006-03-21 01:25:32 +00:00