Commit Graph

1282 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
Viktor Szakats
011d73157d 2008-10-02 23:16 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbsetup.ch
    ! Removed some company names from comments.

  * source/vm/extrap.c
    + Added //BATCH internal switch to indicate exception handler 
      to suppress the Windows exception dialog when an exception 
      occurs. Useful for programs running without user interaction.
      NOTE: This may not be the ultimate method. If we can gather 
            more such situations where such "batch" mode might 
            be useful, we may as well implement it as a Set().
    - Removed Harbour specific exception MessageBox(). Besides 
      having gotten rid of a MessageBox() call in core VM, Harbour now 
      got back the standard Windows error handling dialog, which is 
      more standard and easy to get by than the previous default 
      method, where several clicks were needed to pass through 
      the (sometimes hidden) popups. The details of all GPFs are 
      still logged into hb_out.log.
    + Removed size limit for the logged exception call stack.
2008-10-02 21:49:11 +00:00
Przemyslaw Czerpak
c16b13e573 2008-10-02 21:12 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/sdf1.c
    ! fixed stupid typo (missing !) in last modification which broke
      SDF RDD read mode. Thanks to Marco for information and example.

  * harbour/include/hbstack.h
  * harbour/source/vm/estack.c
    * small cleanup in used macros
2008-10-02 19:12:30 +00:00
Viktor Szakats
738b3391e8 2008-10-02 20:25 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbct/Makefile
  * contrib/hbct/common.mak
  * contrib/hbct/ctmisc.prg
  + contrib/hbct/ctdummy.prg
    * Recently added dummy CT functions moved to a separate file.

  * source/vm/thread.c
    ! Fixed warning in HB_THREADID().
2008-10-02 18:30:09 +00:00
Maurilio Longo
f25e456ddb 2008-10-02 15:54 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/vm/thread.c
    * hb_ThreadID() returns 0 when built in ST mode.
2008-10-02 13:53:54 +00:00
Maurilio Longo
c2f6b15424 2008-10-02 15:50 UTC+0200 Maurilio Longo (maurilio.longo@libero.it)
* harbour/source/vm/thread.c
    + added hb_ThreadID() function which returns thread ID of current thread.
2008-10-02 13:47:59 +00:00
Viktor Szakats
3271afe446 2008-10-02 15:19 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/extrap.c
    + Upped internal buffer to store the exception dump 
      and stack trace.
2008-10-02 13:20:00 +00:00
Viktor Szakats
693f75900d 2008-10-02 11:49 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/extrap.c
    * Added "error" text in exception message.
2008-10-02 09:50:05 +00:00
Przemyslaw Czerpak
0ef0ce6b1c 2008-09-29 22:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
    ! restored some item type settings I wrongly removed few days ago
2008-09-29 20:56:23 +00:00
Przemyslaw Czerpak
f06af57f7e 2008-09-29 17:41 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbset.h
  * harbour/source/vm/set.c
    + divided __SETCENTURY() PRG function into two functions:
      __SETCENTURY() and public C function hb_setSetCentury()
      to manipulate century setting from C code.
      Modyfication by Francesco Saverio Giudice
2008-09-29 15:42:21 +00:00
Przemyslaw Czerpak
cce3e73961 2008-09-29 11:18 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
  * harbour/include/hbthread.h
  * harbour/source/vm/hvm.c
  * harbour/source/vm/thread.c
    + added hb_vmThreadRegister() funtion which allows to register new
      thread in HVM without HVM stack allocation
    + added hb_vmThreadRelease() which removes registered thread which
      does not have allocated HVM stack yet
    + added hb_threadStateNew() which returns new thread control state
      which can be used as parameter to hb_vmThreadInit(),
      hb_vmThreadRegister(), hb_vmThreadRelease()
    * register thread control state also for main thread
      Now hb_threadSelf() returns thread pointer also for main thread
    ! fixed possible race condition in hb_threadWaitForAll() and
      hb_threadTerminateAll() by using hb_vmThreadRegister() before
      starting thread.

  * harbour/source/rtl/idle.c
    * interrupt hb_idleSleep() on QUIT or BREAK requests

  * harbour/tests/mt/mttest09.prg
    * small cleanup
2008-09-29 09:19:46 +00:00
Przemyslaw Czerpak
88d4f41e4f 2008-09-26 21:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/thread.c
    * release thread return value when is retrieve

  * harbour/common.mak
  * harbour/source/rtl/Makefile
  + harbour/source/rtl/tthreadx.prg
    + added xBase++ compatible signal class

  * harbour/source/rdd/wacore.c
    ! added missing alias setting after attaching work area

  + harbour/tests/mt/mttest09.prg
    + added test code for using the same work area in different threads
