Commit Graph

5327 Commits

Author SHA1 Message Date
Viktor Szakats
42d5b4139c 2008-10-11 14:49 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/fnsplit.c
  * source/rtl/hbtoken.c
    ! HB_FNAMESPLIT(), HB_TOKENPTR() fixed to 
      reset parameters passed by reference in 
      error cases.
2008-10-11 12:49:45 +00:00
Przemyslaw Czerpak
d93996a154 2008-10-11 13:06 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/tget.prg
    ! fixed cursor positioning when new get item is added.
    ; added note about possible modification - Viktor, please verify it
2008-10-11 11:06:51 +00:00
Przemyslaw Czerpak
4176d85bb7 2008-10-11 11:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/common/expropt2.c
    * formatting and minor cleanup

  * harbour/source/rtl/gtapi.c
    % do not set and restore default color set in hb_gtPutText() and
      hb_gtDrawBox() but decode colors from passed string
2008-10-11 09:21:52 +00:00
Viktor Szakats
cdb27e08d2 2008-10-11 11:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
    + New functions added.

  * source/rtl/alert.prg
    % Minor optimization.
    ; NOTE: Found yet another hidden extension in Alert() code :(

  * source/rtl/radiobtn.prg
    ! Fix and optimization in recent modification.
2008-10-11 09:07:17 +00:00
Przemyslaw Czerpak
618df79c9b 2008-10-11 04:56 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapigt.h
  * harbour/source/rtl/gtapi.c
    + added C functions hb_gtLock() and hb_gtUnlock()
      They block current GT for other threads

  * harbour/source/rtl/gtfunc.c
    + added PRG functions hb_gtLock() and hb_gtUnlock()
      They block current GT for other threads - be careful using them
      and always unlock locked GT

  * harbour/source/rtl/scroll.c
    + added HB_SCROLL() function - it works like SCROLL() but supports
      2 additional parameters: color and erase char. It's stateless and
      atomic in GT access

  * harbour/source/rtl/tbrowse.prg
    * use HB_SCROLL() instead of SCROLL(). Now whole TBROWSE class
      does not depend on other thread screen output and does not
      set any GT variables except of cursor positioning to active
      cell when it's enabled

  * harbour/source/rtl/memoedit.prg
  * harbour/source/rtl/tgetlist.prg
  * harbour/source/rtl/tlabel.prg
  * harbour/source/rtl/listbox.prg
  * harbour/source/rtl/tmenusys.prg
  * harbour/source/rtl/achoice.prg
  * harbour/source/rtl/profiler.prg
  * harbour/source/rtl/teditor.prg
    * use atomic stateless functions when possible - this code should
      be checked and updated by some who know it.
2008-10-11 02:56:22 +00:00
Przemyslaw Czerpak
9113680b5a 2008-10-11 03:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/scrollbr.prg
  * harbour/source/rtl/getsys.prg
  * harbour/source/rtl/tpopup.prg
  * harbour/source/rtl/tgetlist.prg
  * harbour/source/rtl/radiogrp.prg
  * harbour/source/rtl/listbox.prg
  * harbour/source/rtl/checkbox.prg
  * harbour/source/rtl/browse.prg
  * harbour/source/rtl/tget.prg
  * harbour/source/rtl/ttopbar.prg
  * harbour/source/rtl/pushbtn.prg
  * harbour/source/rtl/tmenusys.prg
  * harbour/source/rtl/achoice.prg
  * harbour/source/rtl/teditor.prg
  * harbour/source/rtl/radiobtn.prg
  * harbour/source/rtl/tbrowse.prg
    * replaced DispOut() with hb_dispOut()
    * replaced DispBox() with hb_dispBox()
    % removed saving and restoring of cursor position in places where
      it's not longer necessary due to hb_dispOut()/hb_dispBox() usage
    % removed saving and restoring of SetColor() value in places where
      it's not longer necessary due to hb_dispOut()/hb_dispBox() usage
    % removed saving and restoring of MSetCursor(). If it's necessary
      low GT driver should hide and redraw mouse cursor before and after
      screen update. We do not have to make it manually

   The above modification gives faster code and allow to access screen
   from different threads simultaneously because functions like
   hb_dispOut() and hb_dispBox() are stateless and atomic in screen
   access. Not all .prg code has been updated yet. If someone is
   familiar with this code then please help. I'll add yet HB_SCROLL()
   function which will support additionally colors.
   Viktor if possible please verify this modifications.
2008-10-11 01:24:26 +00:00
Przemyslaw Czerpak
aeb6b8686e 2008-10-11 03:06 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapigt.h
  * harbour/source/rtl/gtapi.c
    + added hb_gtDrawBox() works like hb_gtBox() but does not change cursor
      posiion and support colors
    + added support for color parameter to hb_gtPutText()

  * harbour/source/rtl/console.c
    * use new hb_gtPutText() format in HB_DISPOUTAT()
      Now all screen operations inside this function is one atomic
      operation for other threads

  * harbour/source/rtl/box.c
    + added HB_DISPBOX() function - works like DISPBOX() bit does not
      change cursor position and is atomic for other threads


  * harbour/include/hbapigt.h
  * harbour/include/hbgtcore.h
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtclip.c
  * harbour/source/rtl/gtdos/gtdos.c
  * harbour/source/rtl/gtwin/gtwin.c
  * harbour/source/rtl/gtxwc/gtxwc.c
  * harbour/source/rtl/gtcrs/gtcrs.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gttrm/gttrm.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtcgi/gtcgi.c
  * harbour/source/rtl/gtwvt/gtwvt.c
  * harbour/contrib/gtalleg/gtalleg.c
  * harbour/contrib/gtalleg/ssf.h
  * harbour/contrib/gtalleg/ssf.c
  * harbour/contrib/gtwvg/gtwvg.c
    * cleanup char * casting

  * harbour/source/rtl/filesys.c
    ! do not use pread()/pwrite() in OpenWatcom Linux builds
2008-10-11 01:06:39 +00:00
Przemyslaw Czerpak
5964eac44c 2008-10-10 22:46 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    * reduced the mutex lock time in thread exit state

  * harbour/source/vm/thread.c
    ; added note about possible behavior of hb_threadSelf() function
      in one very specific situation. It's documented and expected
      behavior

  * harbour/source/rtl/hbgtcore.c
    + added support for retrieving current HB_GTI_NOTIFIERBLOCK code block
    + added support for removing HB_GTI_NOTIFIERBLOCK code block without
      setting the new one
2008-10-10 20:46:50 +00:00
Przemyslaw Czerpak
f51b6c2f24 2008-10-10 21:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/garbage.c
    * unblock HVM before executing destructors and releasing blocks

  * harbour/source/vm/fm.c
    ! do not call internal error with active lock when FM statistic
      is enabled

  * harbour/source/vm/thread.c
    ! stop other threads in hb_threadOnce() if the 1-st one
      executes bAction block to be sure that it will be completed
      before thread leave hb_threadOnce() function

  * harbour/source/vm/set.c
    ! do not call hb_inkeyReset() in set release. It's not necessary
      and it could change keyboard buffer size for other threads using
      the same GT driver.

  * harbour/source/vm/hvm.c
    % allocate new thread stack without lock

  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtapi.c
    * moved clipboard resetting from hbgtcore.c to gtapi.c

  * harbour/source/rtl/filesys.c
    ! do not use read/write operations with given file offset in Win9X
      which seems to not support such functionality
2008-10-10 19:23:11 +00:00
Przemyslaw Czerpak
d4b61aece8 2008-10-10 06:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/source/vm/hvm.c
    + added hb_vmProcessDynLibSymbols() which works like
      hb_vmProcessSymbolsEx() but always mark registered modules as
      dynamic

  * harbour/source/vm/maindllp.c
    * redirect hb_vmProcessSymbolsEx() to hb_vmProcessDynLibSymbols()

  * harbour/source/vm/thread.c
    * disabled some low level locking code in non MT HVM mode
2008-10-10 04:26:42 +00:00
Przemyslaw Czerpak
6829fa76a5 2008-10-10 01:43 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtcore.h
  * harbour/source/rtl/hbgtcore.c
  * harbour/source/rtl/gtapi.c
    + added new GT methods: LOCK() and UNLOCK()
    * serialize GT access in MT mode - please remember that it's only
      low level serialization to protect access to low GT resources.
      It has nothing to application level screen output from different
      threads which has to be serialized by programmer if necessary.

  * harbour/source/rtl/tthreadx.prg
    * use HB_THREAD_INHERIT_PUBLIC as thread attribute for thread
      started by oThread:start() to emulate xbase++ PUBLIC variables
      behavior
2008-10-09 23:43:41 +00:00
Przemyslaw Czerpak
15054c311b 2008-10-10 00:14 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapigt.h
  * harbour/source/rtl/gtapi.c
    + added hb_gtPutText() C function

  * harbour/source/rtl/console.c
    + added HB_DISPOUTAT() which works like DISPOUTAT but does not change
      cursor position. xBase++ users can use
         #xtranslate DispOutAt( <x,...> ) => hb_dispOutAt( <x> )
      for xBase++ compatible code
2008-10-09 22:15:01 +00:00
Przemyslaw Czerpak
af1e261b5b 2008-10-09 20:51 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/common.mak
  * harbour/source/rtl/Makefile
    + added thfuncx.prg

  * harbour/source/rtl/thfuncx.prg
    + added ThreadObject() function

  * harbour/source/rtl/tthreadx.prg
    + added xBase++ compatible TThread class.
      Special thanks to Pritpal Bedi for class skeleton with info about
      xbase++.
      Now only basic functionality is supported though it was enough to
      compile and execute examples Pritpal sent. I'm leaving rest for
      xBase++ users.
      BTW The examples suggest that in xbase++ DispOutAt() does not change
      cursor position. It's not Clipper compatible so I cannot make it
      in Harbour though I can add new function which will work in such way.
2008-10-09 18:51:31 +00:00
Przemyslaw Czerpak
42d6d50796 2008-10-09 17:03 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
+ harbour/source/rtl/thfuncx.prg
    * added xbase++ compatible functions:
         ThreadID() -> <nThId>
         ThreadWait( <aThreads>, <nTimeOut> ) -> <oThread> | <pThId> | NIL
         ThreadWaitAll( <aThreads>, <nTimeOut> ) -> <lAllFinished>
      In Harbour <aThreads> can be array of thread pointers or thread
      objects. xbase++ compatible thread class I'll add later.
2008-10-09 15:03:06 +00:00
Przemyslaw Czerpak
cb836d8481 2008-10-09 14:11 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    * changed the place where exception handles are set/remove.
      Now it's set at the beginning of hb_vmInit() and removed
      at the end of hb_vmQuit()

  * harbour/source/rdd/dbcmd.c
  * harbour/source/rdd/dbf1.c
    ! added workaround for problem with EVAL block used in PACK
      command

  * harbour/source/compiler/hbmain.c
    * minor simplification
2008-10-09 12:11:49 +00:00
Viktor Szakats
c3c9bc4e89 2008-10-09 09:57 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
    + Added missing HB_DISABLEWAITLOCKS().
    ; NOTE: This looks like a hack to add FLX_WAIT flag 
            for locks app-wide, and on Windows systems only.
            IMO we should not have such hacks in core, or if 
            this is really important it should support all 
            possible platforms.
            It also has a low-level function equivalent, 
            which is missing from hbapifs.h. There is no 
            reference to these function in any Harbour or 
            xhb changelogs.
            If there are no objections, I'd like remove 
            this functionality.

  * source/rtl/hbrandom.c
  * source/rtl/filesys.c
    * Minor formatting.
2008-10-09 08:06:47 +00:00
Przemyslaw Czerpak
953208bbe1 2008-10-09 03:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbcompdf.h
  * harbour/source/compiler/hbmain.c
    % do not add dummy entries to symbol table for functions declared
      as dynamic - it allows to include hbdynamic.ch with list of all
      supported functions by application and/or harbour.dll to any .prg
      file which will be used to create shared library (.dll, .so, ...)
      without any memory overhead.

  * harbour/source/compiler/genc.c
    % do not generate unnecessary HB_FUNC_EXTERN() declarations for
      function declared as DYNAMIC
2008-10-09 01:27:03 +00:00
Przemyslaw Czerpak
a9ed741e26 2008-10-09 00:17 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbtypes.h
  * harbour/source/vm/maindllp.c
    ! updated casting for current SVN code
      [TOMERGE 1.0]

  * harbour/include/hbthread.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/thread.c
    + added .prg function
         hb_threadWait( <pThID> | <apThID>, [ <nTimeOut> ] [, <lAll> ] )
               => <nThInd> | <nThCount> | 0
      This function wait for <nTimeOut> seconds (default infinite wait)
      until one or all (controlled by <lAll> parameter) of given HVM threads
      will have finished execution in HVM area. It does not join the threads.
      It returns index to 1-st thread which has finished execution (default)
      or number of threads which has finished in given time period when lAll
      is .T.
2008-10-08 22:18:09 +00:00
Viktor Szakats
119d2d17eb 2008-10-08 20:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/examples/hscript/hscript.prg
  * source/compiler/gencobj.c
  * source/compiler/genobj32.c
    * Formatting, minor cleanups.
2008-10-08 18:48:25 +00:00
Viktor Szakats
8376e26915 2008-10-08 14:36 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* bin/bld.bat
  * bin/bld_os2.cmd
    + Added support for HB_INSTALL_PREFIX.
    + Added experimental support for 'set HB_MT=MT' flag, 
      to create an MT executable.

  * source/rtl/seconds.c
    * Formatting.
2008-10-08 12:37:07 +00:00
Maurilio Longo
55806b582b 2008-10-08 12:28 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/rtl/seconds.c
    ! removed a couple of warnings.
2008-10-08 10:29:51 +00:00
Viktor Szakats
97c98da955 2008-10-08 02:15 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/cmdarg.c
    * HB_ARGV() will now return the executable name if called 
      without a parameter.
    ! HB_ARGSTRING() fixed to return "" in some error 
      cases instead of NIL.
2008-10-08 00:16:17 +00:00
Viktor Szakats
e4e144bb83 2008-10-08 01:31 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/compiler/gencc.c
    * Trick to avoid MSVC -W4 warnings in -gc3 compiled C code, 
      when compiled string literal contained certain high (> 127) 
      chars followed by a digit. Thanks Przemek.
      NOTE: I've checked and hexadecimal format has even more 
            such problems.
2008-10-07 23:34: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
Maurilio Longo
b22a5b9d5c 2008-10-07 19:33 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/rtl/seconds.c
    ! fixed little typo after latest commit.
2008-10-07 17:35:02 +00:00
Viktor Szakats
d98434208b 2008-10-07 18:42 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/seconds.c
    * Some cleanup after latest change.
      Functionality shouldn't change. OS/2 users pls verify.
2008-10-07 16:44:37 +00:00
Przemyslaw Czerpak
a867f6a312 2008-10-07 18:36 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/estack.c
    ! fixed typo in last commit
2008-10-07 16:36:53 +00:00
Przemyslaw Czerpak
f6eb3cfb17 2008-10-07 18:32 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
  * harbour/source/vm/hvm.c
    % moved static USHORT uiPolls to HVM stack to not reduce the HVM
      performance in MT mode. In multi CPU environment if many threads
      try to change the same memory variable in the same time the overall
      performance is strongly reduced on most of tested hardware - probably
      some random CPU delay used to resolve the conflict.
2008-10-07 16:33:02 +00:00
Maurilio Longo
195f1446b5 2008-10-07 16:33 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/rtl/seconds.c
     + Added OS/2 section to secondsCPU(), but it does not work as expected :)
       In particular, user and system times are kept per thread, but when a thread
       dies the time it has spent in user and system-land gets lost, so the
       overall running time of the program decreases. Not only, if I call
       secondsCPU() before a thread starts and after it has ended I'll have
       no idea of the time that was spent by that thread.
