Commit Graph

14 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
9e2ee8d66e 2008-12-24 00:04 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/common/expropt1.c
  * harbour/source/common/expropt2.c
    ! fixed wrongly modified expression during optimization for
      ( <numConst> / 0.0 )
    * cleaned bDec/bWidth updating in compile time optimizations

  * harbour/tests/speedtst.prg
    ! fixed possible race condition in initialization
    + added set workarea private for xHarbour builds - thanks to Phil

  * harbour/doc/cmpopt.txt
    * small cleanup

  * harbour/include/hbvmpub.h
  * harbour/source/vm/hvm.c
    % some optimizations mostly for MT mode or compilers which do
      not support function autoinline optimization
2008-12-23 23:02:06 +00:00
Przemyslaw Czerpak
380aa521ab 2008-12-23 15:45 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbsetup.h
    * temporary disabled noreturn function attributes - we have some
      code which puts references to some functions after hb_errInternal()
      call to force link bindings which is fully optimized if hb_errInternal
      is declared with noreturn attribute so we cannot use it as long as we
      will not clean them.

  * harbour/tests/speedtst.prg
    * build default xHarbour binaries without support.
      xHarbour needs separated version for MT and ST mode
      because standard MT functions are not available in
      ST libraries.
2008-12-23 14:42:32 +00:00
Przemyslaw Czerpak
77b3d1b628 2008-10-07 21:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/runner.c
  * harbour/source/vm/codebloc.c
  * harbour/source/vm/itemapi.c
    * minor casting modification

  * harbour/tests/speedtst.prg
    * added workaround for timeout parameter not working in xHb Subscribe()
      when 3-rd parameter is passed
2008-10-07 19:27:33 +00:00
Przemyslaw Czerpak
423391977e 2008-10-06 02:18 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/tests/speedtst.prg
    * marked T054 as memory tests

  * harbour/source/vm/hvm.c
  * harbour/source/vm/thread.c
    * added hb_threadOnce( @<onceControl> [, <bAction> ] ) -> <lFirstCall>
      This function allow to execute some code only once. It's usefull in
      MT environment for initialization.
      <onceControl> is variable which holds the execution status and have
      to be initialized to NIL. In most of cases it will be simple static
      variable in user code.
      <bAction> is optional codeblock which is executed only once (on 1-st
      call with given <onceControl>)

  * harbour/source/rtl/filesys.c
    ! do not make any file name conversions in hb_fsNameConv() if HVM stack
      is not allocated

  * harbour/source/rtl/gtcrs/gtcrs.c
    * casting
2008-10-06 00:19:10 +00:00
Przemyslaw Czerpak
01fb05675c 2008-10-05 17:53 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/tests/speedtst.prg
    + added support for --scale switch - it enables special mode
      which compare scalability, f.e.:
         ./speedtst --thread=4 --scale
      executes each test loop 4 times by single thread then
      by 4 simultaneous threads, counts total real times in both
      cases and presents them with the scale factor.
      Please note that exactly the same loop tests are executed
      simultaneously so this test should well show all places which
      are not well scalable.
      This test allows me to locate yet another memory variable written by
      each thread on each function call just like uiPolls in main HVM loop.
      It's s_bDebugging which is not used in MT mode because we do not have
      any MT debugger yet but is was effectively killing the scalability
      in my hardware.
      If possible I would like to see some Windows results from multi CPU
      machine with --scale parameter, f.e.:
         speedtst --thread=8 --scale > speedtst.log
      Please make some tests.

  * harbour/source/vm/hvm.c
    % do not assign s_bDebugging in hb_vmDo()/hb_vmSend() when debugger
      is not linked

  * harbour/source/vm/garbage.c
    % enabled spinlocks in all x86 GCC builds
2008-10-05 15:53:51 +00:00
Przemyslaw Czerpak
0ebec8fe5b 2008-10-05 03:29 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/tests/speedtst.prg
    + added support for multiple usage of --exclude parameter
    + added support for --thread[=<num>] parameter which allows to set how
      many threads will be used to execute speed test. When =<num> is not
      given then each test loop is executed by separate thread, f.e.:
         ./speedtst --thread=3
      Now you can make tests looking for optimal for your system values.
      Please only remember that the total results shown by speedtst
      can be highly bound with the most expensive test loop which is
      finished only on one CPU
    + added support for --only=<testnums,...> parameter which allows to
      chose requested tests
    + added restricted parameter validation and syntax info
2008-10-05 01:29:54 +00:00
Przemyslaw Czerpak
628b9840f1 2008-10-04 21:23 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/fm.c
    ! do not build DL-MM when HB_FM_WIN32_ALLOC is set

  * harbour/tests/speedtst.prg
    + added support for --exclude=<tests,...> option to exclude some tests,
      f.e.:
         ./speetest --exclude=029.030.023.025.027.040.041.043.052.053.019.022.031.032
      disables all tests which allocates memory. The same tests can be also
      excluded by --exclude=mem