2008-09-26 19:28:54 +00:00
Przemyslaw Czerpak
893c372e0b 2008-09-26 19:34 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
    + added assembler inline macros for TLS access in BCC and MinGW32
      They are enabled when Harbour is compiled with -DHB_NO_TLS.
      Please check the speed difference. If it will be noticeable
      then we keep them probably as default. Otherwise they will be
      removed.
2008-09-26 17:35:37 +00:00
Przemyslaw Czerpak
acd86c6f02 2008-09-26 02:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/thread.c
    ! fixed thread cleanup code when startthread() fails, f.e.
      OS refuse to create new thread.
2008-09-26 00:42:41 +00:00
Przemyslaw Czerpak
e58b37da88 2008-09-24 20:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/estack.c
    ! fixed stack preloading - it should be after checking if stack
      exist :)
2008-09-24 18:31:00 +00:00
Viktor Szakats
cb7b1a831c 2008-09-24 16:18 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/fm.c
    + Enabled dlmalloc (HB_FM_DL_ALLOC) for MSVC, BCC and MINGW builds.
    ; It's possible to disable dlmalloc with HB_FM_STD_ALLOC 
      for testing purposes.
2008-09-24 14:19:05 +00:00
Przemyslaw Czerpak
b0a49b7ba1 2008-09-24 14:53 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/dynsym.c
  * harbour/source/vm/arrays.c
  * harbour/source/vm/memvars.c
    ! fixed three typos which broke HB_TR_DEBUG messages
2008-09-24 12:54:41 +00:00
Viktor Szakats
6b8ec38aec 2008-09-24 12:31 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/vmmt/Makefile
    ! Possible fix for mingw build error:
      make: *** mainstd: No such file or directory.  Stop.
      make[3]: *** [first] Error 2
      make[2]: *** [first] Error 2
    ; Please review.

    ; TOFIX: These DLALLOC warnings are present with MinGW 4.3.2
             In file included from ../../fm.c:127:
             ../../dlmalloc.c:1144: warning: ignoring #pragma warning 
             In file included from ../../fm.c:127:
             ../../dlmalloc.c: In function 'sys_alloc':
             ../../dlmalloc.c:3396: warning: statement with no effect
2008-09-24 10:31:40 +00:00
Viktor Szakats
15b49556a2 2008-09-24 00:18 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* tests/memtst.prg
    + Added #include "simpleio.ch" to allow output redirection.

  * bin/bld.bat
  * bin/bld_os2.cmd
    * Removed any HB_GT_LIB "selection" logic. Selection is to 
      be done from source code, from now on all supported core GTs 
      are included in the lib list.
    * Few other minor cleanups.

  * source/vm/cmdarg.c
    * Commented code turned into HB_C52_STRICT branch.

  * source/vm/vmmt/Makefile
    ! Fixed cemgw -> mingwce

  * config/dos/global.cf
  * config/os2/global.cf
  * config/w32/global.cf
    % Removed unnecessary logic to select default GT. This is 
      done in Harbour source code now.

  ; TOFIX: After MT changes, mingw32 build gives this new error:
           make: *** mainstd: No such file or directory.  Stop.
           make[3]: *** [first] Error 2
           make[2]: *** [first] Error 2
2008-09-23 22:24:26 +00:00
Viktor Szakats
09b0509b08 2008-09-23 20:41 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/extrap.c
    ! Fixed to close .log file before showing MessageBox().
      [TOMERGE 1.0]

    + Don't attempt to write into .log file if the _SET_HBOUTLOG 
      filename is empty.

    ; TOFIX: Remove all remaining MessageBox() calls from 
             Harbour sources.
2008-09-23 18:42:29 +00:00
Viktor Szakats
2db644f214 2008-09-23 18:56 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/rddads/adsmgmnt.c
    ! Blind fix to ADSMGGETWORKERTHREADACTIVITY() where the 
      first element in list wasn't returned.
      Please test, I couldn't.

  * source/vm/fm.c
    ! Stupid typo. (I guess I'm completely confused by separated 
      "#" and preprocessor command :/ Second typo in two lines.)
2008-09-23 16:57:24 +00:00
Przemyslaw Czerpak
c8d341cefb 2008-09-23 15:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/codebloc.c
    * updated old and not longer valid comment

  * harbour/source/vm/memvars.c
    * minor code formatting

  * harbour/source/common/expropt2.c
    ! fixed bug in power math expression optimization caused
      by two lines left in the code by mistake. Many thanks to
      Maurilio for locating the problem.

  * harbour/include/hbstack.h
  * harbour/source/vm/estack.c
  * harbour/source/vm/hvm.c
    % added support for buffering hb_stack TLS access be preloading
      the stack pointer into C stack function local variables.
      Please make speed tests for MT mode with different C compilers
      and different platforms.