2008-10-07 14:41:39 +00:00
Viktor Szakats
a7870bbdf2 2008-10-07 14:24 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbapierr.h
   * source/vm/extrap.c
   * source/rtl/errorint.c
     ! Fixed recent modification on Windows platform, where 
       GPF would generate an internal error.
       It didn't launch the OS error handler.
     ! Fixed hb_errInternal() being marked as HB_EXPORT 
       in the headers only.
2008-10-07 12:25:23 +00:00
Viktor Szakats
f75bc7b051 2008-10-07 09:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
  * source/rtl/inkey.c
    + Added HB_KEYCLEAR() a documented function equivalent 
      to "CLEAR TYPEAHEAD" command, or undocumented __KEYBOARD() function.

  * contrib/rddads/rddads.h
  * contrib/rddads/ads1.c
    + Added support for ADS_USE_OEM_TRANSLATION for old ads versions.
      Borrowed from xhb/Pavel Tsarenko.
2008-10-07 07:35:38 +00:00
Przemyslaw Czerpak
e1ea6f3cec 2008-10-07 02:57 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
  + harbour/include/hbatomic.h
  * harbour/include/hbthread.h
  * harbour/source/vm/garbage.c
  * harbour/source/vm/fm.c
    * moved atomic and spinlock functions into hbatomic.h

  * harbour/include/hbatomic.h
    + added atomic inc/dec for GCC and x86@64 and PPC@32
    + use OSAtomic*() and OSSpin*() functions for atomic inc/dec and
      spinlocks in Darwin builds 
    + added spinlocks to MS-Win builds
