Przemyslaw Czerpak 5cc03ac9b9 2012-09-24 19:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/src/rtl/Makefile
  - harbour/src/rtl/fieldbl.prg
    - removed old PRG level implementation of FIELDBLOCK() and
      FIELDWBLOCK() functions

  * harbour/src/vm/macro.c
    + created new implementation of FIELDBLOCK() and FIELDWBLOCK()
      functions in C. This implementation is strictly Clipper compatible
      and allows to create field blocks only for symbols already
      registered in HVM so it does not create new symbols in HVM.
      When table is open then all field symbols are registered in HVM.
      It means that new functions may not create field block if table
      is not open yet and field name was never used explicitly in
      whole compiled application. It's possible to easy change it
      and automatically register new symbols if we decide it's real
      limitation and we should drop strict Cl*pper compatibility.
      Anyhow it may cause that some code will register big number
      of completely unnecessary symbols in HVM so it should be well
      thought decision.
      This implementation makes exactly the same fied name conversions
      as default implementation of ADDFIELD() workarea method so exactly
      the same set of symbols is accepted. It means that after opening
      table which has field names with spaces or other characters
      which are not accepted as PRG identifiers it's possible to create
      field blocks for them.
      It should be also noticable faster because macrocompiler is not
      used at all and is many times faster in codeblock evaluation then
      implementation like in xHarbour which uses
         fieldget( fieldpos( cFieldName ) )
      to support fields with embeded spaces.

  * harbour/src/rtl/hbgtcore.c
    % small optimization in INKEY() code
2012-09-24 17:13:22 +00:00
Description
Harbour Core — Reference source for Five development
172 MiB
Languages
C 80.3%
xBase 17.8%
Makefile 0.6%
C++ 0.4%
Harbour 0.4%
Other 0.3%