2008-10-04 19:23:36 +00:00
Przemyslaw Czerpak
2f6634cd2a 2008-10-03 21:53 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
- harbour/tests/speedtst.prg
  + harbour/tests/speedold.prg
    * renamed old speed test - I left it because some other xbase compiler
      cannot compiple the new one due to not Clipper compatible PP

  + harbour/tests/speedtst.prg
    * added new speed test which can also measure mutlithread performance.
      When linked with MT HVM version then it can be executed with optional
      parameter which causes that each test loop is executed by separate
      thread. Please make such tests on different platforms.
2008-10-03 19:53:57 +00:00
Viktor Szakats
26d0b2dabb 2008-09-25 13:13 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* tests/speedtst.prg
    ! Use hb_OSNewLine() instead of hard-wired EOL.
    + Emulate hb_OSNewLine() for non-Harbour compilers.
2008-09-25 11:13:35 +00:00
Viktor Szakats
cd96daef69 2008-09-25 00:22 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* make_b32.mak
  * make_gcc.mak
  * make_vc.mak
  * harbour.spec
  * source/rtl/hbgtcore.c
  * source/rtl/Makefile
  * source/rtl/gtsys.c
  * config/w32/poccce.cf
  * config/w32/xcc.cf
  * config/w32/pocc.cf
    % Removed HB_GT_DEFAULT envvar, which was the exact synonym 
      of HB_GT_LIB. Please use HB_GT_LIB instead, if you - by any 
      chance - want to change the default GT at Harbour build-time.

  * tests/speedtst.prg
    ! Fixed to delete temp .dbf files before exiting.
2008-09-24 22:22:57 +00:00
Viktor Szakats
7a29cb3007 2008-09-17 13:22 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* tests/memtst.prg
  * tests/speedtst.prg
    * Made them compile with < 1.1 Harbour versions.
2008-09-17 11:23:42 +00:00
Przemyslaw Czerpak
04523710aa 2008-09-15 23:08 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
+ harbour/tests/memtst.prg
    + added some simple tests for memory manager

  * harbour/tests/speedtst.prg
    * reduced the size of allocated block size to not test C-RTL
      memory manager but HVM speed

  * harbour/include/hbthread.h
    * added for x86@32 PTHREADS builds HB_ATOM_GET() and HB_ATOM_SET()
      so they can be used together with HB_ATOM_INC()/HB_ATOM_DEC()
      also for x86@64 but with reduced to 32bit reference counter.
2008-09-15 21:09:27 +00:00
Przemyslaw Czerpak
e75b7f5003 2008-09-15 13:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/tests/speedtst.prg
    * small update in speedtst.prg. It should be enough to make test and
      compare MT and ST mode speed.
      Please make test with different C compiler and send results to
      devel list.
2008-09-15 11:39:41 +00:00
Przemyslaw Czerpak
d99b93ad14 2006-11-13 03:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
    + pass GTK paths to GCC in hb* scripts when -xbgtk switch is used

  * harbour/contrib/rdd_ads/rddads.h
  * harbour/contrib/rdd_ads/adsfunc.c
    * indenting and casting

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    * cleaned typos in comments

  + harbour/tests/speedtst.prg
    + added speed test

  * harbour/include/hbpp.h
  * harbour/source/pp/ppcore.c
    + added HB_PP_TOKEN_ISNEUTRAL() macro to make code a little bit more
      readable

  * harbour/include/std.ch
    + added some missing old PP commands

  * harbour/source/Makefile
    * minor modification in order of compiled libraries

  * harbour/source/pp/pplib.c
    * changed the PP interface for .prg code.
      Now following functions are supported:

         __PP_INIT( [<cIncludePath>] [, <cStdChFile> ] ) -> <pPP>
            initialize new PP context and return pointer to it.
            when <cStdChFile> is empty string ("") then no default rules are
            used  only the dynamically created #defines like __HARBOUR__,
            __DATE__, __TIME__, __PLATFORM__*

         __PP_FREE( <pPP> )
            free PP context.

         __PP_PATH( <pPP>, <cPath> [, <lClearPrev>] )
            add new (or replace previous) include paths.

         __PP_RESET( <pPP> )
            reset the PP context (remove all rules added by user or
            preprocessed code)

         __PP_ADDRULE( <pPP>, <cDirective> )
            preprocess and execute new preprocessor directive

         __PREPROCESS( <pPP>, <cCode> ) -> <cPreprocessedCode>
            preprocess given code and return result

      User can create more then one PP context and then use each of them
      separately. Any modification in one context have no effect in other.
2006-11-13 02:40:33 +00:00