2008-10-07 00:57:54 +00:00
Viktor Szakats
5b75b78079 2008-10-06 22:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/tobject.prg
    ! Formatting to some old code.
2008-10-06 20:33:38 +00:00
Przemyslaw Czerpak
1ec50a7d81 2008-10-06 21:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    ! fixed last commit typo in thread number allocating - all threads
      where using 0 number

  * harbour/source/vm/thread.c
    ! fixed return value in recursive call to hb_mutexLock() - was FALSE
    ! fixed typo in timeout parameter number
      should be 2 instead of 1

  * harbour/source/rtl/tobject.prg
    ! fixed init() return value - it should be ignored and current
      object should be returned

  * harbour/source/rtl/tthreadx.prg
    ! probably fixed timeout parameter use in signal:wait() method
      I guess that like other xbase++ functions it's in 1/100th of
      a second

  * harbour/include/hboo.ch
  * harbour/include/hbclass.ch
  * harbour/source/vm/classes.c
  * harbour/source/rtl/tclass.prg
    + added support for SYNC object and CLASS messages working like
      in xBase++. Please remember that all locked by thread SYNC messages
      objects and classes are unblocked automatically for the time which
      thread spends in hb_subscribe[Now]() or signal:wait()
2008-10-06 19:50:53 +00:00
Viktor Szakats
9e70689436 2008-10-06 21:27 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbapifs.h
   * include/hbextern.ch
   * source/common/hbfsapi.c
   * source/rtl/hbfile.c
     + Added hb_fsNameExists() C level function.
     + Added hb_FNameExists() Harbour level function.
     ; Both will return true if any kind of directory entry 
       exists with the given name (IOW it doesn't matter 
       if it's a file or directory, or else).
2008-10-06 19:30:27 +00:00
Przemyslaw Czerpak
67cc2f7ebe 2008-10-06 15:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbthread.h
  * harbour/source/vm/thread.c
  * harbour/source/vm/hvm.c
    + add numeric HVM thread identifiers to thread structure. Now
      HB_THREADID() returns numbers in all OSes

  * harbour/include/hbexprop.h
  * harbour/include/hbexprb.c
  * harbour/source/common/expropt2.c
    + added compile time optimization for MIN() and MAX() functions

  * harbour/source/rtl/minmax.c
    * removed trailing spaces from source code
2008-10-06 13:30:47 +00:00
Przemyslaw Czerpak
12ac680ed3 2008-10-06 12:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbclass.ch
  * harbour/include/hboo.ch
    + added SYNC attribute to accepted syntax in class declaration
      it allows to compile code which uses this attribute but low
      level implementation is not ready yet - work in progress

  * harbour/source/vm/garbage.c
    ! added #define INCL_DOSPROCESS for OS2 builds. For some reasons
      #define INCL_DOSDATETIME I've found in DosSleep() documentation
      is note enough
2008-10-06 10:38:22 +00:00
Przemyslaw Czerpak
3dc7a9f679 2008-10-06 11:17 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/thread.c
    ! fixed typo in recent modification
2008-10-06 09:17:27 +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
Viktor Szakats
809fd031dc 2008-10-06 01:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/debug/debugger.prg
  * source/rtl/typefile.prg
  * source/rtl/tgetlist.prg
  * source/rtl/treport.prg
  * source/rtl/teditor.prg
    * Using [Q]QOut() functions instead of "[?]?" commands.
    * Using hb_Run() function instead of RUN command.

  * source/rtl/typefile.prg
    % Upped read buffer.
    * Formatting.
    % Got rid of a few unnecessary initialization.
2008-10-05 23:09:31 +00:00
Viktor Szakats
4f330c58bc 2008-10-05 20:10 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* common.mak
   * source/rtl/Makefile
   - source/rtl/persist.prg
   + source/rtl/tpersist.prg
   - source/rtl/symbol.prg
   + source/rtl/tsymbol.prg
   * source/rtl/achoice.prg
   * source/rtl/browse.prg
   * source/rtl/dbedit.prg
   * source/rtl/dircmd.prg
   * source/rtl/einstv52.prg
   * source/rtl/einstvar.prg
   * source/rtl/hbini.prg
   * source/rtl/tbrowse.prg
   * source/rtl/tclass.prg
   * source/rtl/tget.prg
   * source/rtl/tgetint.prg
   * source/rtl/tlabel.prg
   * source/rtl/tobject.prg
   * source/rtl/treport.prg
   * source/rtl/typefile.prg
   * source/rtl/valtoexp.prg
   * source/rdd/usrrdd/example/exhsx.prg
   * source/rdd/usrrdd/example/exfcm.prg
   * source/rdd/usrrdd/rdds/hscdx.prg
     * Some formattings and cleanup.

   * source/rtl/tclass.prg
     % ValType() optimizations.

   * source/rtl/tlabel.prg
   * source/rtl/treport.prg
     * Trim() -> RTrim()

   * source/rtl/treport.prg
     ! Hard-coded Chr(13)+Chr(10) fixed in treport.prg.
2008-10-05 18:13:15 +00:00
Viktor Szakats
e2768457a0 2008-10-05 18:46 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbwin/win_ole.c
  * source/rtl/wait.prg
  * source/rtl/tthreadx.prg
    * Minor formatting.
2008-10-05 16:47:14 +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
Viktor Szakats
ed672c29c9 2008-10-05 15:56 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbpers.ch
  * source/rtl/perfuncs.prg
  * source/rtl/objfunc.prg
  * source/rtl/tlabel.prg
  * source/rtl/setta.prg
  * source/rtl/dirscan.prg
  * source/rtl/tthreadx.prg
  * source/rtl/setfunc.prg
  * source/rtl/readvar.prg
  * source/rtl/tclass.prg
  * source/rtl/ttextlin.prg
  * source/rtl/profiler.prg
  * source/rtl/treport.prg
  * source/rtl/tgetint.prg
  * source/rtl/persist.prg
  * source/rtl/altd.prg
  * source/rtl/devoutp.prg
  * source/rdd/usrrdd/example/exmemo.prg
  * source/rdd/usrrdd/example/exhsx.prg
  * source/rdd/usrrdd/example/exfcm.prg
  * source/rdd/usrrdd/example/exrlx.prg
  * source/rdd/usrrdd/rdds/dbtcdx.prg
  * source/rdd/usrrdd/rdds/fptcdx.prg
  * source/rdd/usrrdd/rdds/arrayrdd.prg
  * source/rdd/usrrdd/rdds/hscdx.prg
  * source/rdd/usrrdd/rdds/rlcdx.prg
  * source/rdd/usrrdd/rdds/fcomma.prg
  * source/rdd/usrrdd/rdds/smtcdx.prg
    * Formatting. Basically finished.

  * include/hbextern.ch
    ! Added two missing functions.
2008-10-05 13:57:35 +00:00
Przemyslaw Czerpak
38684fe9c1 2008-10-05 15:53 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/thread.c
    ! fixed hb_mutexSubscribe*() in ST mode
2008-10-05 13:53:36 +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
23eae1e22c 2008-10-03 20:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/garbage.c
    * Use spinlock instead of mutex in OS2 builds - performance test.
2008-10-03 18:20:50 +00:00
Przemyslaw Czerpak
4062ccfff3 2008-10-03 13:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/estack.c
    * pacified OS2 warning
2008-10-03 11:51:12 +00:00
Viktor Szakats
41a0c0c1c1 2008-10-03 09:37 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/extrap.c
    + Now using standard internal error call for Windows too.
    + Implemented //BATCH for OS/2. (please test)

  * source/rtl/errorint.c
    * Upped internal buffer.
2008-10-03 07:38:19 +00:00
Viktor Szakats
b7a7705eee 2008-10-03 09:04 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbole/oleauto.prg
  * contrib/hbole/ole2.c
  * contrib/hbwin/win_tole.prg
  * contrib/hbwin/win_ole.c
    * OLESHOWEXCEPTION() implemented on the .prg level, using 
      Alert() rather than MessageBox().
    ! All MessageBox()es converted to Alert()s.
    + Added OLEEXCEPTIONSOURCE(), OLEEXCEPTIONDESCRIPTION() 
      to hbole.

  * source/vm/maindllp.c
    ! Changed MessageBox() call to internal error.

  * contrib/gtwvg/gtwvg.c
  * source/rtl/gtwvt/gtwvt.c
    ! Changed MessageBox() calls to internal error.

  * contrib/gtwvg/gtwvg.c
    * Internal error calls synced with GTWVT.

  * source/rtl/hbgtcore.c
    - Removed "Internal error" text from two internal error descriptions.

  * make_vc.mak
    - Removed reference to MessageBox() from comment.

  ; NOTE: No more MessageBox() calls in Harbour.
          (except some wrappers for user .prg code)
2008-10-03 07:06:16 +00:00