2008-09-23 13:39:35 +00:00
Viktor Szakats
454b3b49e0 2008-09-23 14:38 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbole/ole2.c
  * contrib/hbgf/hbgfwin/winapi.c
  * contrib/hbgf/hbgfos2/os2pm.c
  * contrib/hbwin/win_ole.c
  * contrib/hbwhat/wincorec.c
  * source/rtl/do.c
  * source/rdd/workarea.c
    % hb_vmPushSymbol( hb_dynsymSymbol( p ) ) -> hb_vmPushDynSym( p )

  * contrib/hbwhat/wincorec.c
    ! WHT__GETDLGPROC() fixed.
    ! hb_vmPushSymbol( hb_itemGetSymbol( p ) ) -> hb_vmPushDynSym( p )

  * contrib/hbgf/hbgfwin/winapi.c
  * contrib/hbwhat/wincorec.c
  * contrib/hbwhat/whtmsg.c
  * contrib/hbwhat/whtbmp.c
  * contrib/hbwhat/whtcomm.c
  * contrib/hbwhat/whthead.c
  * contrib/hbwhat/whthead.c
  * contrib/hbwhat/whtkbrd.c
  * contrib/hbwhat/whtlv.c
  * contrib/hbwhat/whttext.c
  * contrib/hbwhat/whtwnd.c
  * contrib/hbwhat/whtdlg.c
  * contrib/hbwhat/whttab.c
    ! Fixed few LPARAM/WPARAM passings to be 64-bit compatible.
      (hb_parnl()/hb_parni() -> hb_parnint())

  * source/vm/thread.c
  * source/rtl/do.c
  * source/rdd/usrrdd/usrrdd.c
  * contrib/hbwhat/whtlv.c
  * contrib/hbwhat/whtfont.c
    % hb_vmPushSymbol( hb_itemGetSymbol( p ) ) -> hb_vmPush()
    ; QUESTION/TOFIX: In whtlv.c and whtfont.c this may be wrong, 
                      and hb_vmPushDynSym() could be needed instead.
                      Can someone take a look pls?
2008-09-23 12:48:23 +00:00
Viktor Szakats
ebaa3ee424 2008-09-23 11:27 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/vm/fm.c
    ! Enabled USE_DL_PREFIX for _MSC_VER compilers.
      This may be refined, but without this setting MSVS 2008 
      would give an error on exit and GPF.
2008-09-23 09:28:39 +00:00
Przemyslaw Czerpak
afd254adc2 2008-09-22 22:08 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/thread.c
    ! fixed GPF when hb_threadSelf() was executed from thread without
      allocated ID object (f.e. main thread)
2008-09-22 20:09:27 +00:00
Przemyslaw Czerpak
afb1c7cd2d 2008-09-22 20:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
  * harbour/source/rdd/workarea.c
    * pacified BCC warnings

  * harbour/source/debug/dbgwa.prg
  * harbour/source/debug/debugger.prg
  * harbour/source/debug/dbghelp.prg
    * eliminated two static variables
2008-09-22 18:41:29 +00:00
Przemyslaw Czerpak
f05cbbaaaf 2008-09-22 19:32 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
   ! corrected previous ChangeLog entry: instead of hb_waDetach()/
     hb_waRequest() should be db_dbDetach()/hb_dbRequest()

  * harbour/source/vm/hvm.c
   * disabled PRG tracing in default builds. If someone wants to
     use this feature then he should recompile Harbour with HB_PRG_TRACE
     macro. In such case tracing can be enabled/disabled by __TRACEPRGCALLS()
     function. HB_NO_TRACE macro is not longer usable - it's default in
     current code.

  * harbour/source/vm/classes.c
    + added PRG function __clsPreallocate() which extends the size of
      classes buffer to given value to avoid later RT reallocations.
      It may be useful in some very seldom cases for MT programs which
      will allocate dynamically at runtime more then 16386 classes.
      In practice rather impossible though who knows ;-)

  * harbour/source/rdd/workarea.c
    * set default preallocation size for RDD nodes to 128
    + added PRG function __rddPreallocate() which extends the size of
      RDD nodes buffer to given value to avoid later RT reallocations.
      It may be useful in some very seldom cases for MT programs which
      will register dynamically at runtime more then 128 RDDs when other
      threads are active and may use RDD nodes.

  * harbour/include/hbrddcdx.h
  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    + added ORDLSTDELETE() method.
      Now ordbagClear() should work for DBFCDX.
2008-09-22 17:32:36 +00:00
Przemyslaw Czerpak
d9e592e202 2008-09-22 16:14 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
  * harbour/source/vm/estack.c
    + added support for using stack macros without native compiler TLS
      support in MT mode.
    * enabled stack macros by default for OS2 MT builds
      David, if possible please try speedtst.prg with current MT HVM
2008-09-22 14:15:18 +00:00