| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
"sebres-8-6-clock-speedup-cr1" branch, but that will be merged again as soon as the work is done.
All other changes in "trunk" since then (e.g. the INST_STR_CONCAT1 performance improvement, and the removal of SunOS-4) are retained.
|
|\ \
| | |
| | |
| | | |
performance-tests are kept)
|
| | |
| | |
| | |
| | | |
preventing a (char *) type case. No functional changes.
|
| |\ \
| | |/
| |/| |
|
| |\ \ |
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | | |
TclpGetDate/TclpLocaltime/TclpGmtime can be removed: They are internal and not used for anything any more.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
denominator scale to/from microseconds, and therefore more precise "timerate" results under windows (using similar mechanisms as by Mac OSX).
Especially multi-threaded, because it works without lock opposite to microseconds (that use crictical section, because of the calibration thread).
The reason for usage of wide clicks instead microseconds explains following example (shows 20% performance deference):
% timerate -calibrate {}
% timerate {clock microseconds} 5000
0.297037 µs/# 14465901 # 3366585 #/sec 4296.906 nett-ms
% timerate {clock clicks} 5000
0.247797 µs/# 16869084 # 4035554 #/sec 4180.116 nett-ms
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
high resolution clicks are not microseconds based;
[win] use high resolution timer for the wide clicks and microseconds directly, prevent several forwards/backwards conversions;
[win, unix, mac-osx] normalize some functions for common usage in different time units (clicks, micro- and nanoseconds)
|
|\ \ \
| | |/
| |/| |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
core-8-5-branch (who said fossil doesn't have 'rebase'...), and moved the definition of "struct _timeb t" to the top of the function.
This branch is ready to be merged to core-8-5-branch, it looks good to me. Thanks to sebres (Dipl. Ing. Sergey G. Brester)
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
counters actualized in calibration thread in UpdateTimeEachSecond;
This entails that sometimes sporadically time-drifts resp. jump-esque time-shifts occurred, what for example produces very confusing results during time measurement.
[unix] wrong cast fixed in TclpGetWideClicks: multiplication with 1000000 in long int may cause overflow
See ticket b87ad7e9146832d505f9a430d779c5313c440256
|
| | | |
|
| | |
| | |
| | |
| | | |
purpose, actually.
|
| |/
|/| |
|
|\ \
| |/
| |
| | |
Pietro Cerutti
|
| |\
| | |
| | |
| | | |
Pietro Cerutti
|
| | |
| | |
| | | |
- Make sure that _ftime() from msvcrt.dll is used, not ftime() from mingw (which might use 64-bit time_t)
|
| |\ \
| | |/ |
|
| | |
| | |
| | | |
On cygwin, install dll's in /usr/bin, not in /usr/lib
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
| | | |
cause more harm than good. Purged them (except in zlib files).
|
| |\ \
| | |/
| | | |
more harm than good. Purged them.
|
| | |
| | |
| | | |
more harm than good. Purged them.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclInt.h: to get the correct type signature
* unix/tclUnixPort.h: for TclpLocaltime and TclpGmtime.
* unix/tclUnixTime.c: CONST TclpTime_t is a 'time_t *CONST'
* win/tclWinTime.c: and not a 'CONST time_t*'!
* generic/tclIntDecls.h: [Bug 1677275]
* generic/tclIntPlatDecls.h: Regenerated.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* win/nmakehlp.c: MSVC8 and AMD64 target. Backport from 8.5
* win/rules.vc:
* generic/tcl.h: Fixed stat definition for MSVC8 AMD64.
* win/tclWinSock.c: Casting type police.
* win/tclWinTime.c:
|
| | |
| | |
| | |
| | |
| | |
| | | |
(VS2005). We have to handle a number of oddities as they have
deprecated most of the standard C library and now generate manifest
files to be linked into the binaries. SF bug #1424909
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
build works again.
* generic/tclInt.decls: Changes to the tests for
* generic/tclIntPlatDecls.h: clock frequency in Tcl_WinTime
* generic/tclStubInit.c: so that any clock frequency
* tests/platform.test (platform-1.3): is accepted provided that
* win/tclWin32Dll.c (TclWinCPUID): all CPU's in the system share
* win/tclWinTest.c (TestwincpuidCmd): a common chip, and hence,
* win/tclWinTime.c (Tcl_GetTime): presumably, a common clock. This
change necessitated a small burst of assembly code to read CPU ID
information, which was added as TclWinCPUID in the internal Stubs. To
test this code in the common case of a single-processor machine, a
'testwincpuid' command was added to tclWinTest.c, and a test case in
platform.test. Thanks to Jeff Godfrey and Richard Suchenwirth for
reporting this bug. [Bug #976722]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclIntPlatDecls.h: places where it appeared before the
* unix/tclUnixPort.h changes of 14 May, because use of
* unix/tclUnixTime.h native time_t in its place requires
* win/tclWinTime.h: the 8.5 header reforms. [Bug #955146]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime
* generic/tclIntDecls.h: from Unix-specific stubs to the generic
* generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs'
* generic/tclStubInit.c:
* unix/tclUnixPort.h:
* generic/tclClock.c: Changed a buggy 'GMT' timezone specification
to the correct 'GMT0'. [Bug #922848]
* unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to
unix/tclUnixTime.c where they belong.
* unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone,
ThreadSafeGMTime [removed],
ThreadSafeLocalTime [removed],
SetTZIfNecessary, CleanupMemory):
Restructured to make sure that the same mutex protects
all calls to localtime, gmtime, and tzset. Added a check
in front of those calls to make sure that the TZ env var
hasn't changed since the last call to tzset, and repeat
tzset if necessary. [Bug #942078] Removed a buggy test
of the Daylight Saving Time information in 'gettimeofday'
in favor of applying 'localtime' to a known value.
[Bug #922848]
* tests/clock.test (clock-3.14): Added test to make sure that
changes to $env(TZ) take effect immediately.
* win/tclWinTime.c (TclpLocaltime, TclpGmtime):
Added porting layer for 'localtime' and 'gmtime' calls.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
changes to tclWinTime.c and related code to improve loop filter
stability.
|
| | |
| | |
| | |
| | | |
Don't duplicate CYGWIN timezone #define from tclPort.h in tclWinPort.h
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* win/tclWinReg.c PDWORD_PTR
* win/tclWinThrd.c: Fix various minor gcc warnings.
* win/tclWinTime.c
* win/tclWinConsole.c Put channel type definitions
* win/tclWinChan.c in static const memory
* win/tclWinPipe.c
* win/tclWinSerial.c
* win/tclWinSock.c
* generic/tclIOGT.c
* generic/tclIORChan.c
* generic/tclIORTrans.c
* unix/tclUnixChan.c
* unix/tclUnixPipe.c
* unix/tclUnixSock.c
* unix/configure (regenerated with autoconf 2.59)
* tests/info.test: Make test independant from
tcltest implementation.
|
| | | |
|
|/ / |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/regerror.c: Avoid use of reserved word.
* generic/tcl.h: Select the right Tcl_Stat structure
* generic/tclDate.c: Casts to handle 64 bit time_t case.
* tests/env.test: Include essential envvar on Win32
* win/nmakehlp.c: Handle new return codes.
* win/makefile.vc: Use the selected options.
* win/rules.vc: Check options are applicable
* win/tclWinPort.h: Disable deprecated function warnings
* win/tclWinSock.c: Provide default value to avoid warning.
* win/tclWinTime.c: Add casts to handle 64bit time_t type.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclDecls.h: the modified tcl.decls (TIP #233, see below).
* doc/GetTime.3: Implemented TIP #233, i.e. the
* generic/tcl.decls: 'Virtualization of Tcl's Sense of Time'.
* generic/tcl.h: Declared, implemented, and documented the
* generic/tclInt.h: specified new API functions. Moved the
* unix/tclUnixEvent.c: native (OS) access to time information
* unix/tclUnixNotfy.c: into standard handler functions. Inserted
* unix/tclUnixTime.c: hooks calling on the handlers where native
* win/tclWinNotify.c: access was done before, and where scaling
* win/tclWinTime.c: between domains (real/virtual) is required.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
attempted to store the assoc data in the client data; the
optimisation caused a bug that [after] would overwrite
its imports. [Bug 1016167]
* library/clock.tcl (InitTZData, ClearCaches): Changed so that the
in-memory time zone :UTC (and its aliases) always gets
reinitialised, in case tzdata is absent. [Bug 1019537, 1023779]
* library/tzdata/*: Regenerated.
* tests/clock.test (clock-31.*, clock-39.1): Corrected a problem
where the 'system' locale tests fail on a non-English Windows
machine. [Bug 1023761]. Added a test to make sure that alias
time zones load correctly. [Bug 1023779].
* tools/tclZIC.tcl (writeLinks): Corrected a problem where
alias time zone names were written incorrectly, causing them
to fail to load at run time. [Bug 1023779].
* win/tclWinTime.c (Tcl_GetTime): Eliminated CPUID tests on
Win64 - assuming that HAL vendors now do a better job of
keeping the performance counters synchronized among CPU's.
[Bug 1020445]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
build works again.
* generic/tclDecls.h: Changes to the tests for
* generic/tclInt.decls: clock frequency in
* generic/tclIntDecls.h: Tcl_WinTime
* generic/tclIntPlatDecls.h: so that any clock frequency
* generic/tclPlatDecls.h: is accepted provided that
* generic/tclStubInit.c: all CPU's in the system share
* tests/platform.test (platform-1.3): a common chip, and hence,
* win/tclWin32Dll.c (TclWinCPUID): presumably, a common clock.
* win/tclWinTest.c (TestwincpuidCmd) This change necessitated a
* win/tclWinTime.c (Tcl_GetTime): small burst of assembly code
to read CPU ID information, which was added as TclWinCPUID in the
internal Stubs. To test this code in the common case of a
single-processor machine, a 'testwincpuid' command was added to
tclWinTest.c, and a test case in platform.test. Thanks to Jeff
Godfrey and Richard Suchenwirth for reporting this bug. [Bug
#976722]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime
* generic/tclIntDecls.h: from Unix-specific stubs to the generic
* generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs'
* generic/tclStubInit.c:
* unix/tclUnixPort.h:
* generic/tclClock.c: Changed a buggy 'GMT' timezone specification
to the correct 'GMT0'. [Bug #922848]
* unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to
unix/tclUnixTime.c where they belong.
* unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone,
ThreadSafeGMTime [removed],
ThreadSafeLocalTime [removed],
SetTZIfNecessary, CleanupMemory):
Restructured to make sure that the same mutex protects
all calls to localtime, gmtime, and tzset. Added a check
in front of those calls to make sure that the TZ env var
hasn't changed since the last call to tzset, and repeat
tzset if necessary. [Bug #942078] Removed a buggy test
of the Daylight Saving Time information in 'gettimeofday'
in favor of applying 'localtime' to a known value.
[Bug #922848]
* tests/clock.test (clock-3.14): Added test to make sure that
changes to $env(TZ) take effect immediately.
* win/tclWinTime.c (TclpLocaltime, TclpGmtime):
Added porting layer for 'localtime' and 'gmtime' calls.
|
| |
| |
| |
| |
| | |
called from the stack frame of DllMain's PROCESS_DETACH, the
wait operation should timeout and continue.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclInt.h: Reworked the Tcl header files into a clean
* unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h
* win/tclWinInt.h: and every C source file should #include
* win/tclWinPort.h: at most one of those files to satisfy its
declaration needs. tclWinInt.h and tclWinPort.h also better organized
so that tclWinPort.h includes the Windows implementation of
cross-platform declarations, while tclWinInt.h makes declarations that
are available on Windows only.
* generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h
* generic/tclMath.h (removed): header file. The internal Tcl
* macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a
* win/tcl.dsp: #include <math.h> directly,
and file external to Tcl needing libm should do the same.
* win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file.
* win/makefile.bc (TCLOBJS): It's a vestige from matherr() days
* win/makefile.vc (TCLOBJS): gone by.
* win/tcl.dsp:
* win/tclWinMtherr.c (removed):
|