From f82f46df1628c6703ad0ff2b94d83c6c9a46c56f Mon Sep 17 00:00:00 2001 From: Kevin B Kenny Date: Wed, 21 Oct 2015 23:30:41 +0000 Subject: Micro-optimization: remove double checked lock from TclGetAllocCache in favour of initialization in TclInitSubsystems --- generic/tclEvent.c | 3 +++ generic/tclInt.h | 3 +++ unix/tclUnixThrd.c | 27 ++++++++++----------------- win/tclWinThrd.c | 33 +++++++++++++++------------------ 4 files changed, 31 insertions(+), 35 deletions(-) diff --git a/generic/tclEvent.c b/generic/tclEvent.c index 8305410..d62850b 100644 --- a/generic/tclEvent.c +++ b/generic/tclEvent.c @@ -1043,6 +1043,9 @@ TclInitSubsystems(void) #if USE_TCLALLOC TclInitAlloc(); /* Process wide mutex init */ #endif +#if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC) + TclpInitThreadAlloc(); +#endif #ifdef TCL_MEM_DEBUG TclInitDbCkalloc(); /* Process wide mutex init */ #endif diff --git a/generic/tclInt.h b/generic/tclInt.h index 356d250..d4baed4 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -3146,6 +3146,9 @@ MODULE_SCOPE int TclpLoadMemory(Tcl_Interp *interp, void *buffer, Tcl_FSUnloadFileProc **unloadProcPtr, int flags); #endif MODULE_SCOPE void TclInitThreadStorage(void); +#if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC) +MODULE_SCOPE void TclpInitThreadAlloc(void); +#endif MODULE_SCOPE void TclFinalizeThreadDataThread(void); MODULE_SCOPE void TclFinalizeThreadStorage(void); #ifdef TCL_WIDE_CLICKS diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c index ea03332..0f4a8a3 100644 --- a/unix/tclUnixThrd.c +++ b/unix/tclUnixThrd.c @@ -680,7 +680,6 @@ TclpInetNtoa( */ #ifdef USE_THREAD_ALLOC -static volatile int initialized = 0; static pthread_key_t key; typedef struct allocMutex { @@ -727,29 +726,23 @@ TclpFreeAllocCache( TclFreeAllocCache(ptr); pthread_setspecific(key, NULL); - - } else if (initialized) { - /* - * Called by us in TclFinalizeThreadAlloc() during the library - * finalization initiated from Tcl_Finalize() - */ - + + } else { pthread_key_delete(key); - initialized = 0; } } +void +TclpInitThreadAlloc(void) +{ + pthread_mutex_lock(allocLockPtr); + pthread_key_create(&key, TclpFreeAllocCache); + pthread_mutex_unlock(allocLockPtr); +} + void * TclpGetAllocCache(void) { - if (!initialized) { - pthread_mutex_lock(allocLockPtr); - if (!initialized) { - pthread_key_create(&key, TclpFreeAllocCache); - initialized = 1; - } - pthread_mutex_unlock(allocLockPtr); - } return pthread_getspecific(key); } diff --git a/win/tclWinThrd.c b/win/tclWinThrd.c index 1c9d483..fac8ab3 100644 --- a/win/tclWinThrd.c +++ b/win/tclWinThrd.c @@ -122,7 +122,6 @@ typedef struct WinCondition { */ #ifdef USE_THREAD_ALLOC -static int once; static DWORD tlsKey; typedef struct allocMutex { @@ -971,24 +970,24 @@ TclpFreeAllocMutex( free(lockPtr); } +void +TclInitThreadAlloc(void) +{ + /* + * We need to make sure that TclpFreeAllocCache is called on each + * thread that calls this, but only on threads that call this. + */ + + tlsKey = TlsAlloc(); + if (tlsKey == TLS_OUT_OF_INDEXES) { + Tcl_Panic("could not allocate thread local storage"); + } +} + void * TclpGetAllocCache(void) { void *result; - - if (!once) { - /* - * We need to make sure that TclpFreeAllocCache is called on each - * thread that calls this, but only on threads that call this. - */ - - tlsKey = TlsAlloc(); - once = 1; - if (tlsKey == TLS_OUT_OF_INDEXES) { - Tcl_Panic("could not allocate thread local storage"); - } - } - result = TlsGetValue(tlsKey); if ((result == NULL) && (GetLastError() != NO_ERROR)) { Tcl_Panic("TlsGetValue failed from TclpGetAllocCache"); @@ -1024,7 +1023,7 @@ TclpFreeAllocCache( if (!success) { Tcl_Panic("TlsSetValue failed from TclpFreeAllocCache"); } - } else if (once) { + } else { /* * Called by us in TclFinalizeThreadAlloc() during the library * finalization initiated from Tcl_Finalize() @@ -1034,9 +1033,7 @@ TclpFreeAllocCache( if (!success) { Tcl_Panic("TlsFree failed from TclpFreeAllocCache"); } - once = 0; /* reset for next time. */ } - } #endif /* USE_THREAD_ALLOC */ -- cgit v0.12 From ea342f5111aeaaf3b3da7e7e75df24f55a0f3e7d Mon Sep 17 00:00:00 2001 From: dkf Date: Thu, 22 Oct 2015 01:00:28 +0000 Subject: Turn off NRE asserts by default. About a 5% speedup on [clock format]. --- generic/tclBasic.c | 3 --- generic/tclExecute.c | 3 --- generic/tclInt.h | 4 +++- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/generic/tclBasic.c b/generic/tclBasic.c index a09bf10..5c5bc64 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -22,10 +22,7 @@ #include "tclCompile.h" #include "tommath.h" #include - -#if NRE_ENABLE_ASSERTS #include -#endif #define INTERP_STACK_INITIAL_SIZE 2000 #define CORO_STACK_INITIAL_SIZE 200 diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 7f65262..b10af65 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -20,10 +20,7 @@ #include "tclOOInt.h" #include "tommath.h" #include - -#if NRE_ENABLE_ASSERTS #include -#endif /* * Hack to determine whether we may expect IEEE floating point. The hack is diff --git a/generic/tclInt.h b/generic/tclInt.h index d4baed4..50eb370 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -4799,7 +4799,9 @@ void Tcl_Panic(const char *, ...) __attribute__((analyzer_noreturn)); */ #define NRE_USE_SMALL_ALLOC 1 /* Only turn off for debugging purposes. */ -#define NRE_ENABLE_ASSERTS 1 +#ifndef NRE_ENABLE_ASSERTS +#define NRE_ENABLE_ASSERTS 0 +#endif /* * This is the main data struct for representing NR commands. It is designed -- cgit v0.12 From ca9cf2ba57b9245e21d8bd908ffdbea32ed3d7cd Mon Sep 17 00:00:00 2001 From: Kevin B Kenny Date: Thu, 22 Oct 2015 14:07:01 +0000 Subject: fix typo in micro-optimization TclpInitThreadAlloc --- win/tclWinThrd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/tclWinThrd.c b/win/tclWinThrd.c index fac8ab3..a2fc226 100644 --- a/win/tclWinThrd.c +++ b/win/tclWinThrd.c @@ -971,7 +971,7 @@ TclpFreeAllocMutex( } void -TclInitThreadAlloc(void) +TclpInitThreadAlloc(void) { /* * We need to make sure that TclpFreeAllocCache is called on each -- cgit v0.12 From ca7c0960d7638677ec58d01f6229fda1c9e310a4 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 22 Oct 2015 21:06:35 +0000 Subject: Open the release candidate branch for Tcl 8.5.19. Updated changes file. --- changes | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/changes b/changes index 6d61b5e..31757a0 100644 --- a/changes +++ b/changes @@ -7929,3 +7929,42 @@ of Tcl_Channel (porter) 2015-02-11 tzdata updated to Olson's tzdata2015a (venkat) --- Released 8.5.18, March 6, 2015 --- http://core.tcl.tk/tcl/ for details + +2015-03-10 (bug)[3028676] Refinement in OS X notifier (steffen,walzer,lars_h) + +2015-04-23 (bug)[19ea02] Win: shared read from linked dirs (bogdan,oehhar) + +2015-04-24 (bug)[879a07] Incomplete chars @ buffer ends (leunissen,porter) + +2015-04-29 (bug)[894da1] Hang flushing blocking channels (yorick) + +2015-05-27 (enhancement) Relax memdebug constraint on extensions (kupries) + +2015-06-16 (bug)[e770d9] Higher baud on serial channels (woods,nijtmans) + +2015-06-18 (update) Update Unicode data to 8.0 (nijtmans) + *** POTENTIAL INCOMPATIBILITY *** + +2015-07-15 (bug)[b1534b][9bad63] writes beyond buffer bounds (hanno,porter) + +2015-07-29 (bug)[3e7eca] Allocation overflow in expr parsing (rickyb,porter) + +2015-08-12 tzdata updated to Olson's tzdata2015f (venkat) + +2015-08-19 (bug)[00189c] MSVC 14: semi-static UCRT support (dower,nijtmans) + +2015-08-26 (bug)[0df7a1] Tolerate getcwd() failures (cato,nijtmans) + +2015-09-23 (bug)[e0a7b3] Input buffer draining & file events (griffin,porter) + +2015-09-24 (bug)[57945b] lock in forking/multi-threading (neumann,mistachkin) + +2015-09-29 (bug)[219866] Cygwin support error (yorick,nijtmans) +=> platform 1.0.14 + +2015-10-06 (bug)[b42a85] Win: [file normalize ~user] wrong dir (nadkarni) + +2015-10-21 (bug)[818a1a][a3c350][d7ea9f][8f2450][1080042] Many fixes and +improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) + +--- Released 8.5.19, December 1, 2015 --- http://core.tcl.tk/tcl/ for details -- cgit v0.12 From 8ce51a07b8d38dd87747125c886b78d9960f9fe8 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 23 Oct 2015 14:30:40 +0000 Subject: Bump to release number 8.5.19 --- README | 2 +- generic/tcl.h | 4 ++-- library/init.tcl | 2 +- tools/tcl.wse.in | 2 +- unix/configure.in | 2 +- unix/tcl.spec | 2 +- win/configure.in | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README b/README index 6d5a9be..c71d177 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ README: Tcl - This is the Tcl 8.5.18 source distribution. + This is the Tcl 8.5.19 source distribution. http://sourceforge.net/projects/tcl/files/Tcl/ You can get any source release of Tcl from the URL above. diff --git a/generic/tcl.h b/generic/tcl.h index 464f205..4fb5bb2 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -58,10 +58,10 @@ extern "C" { #define TCL_MAJOR_VERSION 8 #define TCL_MINOR_VERSION 5 #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE -#define TCL_RELEASE_SERIAL 18 +#define TCL_RELEASE_SERIAL 19 #define TCL_VERSION "8.5" -#define TCL_PATCH_LEVEL "8.5.18" +#define TCL_PATCH_LEVEL "8.5.19" /* * The following definitions set up the proper options for Windows compilers. diff --git a/library/init.tcl b/library/init.tcl index 62729e6..aaf148b 100644 --- a/library/init.tcl +++ b/library/init.tcl @@ -16,7 +16,7 @@ if {[info commands package] == ""} { error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]" } -package require -exact Tcl 8.5.18 +package require -exact Tcl 8.5.19 # Compute the auto path to use in this interpreter. # The values on the path come from several locations: diff --git a/tools/tcl.wse.in b/tools/tcl.wse.in index 3bc8ee4..06efbba 100644 --- a/tools/tcl.wse.in +++ b/tools/tcl.wse.in @@ -12,7 +12,7 @@ item: Global Log Pathname=%MAINDIR%\INSTALL.LOG Message Font=MS Sans Serif Font Size=8 - Disk Label=tcl8.5.18 + Disk Label=tcl8.5.19 Disk Filename=setup Patch Flags=0000000000000001 Patch Threshold=85 diff --git a/unix/configure.in b/unix/configure.in index 9c93024..ed895d9 100644 --- a/unix/configure.in +++ b/unix/configure.in @@ -25,7 +25,7 @@ m4_ifdef([SC_USE_CONFIG_HEADERS], [ TCL_VERSION=8.5 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=5 -TCL_PATCH_LEVEL=".18" +TCL_PATCH_LEVEL=".19" VERSION=${TCL_VERSION} #------------------------------------------------------------------------ diff --git a/unix/tcl.spec b/unix/tcl.spec index 76ab925..9062694 100644 --- a/unix/tcl.spec +++ b/unix/tcl.spec @@ -4,7 +4,7 @@ Name: tcl Summary: Tcl scripting language development environment -Version: 8.5.18 +Version: 8.5.19 Release: 2 License: BSD Group: Development/Languages diff --git a/win/configure.in b/win/configure.in index 6b30162..8931a38 100644 --- a/win/configure.in +++ b/win/configure.in @@ -14,7 +14,7 @@ SHELL=/bin/sh TCL_VERSION=8.5 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=5 -TCL_PATCH_LEVEL=".18" +TCL_PATCH_LEVEL=".19" VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION TCL_DDE_VERSION=1.3 -- cgit v0.12 From 0dd6aea93ddc469a60059a29582f10a3a472e00d Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 23 Oct 2015 15:21:36 +0000 Subject: autoconf-2.59 --- unix/configure | 2 +- win/configure | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/unix/configure b/unix/configure index bbac11d..98c2bba 100755 --- a/unix/configure +++ b/unix/configure @@ -1337,7 +1337,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu TCL_VERSION=8.5 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=5 -TCL_PATCH_LEVEL=".18" +TCL_PATCH_LEVEL=".19" VERSION=${TCL_VERSION} #------------------------------------------------------------------------ diff --git a/win/configure b/win/configure index dc03e62..607cf30 100755 --- a/win/configure +++ b/win/configure @@ -1311,7 +1311,7 @@ SHELL=/bin/sh TCL_VERSION=8.5 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=5 -TCL_PATCH_LEVEL=".18" +TCL_PATCH_LEVEL=".19" VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION TCL_DDE_VERSION=1.3 @@ -4775,21 +4775,21 @@ TCL_SHARED_LIB_SUFFIX="\${NODOT_VERSION}${DLLSUFFIX}" TCL_UNSHARED_LIB_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}" TCL_EXPORT_FILE_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}" -eval "TCL_SRC_DIR=\"`cd $srcdir/..; pwd`\"" +eval "TCL_SRC_DIR=\"`cd $srcdir/..; $CYGPATH $(pwd)`\"" eval "TCL_DLL_FILE=tcl${VER}${DLLSUFFIX}" eval "TCL_LIB_FILE=${LIBPREFIX}tcl$VER${LIBSUFFIX}" eval "TCL_LIB_FLAG=\"-ltcl${VER}${LIBFLAGSUFFIX}\"" -eval "TCL_BUILD_LIB_SPEC=\"-L`pwd` ${TCL_LIB_FLAG}\"" +eval "TCL_BUILD_LIB_SPEC=\"-L`$CYGPATH $(pwd)` ${TCL_LIB_FLAG}\"" eval "TCL_LIB_SPEC=\"-L${libdir} ${TCL_LIB_FLAG}\"" eval "TCL_STUB_LIB_FILE=\"${LIBPREFIX}tclstub${VER}${LIBSUFFIX}\"" eval "TCL_STUB_LIB_FLAG=\"-ltclstub${VER}${LIBFLAGSUFFIX}\"" -eval "TCL_BUILD_STUB_LIB_SPEC=\"-L`pwd` ${TCL_STUB_LIB_FLAG}\"" +eval "TCL_BUILD_STUB_LIB_SPEC=\"-L`$CYGPATH $(pwd)` ${TCL_STUB_LIB_FLAG}\"" eval "TCL_STUB_LIB_SPEC=\"-L${libdir} ${TCL_STUB_LIB_FLAG}\"" -eval "TCL_BUILD_STUB_LIB_PATH=\"`pwd`/${TCL_STUB_LIB_FILE}\"" +eval "TCL_BUILD_STUB_LIB_PATH=\"`$CYGPATH $(pwd)`/${TCL_STUB_LIB_FILE}\"" eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\"" # Install time header dir can be set via --includedir -- cgit v0.12 From f6c021c559b57cc973581cb328496b13e5f3c952 Mon Sep 17 00:00:00 2001 From: dkf Date: Fri, 23 Oct 2015 21:52:10 +0000 Subject: Knock perhaps 1% off execution time: guard on TclAsyncReady more efficient when decrementing to zero. --- generic/tclExecute.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/generic/tclExecute.c b/generic/tclExecute.c index b10af65..f6dfc46 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -34,14 +34,14 @@ #endif /* - * A mask (should be 2**n-1) that is used to work out when the bytecode engine - * should call Tcl_AsyncReady() to see whether there is a signal that needs - * handling. + * A counter that is used to work out when the bytecode engine should call + * Tcl_AsyncReady() to see whether there is a signal that needs handling, and + * other expensive periodic operations. */ -#ifndef ASYNC_CHECK_COUNT_MASK -# define ASYNC_CHECK_COUNT_MASK 63 -#endif /* !ASYNC_CHECK_COUNT_MASK */ +#ifndef ASYNC_CHECK_COUNT +# define ASYNC_CHECK_COUNT 64 +#endif /* !ASYNC_CHECK_COUNT */ /* * Boolean flag indicating whether the Tcl bytecode interpreter has been @@ -2116,7 +2116,8 @@ TEBCresume( * sporadically: no special need for speed. */ - int instructionCount = 0; /* Counter that is used to work out when to + int instructionCount = ASYNC_CHECK_COUNT; + /* Counter that is used to work out when to * call Tcl_AsyncReady() */ const char *curInstName; #ifdef TCL_COMPILE_DEBUG @@ -2315,10 +2316,11 @@ TEBCresume( /* * Check for asynchronous handlers [Bug 746722]; we do the check every - * ASYNC_CHECK_COUNT_MASK instruction, of the form (2**n-1). + * ASYNC_CHECK_COUNT instructions. */ - if ((instructionCount++ & ASYNC_CHECK_COUNT_MASK) == 0) { + if (!(--instructionCount)) { + instructionCount = ASYNC_CHECK_COUNT; DECACHE_STACK_INFO(); if (TclAsyncReady(iPtr)) { result = Tcl_AsyncInvoke(interp, result); -- cgit v0.12 From 628d65bf41110410632aa9f7e3e4a42c67603f15 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 28 Jan 2016 13:42:33 +0000 Subject: RefineApproximation() leaked twoMv and twoMd in one of its exits. --- generic/tclStrToD.c | 2 ++ unix/tclConfig.h.in | 26 ++++++-------------------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c index cff9bdd..d05fe5d 100644 --- a/generic/tclStrToD.c +++ b/generic/tclStrToD.c @@ -1903,6 +1903,8 @@ RefineApproximation( rteSignificand = frexp(approxResult, &rteExponent); rteSigWide = (Tcl_WideInt) ldexp(rteSignificand, FP_PRECISION); if ((rteSigWide & 1) == 0) { + mp_clear(&twoMd); + mp_clear(&twoMv); return approxResult; } } diff --git a/unix/tclConfig.h.in b/unix/tclConfig.h.in index 710949f..9774ce9 100644 --- a/unix/tclConfig.h.in +++ b/unix/tclConfig.h.in @@ -4,9 +4,6 @@ #ifndef _TCLCONFIG #define _TCLCONFIG -/* Define if building universal (internal helper macro) */ -#undef AC_APPLE_UNIVERSAL_BUILD - /* Is pthread_attr_get_np() declared in ? */ #undef ATTRGETNP_NOT_DECLARED @@ -199,10 +196,10 @@ /* Is 'struct stat64' in ? */ #undef HAVE_STRUCT_STAT64 -/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +/* Define to 1 if `st_blksize' is member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BLKSIZE -/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +/* Define to 1 if `st_blocks' is member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BLOCKS /* Define to 1 if you have the header file. */ @@ -337,9 +334,6 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME -/* Define to the home page for this package. */ -#undef PACKAGE_URL - /* Define to the version of this package. */ #undef PACKAGE_VERSION @@ -433,17 +427,9 @@ /* Should we use vfork() instead of fork()? */ #undef USE_VFORK -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN /* Are Darwin SUSv3 extensions available? */ #undef _DARWIN_C_SOURCE @@ -498,7 +484,7 @@ /* Define to `int' if does not define. */ #undef pid_t -/* Define to `unsigned int' if does not define. */ +/* Define to `unsigned' if does not define. */ #undef size_t /* Define as int if socklen_t is not available */ -- cgit v0.12 From 4dfcbbea544e672812bc7d4de3b7571e14cccc22 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 29 Jan 2016 13:38:54 +0000 Subject: Implement TIP #440: Add engine to tcl_platform Array --- doc/tclvars.n | 5 +++++ generic/tclBasic.c | 7 +++++++ tests/platform.test | 6 +++++- tests/safe.test | 2 +- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/doc/tclvars.n b/doc/tclvars.n index 84823e0..9aa14d5 100644 --- a/doc/tclvars.n +++ b/doc/tclvars.n @@ -254,6 +254,11 @@ so extension writers can specify which package to load depending on the C run-time library that is in use. This is not an indication that this core contains symbols. .TP +\fBengine\fR +. +The name of the Tcl language implementation. When the interpreter is first +created, this is always set to the string \fBTcl\fR. +.TP \fBmachine\fR The instruction set executed by this machine, such as \fBintel\fR, \fBPPC\fR, \fB68k\fR, or \fBsun4m\fR. On UNIX machines, this diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 89d6b8f..44cf543 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -790,6 +790,13 @@ Tcl_CreateInterp(void) TclInitEmbeddedConfigurationInformation(interp); /* + * TIP #440: Declare the name of the script engine to be "Tcl". + */ + + Tcl_SetVar2(interp, "tcl_platform", "engine", "Tcl", + TCL_GLOBAL_ONLY); + + /* * Compute the byte order of this machine. */ diff --git a/tests/platform.test b/tests/platform.test index 51b9067..2f1cd70 100644 --- a/tests/platform.test +++ b/tests/platform.test @@ -20,6 +20,10 @@ namespace eval ::tcl::test::platform { testConstraint testCPUID [llength [info commands testcpuid]] +test platform-1.0 {tcl_platform(engine)} { + set tcl_platform(engine) +} {Tcl} + test platform-1.1 {TclpSetVariables: tcl_platform} { interp create i i eval {catch {unset tcl_platform(debug)}} @@ -27,7 +31,7 @@ test platform-1.1 {TclpSetVariables: tcl_platform} { set result [i eval {lsort [array names tcl_platform]}] interp delete i set result -} {byteOrder machine os osVersion platform pointerSize user wordSize} +} {byteOrder engine machine os osVersion platform pointerSize user wordSize} # Test assumes twos-complement arithmetic, which is true of virtually # everything these days. Note that this does *not* use wide(), and diff --git a/tests/safe.test b/tests/safe.test index 8879518..6784bb9 100644 --- a/tests/safe.test +++ b/tests/safe.test @@ -166,7 +166,7 @@ test safe-6.3 {test safe interpreters knowledge of the world} { set r [lreplace $r $threaded $threaded] } set r -} {byteOrder platform pointerSize wordSize} +} {byteOrder engine platform pointerSize wordSize} # more test should be added to check that hostname, nameofexecutable, # aren't leaking infos, but they still do... -- cgit v0.12 From 05a77f3559bff860de052d23fb8cdefdadd53b3c Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 1 Feb 2016 21:39:44 +0000 Subject: Backout the contributed patch memaccounting from Postgres since it changes the protections incompatibly and causes established tests to crash. --- generic/regc_nfa.c | 84 +++++++++++++++++++++++++++++++++++++++++++++--------- generic/regcomp.c | 2 -- generic/regerrs.h | 2 +- generic/regex.h | 2 +- generic/regguts.h | 16 +++++------ tests/regexp.test | 2 +- 6 files changed, 80 insertions(+), 28 deletions(-) diff --git a/generic/regc_nfa.c b/generic/regc_nfa.c index 6280e5e..d155b23 100644 --- a/generic/regc_nfa.c +++ b/generic/regc_nfa.c @@ -62,6 +62,7 @@ newnfa( nfa->nstates = 0; nfa->cm = cm; nfa->v = v; + nfa->size = 0; nfa->bos[0] = nfa->bos[1] = COLORLESS; nfa->eos[0] = nfa->eos[1] = COLORLESS; nfa->parent = parent; /* Precedes newfstate so parent is valid. */ @@ -89,6 +90,61 @@ newnfa( } /* + - TooManyStates - checks if the max states exceeds the compile-time value + ^ static int TooManyStates(struct nfa *); + */ +static int +TooManyStates( + struct nfa *nfa) +{ + struct nfa *parent = nfa->parent; + size_t sz = nfa->size; + + while (parent != NULL) { + sz = parent->size; + parent = parent->parent; + } + if (sz > REG_MAX_STATES) { + return 1; + } + return 0; +} + +/* + - IncrementSize - increases the tracked size of the NFA and its parents. + ^ static void IncrementSize(struct nfa *); + */ +static void +IncrementSize( + struct nfa *nfa) +{ + struct nfa *parent = nfa->parent; + + nfa->size++; + while (parent != NULL) { + parent->size++; + parent = parent->parent; + } +} + +/* + - DecrementSize - increases the tracked size of the NFA and its parents. + ^ static void DecrementSize(struct nfa *); + */ +static void +DecrementSize( + struct nfa *nfa) +{ + struct nfa *parent = nfa->parent; + + nfa->size--; + while (parent != NULL) { + parent->size--; + parent = parent->parent; + } +} + +/* - freenfa - free an entire NFA ^ static VOID freenfa(struct nfa *); */ @@ -124,20 +180,20 @@ newstate( { struct state *s; + if (TooManyStates(nfa)) { + /* XXX: add specific error for this */ + NERR(REG_ETOOBIG); + return NULL; + } if (nfa->free != NULL) { s = nfa->free; nfa->free = s->next; } else { - if (nfa->v->spaceused >= REG_MAX_COMPILE_SPACE) { - NERR(REG_ETOOBIG); - return NULL; - } s = (struct state *) MALLOC(sizeof(struct state)); if (s == NULL) { NERR(REG_ESPACE); return NULL; } - nfa->v->spaceused += sizeof(struct state); s->oas.next = NULL; s->free = NULL; s->noas = 0; @@ -161,6 +217,12 @@ newstate( } s->prev = nfa->slast; nfa->slast = s; + + /* + * Track the current size and the parent size. + */ + + IncrementSize(nfa); return s; } @@ -231,6 +293,7 @@ freestate( s->prev = NULL; s->next = nfa->free; /* don't delete it, put it on the free list */ nfa->free = s; + DecrementSize(nfa); } /* @@ -249,13 +312,11 @@ destroystate( for (ab=s->oas.next ; ab!=NULL ; ab=abnext) { abnext = ab->next; FREE(ab); - nfa->v->spaceused -= sizeof(struct arcbatch); } s->ins = NULL; s->outs = NULL; s->next = NULL; FREE(s); - nfa->v->spaceused -= sizeof(struct state); } /* @@ -378,19 +439,14 @@ allocarc( */ if (s->free == NULL) { - struct arcbatch *newAb; + struct arcbatch *newAb = (struct arcbatch *) + MALLOC(sizeof(struct arcbatch)); int i; - if (nfa->v->spaceused >= REG_MAX_COMPILE_SPACE) { - NERR(REG_ETOOBIG); - return NULL; - } - newAb = (struct arcbatch *) MALLOC(sizeof(struct arcbatch)); if (newAb == NULL) { NERR(REG_ESPACE); return NULL; } - nfa->v->spaceused += sizeof(struct arcbatch); newAb->next = s->oas.next; s->oas.next = newAb; diff --git a/generic/regcomp.c b/generic/regcomp.c index 8287b7e..fda40e0 100644 --- a/generic/regcomp.c +++ b/generic/regcomp.c @@ -227,7 +227,6 @@ struct vars { struct cvec *cv2; /* utility cvec */ struct subre *lacons; /* lookahead-constraint vector */ int nlacons; /* size of lacons */ - size_t spaceused; /* approx. space used for compilation */ }; /* parsing macros; most know that `v' is the struct vars pointer */ @@ -337,7 +336,6 @@ compile( v->cv2 = NULL; v->lacons = NULL; v->nlacons = 0; - v->spaceused = 0; re->re_magic = REMAGIC; re->re_info = 0; /* bits get set during parse */ re->re_csize = sizeof(chr); diff --git a/generic/regerrs.h b/generic/regerrs.h index ee203d5..72548ff 100644 --- a/generic/regerrs.h +++ b/generic/regerrs.h @@ -16,5 +16,5 @@ { REG_INVARG, "REG_INVARG", "invalid argument to regex function" }, { REG_MIXED, "REG_MIXED", "character widths of regex and string differ" }, { REG_BADOPT, "REG_BADOPT", "invalid embedded option" }, -{ REG_ETOOBIG, "REG_ETOOBIG", "regular expression is too complex" }, +{ REG_ETOOBIG, "REG_ETOOBIG", "nfa has too many states" }, { REG_ECOLORS, "REG_ECOLORS", "too many colors" }, diff --git a/generic/regex.h b/generic/regex.h index b5b11bd..b5dce50 100644 --- a/generic/regex.h +++ b/generic/regex.h @@ -277,7 +277,7 @@ typedef struct { #define REG_INVARG 16 /* invalid argument to regex function */ #define REG_MIXED 17 /* character widths of regex and string differ */ #define REG_BADOPT 18 /* invalid embedded option */ -#define REG_ETOOBIG 19 /* regular expression is too complex */ +#define REG_ETOOBIG 19 /* nfa has too many states */ #define REG_ECOLORS 20 /* too many colors */ /* two specials for debugging and testing */ #define REG_ATOI 101 /* convert error-code name to number */ diff --git a/generic/regguts.h b/generic/regguts.h index 72bdcb3..7ed8ec1 100644 --- a/generic/regguts.h +++ b/generic/regguts.h @@ -307,6 +307,9 @@ struct nfa { struct colormap *cm; /* the color map */ color bos[2]; /* colors, if any, assigned to BOS and BOL */ color eos[2]; /* colors, if any, assigned to EOS and EOL */ + size_t size; /* Current NFA size; differs from nstates as + * it also counts the number of states created + * by children of this state. */ struct vars *v; /* simplifies compile error reporting */ struct nfa *parent; /* parent NFA, if any */ }; @@ -336,16 +339,11 @@ struct cnfa { #define NULLCNFA(cnfa) ((cnfa).nstates == 0) /* - * This symbol limits the transient heap space used by the regex compiler, - * and thereby also the maximum complexity of NFAs that we'll deal with. - * Currently we only count NFA states and arcs against this; the other - * transient data is generally not large enough to notice compared to those. - * Note that we do not charge anything for the final output data structures - * (the compacted NFA and the colormap). + * Used to limit the maximum NFA size to something sane. [Bug 1810264] */ -#ifndef REG_MAX_COMPILE_SPACE -#define REG_MAX_COMPILE_SPACE \ - (100000 * sizeof(struct state) + 100000 * sizeof(struct arcbatch)) + +#ifndef REG_MAX_STATES +# define REG_MAX_STATES 100000 #endif /* diff --git a/tests/regexp.test b/tests/regexp.test index 7878d41..362f425 100644 --- a/tests/regexp.test +++ b/tests/regexp.test @@ -716,7 +716,7 @@ test regexp-22.4 {Bug 3606139} -setup { [a 668]([a 55])[a 668]([a 55])[a 668]([a 55])[a 511]] {}] a } -cleanup { rename a {} -} -returnCodes 1 -match glob -result {couldn't compile regular expression pattern: *} +} -returnCodes 1 -result {couldn't compile regular expression pattern: nfa has too many states} test regexp-22.5 {Bug 3610026} -setup { set e {} set cp 99 -- cgit v0.12 From eab0689b8f5f5f454f8a363c4d09c3cefdc94b63 Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 8 Feb 2016 20:42:59 +0000 Subject: update release date --- changes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changes b/changes index 3a93f5a..ab37d98 100644 --- a/changes +++ b/changes @@ -7977,4 +7977,4 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2016-01-29 (TIP 440) tcl_platform(engine) -- Tcl implementation (mistachkin) ---- Released 8.5.19, January 31, 2016 --- http://core.tcl.tk/tcl/ for details +--- Released 8.5.19, February 12, 2016 --- http://core.tcl.tk/tcl/ for details -- cgit v0.12 From 03dd6c13603af9d6792030412f52d942fc2eaefd Mon Sep 17 00:00:00 2001 From: gahr Date: Wed, 17 Feb 2016 11:03:48 +0000 Subject: [5f71353740] Support the "weekdays" unit in [clock add] --- doc/clock.n | 13 ++++++------- library/clock.tcl | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++---- tests/clock.test | 37 ++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 11 deletions(-) diff --git a/doc/clock.n b/doc/clock.n index 889a5da..53db33e 100644 --- a/doc/clock.n +++ b/doc/clock.n @@ -89,10 +89,9 @@ have 59 or 61 seconds. .TP \fIunit\fR One of the words, \fBseconds\fR, \fBminutes\fR, \fBhours\fR, -\fBdays\fR, \fBweeks\fR, \fBmonths\fR, or \fByears\fR, or -any unique prefix of such a word. Used in conjunction with \fIcount\fR -to identify an interval of time, for example, \fI3 seconds\fR or -\fI1 year\fR. +\fBdays\fR, \fBweekdays\fR, \fBweeks\fR, \fBmonths\fR, or \fByears\fR. +Used in conjunction with \fIcount\fR to identify an interval of time, +for example, \fI3 seconds\fR or \fI1 year\fR. .SS "OPTIONS" .TP \fB\-base\fR time @@ -175,8 +174,7 @@ given as its first argument. The remaining arguments (other than the possible \fB\-timezone\fR, \fB\-locale\fR and \fB\-gmt\fR options) are integers and keywords in alternation, where the keywords are chosen from \fBseconds\fR, \fBminutes\fR, \fBhours\fR, -\fBdays\fR, \fBweeks\fR, \fBmonths\fR, or \fByears\fR, or -any unique prefix of such a word. +\fBdays\fR, \fBweekdays\fR, \fBweeks\fR, \fBmonths\fR, or \fByears\fR. .PP Addition of seconds, minutes and hours is fairly straightforward; the given time increment (times sixty for minutes, or 3600 for hours) @@ -213,7 +211,8 @@ the given time to a calendar day and time of day in the appropriate time zone and locale. The requisite number of days (weeks are converted to days by multiplying by seven) is added to the calendar day, and the date and time are then converted back to a count of seconds from -the epoch time. +the epoch time. The \fBweekdays\fR keyword is similar to \fBdays\fR, +with the only difference that weekends are skipped. .PP Adding and subtracting a given number of days across the point that the time changes at the start or end of summer time (Daylight Saving Time) diff --git a/library/clock.tcl b/library/clock.tcl index 8e4b657..231f1ae 100755 --- a/library/clock.tcl +++ b/library/clock.tcl @@ -4248,7 +4248,7 @@ proc ::tcl::clock::add { clockval args } { ?-gmt boolean? ?-locale LOCALE? ?-timezone ZONE?\"" } if { [catch { expr {wide($clockval)} } result] } { - return -code error $result + return -code error "expected integer but got \"$clockval\"" } set offsets {} @@ -4287,9 +4287,6 @@ proc ::tcl::clock::add { clockval args } { -errorcode [list CLOCK gmtWithTimezone] \ "cannot use -gmt and -timezone in same call" } - if { [catch { expr { wide($clockval) } } result] } { - return -code error "expected integer but got \"$clockval\"" - } if { ![string is boolean -strict $gmt] } { return -code error "expected boolean value but got \"$gmt\"" } elseif { $gmt } { @@ -4326,6 +4323,11 @@ proc ::tcl::clock::add { clockval args } { $changeover] } + weekdays - weekday { + set clockval [AddWeekDays $quantity $clockval $timezone \ + $changeover] + } + hours - hour { set clockval [expr { 3600 * $quantity + $clockval }] } @@ -4425,6 +4427,52 @@ proc ::tcl::clock::AddMonths { months clockval timezone changeover } { #---------------------------------------------------------------------- # +# AddWeekDays -- +# +# Add a given number of week days (skipping Saturdays and Sundays) +# to a given clock value in a given time zone. +# +# Parameters: +# days - Number of days to add (may be negative) +# clockval - Seconds since the epoch before the operation +# timezone - Time zone in which the operation is to be performed +# changeover - Julian Day on which the Gregorian calendar was adopted +# in the target locale. +# +# Results: +# Returns the new clock value as a number of seconds since the epoch. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AddWeekDays { days clockval timezone changeover } { + + set day [format $clockval -format %u] + + set weeks [expr {$days / 5}] + set rdays [expr {$days % 5}] + set toAdd [expr {7 * $weeks + $rdays}] + set resDay [expr {$day + ($toAdd % 7)}] + + # Adjust if we start from a weekend + if {$day > 5} { + set adj [expr {5 - $day}] + incr toAdd $adj + incr resDay $adj + } + + # Adjust if we end up on a weekend + if {$resDay > 5} { + incr toAdd 2 + } + + AddDays $toAdd $clockval $timezone $changeover +} + +#---------------------------------------------------------------------- +# # AddDays -- # # Add a given number of days to a given clock value in a given time diff --git a/tests/clock.test b/tests/clock.test index 615f3a8..fc7992d 100644 --- a/tests/clock.test +++ b/tests/clock.test @@ -34992,6 +34992,10 @@ test clock-29.1800 {time parsing} { } 86399 # END testcases29 + +# BEGIN testcases30 + +# Test [clock add] test clock-30.1 {clock add years} { set t [clock scan 2000-01-01 -format %Y-%m-%d -timezone :UTC] set f [clock add $t 1 year -timezone :UTC] @@ -35218,6 +35222,39 @@ test clock-30.25 {clock add seconds at DST conversion} { set x1 [clock format $f1 -format {%Y-%m-%d %H:%M:%S %z} \ -timezone EST05:00EDT04:00,M4.1.0/02:00,M10.5.0/02:00] } {2004-10-31 01:00:00 -0500} +test clock-30.26 {clock add weekdays} { + set t [clock scan {2013-11-20}] ;# Wednesday + set f1 [clock add $t 3 weekdays] + set x1 [clock format $f1 -format {%Y-%m-%d}] +} {2013-11-25} +test clock-30.27 {clock add weekdays starting on Saturday} { + set t [clock scan {2013-11-23}] ;# Saturday + set f1 [clock add $t 1 weekday] + set x1 [clock format $f1 -format {%Y-%m-%d}] +} {2013-11-25} +test clock-30.28 {clock add weekdays starting on Sunday} { + set t [clock scan {2013-11-24}] ;# Sunday + set f1 [clock add $t 1 weekday] + set x1 [clock format $f1 -format {%Y-%m-%d}] +} {2013-11-25} +test clock-30.29 {clock add weekdays systematic} -body { + set n [clock seconds] + set d [clock format $n -format %u] + for {set i 1} {$i < 100} {incr i} { + set res_no [clock format [clock add $n $i weekdays] -format %u] + set exp_mod [expr {($d+$i)%5}] + if {$exp_mod == 0} { + set exp_mod 5 + } + if {$res_no != $exp_mod} { + return "Got $res_no adding $i to $n, expected: $exp_mod" + } + } + return "OK" +} -result {OK} + +# END testcases30 + test clock-31.1 {system locale} \ -constraints win \ -- cgit v0.12 From cb8a60a6ee4e02cddf216ca580ab3790bc310e80 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 22 Feb 2016 12:16:48 +0000 Subject: (cherry-pick): Add test-case for [9b47029467631832]: testing existence of env(some_thing) destroys traces. This demonstrates that Tcl 8.5 doesn't suffer. --- tests/env.test | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/env.test b/tests/env.test index ee13b7f..a7aa162 100644 --- a/tests/env.test +++ b/tests/env.test @@ -252,6 +252,20 @@ test env-6.1 {corner cases - add lots of env variables} {} { expr {[array size env] - $size} } 100 +test env-7.3 {[9b4702]: testing existence of env(some_thing) should not destroy trace} -body { + catch {unset ::env(test7_3)} + proc foo args { + set ::env(test7_3) ok + } + trace add variable ::env(not_yet_existent) write foo + info exists ::env(not_yet_existent) + set ::env(not_yet_existent) "Now I'm here"; + info exists ::env(test7_3) +} -cleanup { + unset ::env(not_yet_existent) + unset ::env(test7_3) +} -result 1 + # Restore the environment variables at the end of the test. foreach name [array names env] { -- cgit v0.12 From e644c2cde0ad8530628e57c4dba5797fc5ff3b85 Mon Sep 17 00:00:00 2001 From: gahr Date: Tue, 23 Feb 2016 16:31:18 +0000 Subject: Make sure that adding 0 weekdays doesn't result in going back in time --- library/clock.tcl | 4 ++++ tests/clock.test | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/library/clock.tcl b/library/clock.tcl index 231f1ae..535a67d 100755 --- a/library/clock.tcl +++ b/library/clock.tcl @@ -4449,6 +4449,10 @@ proc ::tcl::clock::AddMonths { months clockval timezone changeover } { proc ::tcl::clock::AddWeekDays { days clockval timezone changeover } { + if {$days == 0} { + return $clockval + } + set day [format $clockval -format %u] set weeks [expr {$days / 5}] diff --git a/tests/clock.test b/tests/clock.test index fc7992d..0b26213 100644 --- a/tests/clock.test +++ b/tests/clock.test @@ -35237,7 +35237,12 @@ test clock-30.28 {clock add weekdays starting on Sunday} { set f1 [clock add $t 1 weekday] set x1 [clock format $f1 -format {%Y-%m-%d}] } {2013-11-25} -test clock-30.29 {clock add weekdays systematic} -body { +test clock-30.29 {clock add 0 weekdays starting on a weekend} { + set t [clock scan {2016-02-27}] ;# Saturday + set f1 [clock add $t 0 weekdays] + set x1 [clock format $f1 -format {%Y-%m-%d}] +} {2016-02-27} +test clock-30.30 {clock add weekdays systematic} -body { set n [clock seconds] set d [clock format $n -format %u] for {set i 1} {$i < 100} {incr i} { -- cgit v0.12 From 369046f0c01b3e138f4f9b8c4bd74f1ca9c89111 Mon Sep 17 00:00:00 2001 From: gahr Date: Wed, 24 Feb 2016 09:10:01 +0000 Subject: More comprehensive tests adding and subtracting week-days --- tests/clock.test | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/tests/clock.test b/tests/clock.test index 0b26213..42285a8 100644 --- a/tests/clock.test +++ b/tests/clock.test @@ -35242,17 +35242,30 @@ test clock-30.29 {clock add 0 weekdays starting on a weekend} { set f1 [clock add $t 0 weekdays] set x1 [clock format $f1 -format {%Y-%m-%d}] } {2016-02-27} -test clock-30.30 {clock add weekdays systematic} -body { +test clock-30.30 {clock add weekdays and back} -body { set n [clock seconds] - set d [clock format $n -format %u] - for {set i 1} {$i < 100} {incr i} { - set res_no [clock format [clock add $n $i weekdays] -format %u] - set exp_mod [expr {($d+$i)%5}] - if {$exp_mod == 0} { - set exp_mod 5 - } - if {$res_no != $exp_mod} { - return "Got $res_no adding $i to $n, expected: $exp_mod" + # we start on each day of the week + for {set i 0} {$i < 7} {incr i} { + set start [clock add $n $i days] + set startu [clock format $start -format %u] + # add 0 - 100 weekdays + for {set j 0} {$j < 100} {incr j} { + set forth [clock add $start $j weekdays] + set back [clock add $forth -$j weekdays] + # If $s was a weekday or $j was 0, $b must be the same day. + # Otherwise, $b must be the immediately preceeding Friday + set fail 0 + if {$j == 0 || $startu < 6} { + if {$start != $back} { set fail 1} + } else { + set friday [clock add $start -[expr {$startu % 5}] days] + if {$friday != $back} { set fail 1 } + } + if {$fail} { + set sdate [clock format $start -format {%Y-%m-%d}] + set bdate [clock format $back -format {%Y-%m-%d}] + return "$sdate + $j - $j := $bdate" + } } } return "OK" -- cgit v0.12 From 46cb341dbc07abb1df54318ad9d55c41a5a68668 Mon Sep 17 00:00:00 2001 From: gahr Date: Thu, 3 Mar 2016 08:30:56 +0000 Subject: Clarify that weekends are intended as Saturdays and Sundays --- doc/clock.n | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/clock.n b/doc/clock.n index 53db33e..ac50e36 100644 --- a/doc/clock.n +++ b/doc/clock.n @@ -212,7 +212,7 @@ time zone and locale. The requisite number of days (weeks are converted to days by multiplying by seven) is added to the calendar day, and the date and time are then converted back to a count of seconds from the epoch time. The \fBweekdays\fR keyword is similar to \fBdays\fR, -with the only difference that weekends are skipped. +with the only difference that weekends - Saturdays and Sundays - are skipped. .PP Adding and subtracting a given number of days across the point that the time changes at the start or end of summer time (Daylight Saving Time) -- cgit v0.12 From 56cafd677815347cec86687bfb1b0f7a7254b5ed Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 8 Mar 2016 15:52:23 +0000 Subject: [bbc304f61a] Avoid event handling when reflected channel has a watch change half-completed. (First half in 1 thread, second in another). When this is allowed to happen, false alarm errors from [chan postevent] are the result when timing is unlucky. --- generic/tclIORChan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c index c9939d6..85cbec4 100644 --- a/generic/tclIORChan.c +++ b/generic/tclIORChan.c @@ -1515,8 +1515,6 @@ ReflectWatch( return; } - rcPtr->interest = mask; - /* * Are we in the correct thread? */ @@ -1539,6 +1537,7 @@ ReflectWatch( Tcl_Preserve(rcPtr); + rcPtr->interest = mask; maskObj = DecodeEventMask(mask); /* assert maskObj.refCount == 1 */ (void) InvokeTclMethod(rcPtr, METH_WATCH, maskObj, NULL, NULL); @@ -2887,6 +2886,7 @@ ForwardProc( /* assert maskObj.refCount == 1 */ Tcl_Preserve(rcPtr); + rcPtr->interest = paramPtr->watch.mask; (void) InvokeTclMethod(rcPtr, METH_WATCH, maskObj, NULL, NULL); Tcl_DecrRefCount(maskObj); Tcl_Release(rcPtr); -- cgit v0.12 From 53a12f1cf62f19f53ef964da17fc300de9e1ecdb Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 8 Mar 2016 18:06:06 +0000 Subject: [0b8c387cf7] Replace deprecated Tcl_VarEval() call with reworked callback system that uses Tcl_Obj scripts. --- generic/tclIOCmd.c | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/generic/tclIOCmd.c b/generic/tclIOCmd.c index 834f225..b7b7b66 100644 --- a/generic/tclIOCmd.c +++ b/generic/tclIOCmd.c @@ -16,7 +16,7 @@ */ typedef struct AcceptCallback { - char *script; /* Script to invoke. */ + Tcl_Obj *script; /* Script to invoke. */ Tcl_Interp *interp; /* Interpreter in which to run it. */ } AcceptCallback; @@ -37,8 +37,7 @@ static Tcl_ThreadDataKey dataKey; */ static void FinalizeIOCmdTSD(ClientData clientData); -static void AcceptCallbackProc(ClientData callbackData, - Tcl_Channel chan, char *address, int port); +static Tcl_TcpAcceptProc AcceptCallbackProc; static int ChanPendingObjCmd(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); @@ -1373,15 +1372,22 @@ AcceptCallbackProc( */ if (acceptCallbackPtr->interp != NULL) { - char portBuf[TCL_INTEGER_SPACE]; - char *script = acceptCallbackPtr->script; Tcl_Interp *interp = acceptCallbackPtr->interp; - int result; + Tcl_Obj *script, *objv[2]; + int result = TCL_OK; - Tcl_Preserve(script); - Tcl_Preserve(interp); + objv[0] = acceptCallbackPtr->script; + objv[1] = Tcl_NewListObj(3, NULL); + Tcl_ListObjAppendElement(NULL, objv[1], Tcl_NewStringObj( + Tcl_GetChannelName(chan), -1)); + Tcl_ListObjAppendElement(NULL, objv[1], Tcl_NewStringObj(address, -1)); + Tcl_ListObjAppendElement(NULL, objv[1], Tcl_NewIntObj(port)); + + script = Tcl_ConcatObj(2, objv); + Tcl_IncrRefCount(script); + Tcl_DecrRefCount(objv[1]); - TclFormatInt(portBuf, port); + Tcl_Preserve(interp); Tcl_RegisterChannel(interp, chan); /* @@ -1391,8 +1397,9 @@ AcceptCallbackProc( Tcl_RegisterChannel(NULL, chan); - result = Tcl_VarEval(interp, script, " ", Tcl_GetChannelName(chan), - " ", address, " ", portBuf, NULL); + result = Tcl_EvalObjEx(interp, script, TCL_EVAL_DIRECT); + Tcl_DecrRefCount(script); + if (result != TCL_OK) { Tcl_BackgroundException(interp, result); Tcl_UnregisterChannel(interp, chan); @@ -1406,7 +1413,6 @@ AcceptCallbackProc( Tcl_UnregisterChannel(NULL, chan); Tcl_Release(interp); - Tcl_Release(script); } else { /* * The interpreter has been deleted, so there is no useful way to use @@ -1450,7 +1456,7 @@ TcpServerCloseProc( UnregisterTcpServerInterpCleanupProc(acceptCallbackPtr->interp, acceptCallbackPtr); } - Tcl_EventuallyFree(acceptCallbackPtr->script, TCL_DYNAMIC); + Tcl_DecrRefCount(acceptCallbackPtr->script); ckfree(acceptCallbackPtr); } @@ -1485,7 +1491,8 @@ Tcl_SocketObjCmd( SKT_ASYNC, SKT_MYADDR, SKT_MYPORT, SKT_SERVER }; int optionIndex, a, server = 0, port, myport = 0, async = 0; - const char *host, *script = NULL, *myaddr = NULL; + const char *host, *myaddr = NULL; + Tcl_Obj *script = NULL; Tcl_Channel chan; if (TclpHasSockets(interp) != TCL_OK) { @@ -1548,7 +1555,7 @@ Tcl_SocketObjCmd( "no argument given for -server option", -1)); return TCL_ERROR; } - script = TclGetString(objv[a]); + script = objv[a]; break; default: Tcl_Panic("Tcl_SocketObjCmd: bad option index to SocketOptions"); @@ -1589,16 +1596,14 @@ Tcl_SocketObjCmd( if (server) { AcceptCallback *acceptCallbackPtr = ckalloc(sizeof(AcceptCallback)); - unsigned len = strlen(script) + 1; - char *copyScript = ckalloc(len); - memcpy(copyScript, script, len); - acceptCallbackPtr->script = copyScript; + Tcl_IncrRefCount(script); + acceptCallbackPtr->script = script; acceptCallbackPtr->interp = interp; chan = Tcl_OpenTcpServer(interp, port, host, AcceptCallbackProc, acceptCallbackPtr); if (chan == NULL) { - ckfree(copyScript); + Tcl_DecrRefCount(script); ckfree(acceptCallbackPtr); return TCL_ERROR; } -- cgit v0.12 From 61616431840c438a6934e3745b7b422f2a1d53c8 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 9 Mar 2016 15:59:07 +0000 Subject: Let Tcl 8.7 allow Tk 8.7 to be used by default --- generic/tclBasic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclBasic.c b/generic/tclBasic.c index e5d7406..3f5c113 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -580,7 +580,7 @@ Tcl_CreateInterp(void) iPtr->packageUnknown = NULL; /* TIP #268 */ - if (getenv("TCL_PKG_PREFER_LATEST") == NULL) { + if ((TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE) && getenv("TCL_PKG_PREFER_LATEST") == NULL) { iPtr->packagePrefer = PKG_PREFER_STABLE; } else { iPtr->packagePrefer = PKG_PREFER_LATEST; -- cgit v0.12 From 13347d984e68e94063bee8fe1b5c8cc77ef5b250 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 10 Mar 2016 11:56:23 +0000 Subject: Eliminate exess spacings in many test-cases --- tests/README | 6 +- tests/apply.test | 2 +- tests/assemble.test | 66 +++---- tests/assemble1.bench | 19 +- tests/autoMkindex.test | 2 +- tests/basic.test | 22 +-- tests/chan.test | 4 +- tests/chanio.test | 48 ++--- tests/clock.test | 80 ++++---- tests/compile.test | 20 +- tests/coroutine.test | 8 +- tests/encoding.test | 10 +- tests/execute.test | 6 +- tests/expr-old.test | 8 +- tests/expr.test | 6 +- tests/fileSystem.test | 4 +- tests/history.test | 2 +- tests/httpd | 2 +- tests/httpold.test | 2 +- tests/info.test | 8 +- tests/init.test | 10 +- tests/interp.test | 52 ++--- tests/io.test | 74 +++---- tests/ioTrans.test | 2 +- tests/iogt.test | 2 +- tests/lindex.test | 4 +- tests/lmap.test | 6 +- tests/lrange.test | 2 +- tests/lrepeat.test | 4 +- tests/lsearch.test | 14 +- tests/lsetComp.test | 506 +++++++++++++++++++++++------------------------ tests/main.test | 2 +- tests/misc.test | 4 +- tests/msgcat.test | 48 ++--- tests/namespace.test | 32 +-- tests/nre.test | 6 +- tests/obj.test | 6 +- tests/oo.test | 8 +- tests/parse.test | 2 +- tests/parseExpr.test | 4 +- tests/pkgMkIndex.test | 2 +- tests/platform.test | 4 +- tests/proc.test | 6 +- tests/reg.test | 6 +- tests/regexp.test | 10 +- tests/regexpComp.test | 12 +- tests/set-old.test | 2 +- tests/set.test | 2 +- tests/split.test | 2 +- tests/stack.test | 2 +- tests/string.test | 6 +- tests/stringObj.test | 4 +- tests/subst.test | 14 +- tests/tailcall.test | 12 +- tests/tm.test | 2 +- tests/trace.test | 60 +++--- tests/unixForkEvent.test | 2 +- tests/unixNotfy.test | 4 +- tests/unknown.test | 2 +- tests/uplevel.test | 6 +- tests/upvar.test | 2 +- tests/util.test | 6 +- tests/var.test | 12 +- tests/winPipe.test | 4 +- 64 files changed, 648 insertions(+), 649 deletions(-) diff --git a/tests/README b/tests/README index ce2382e..e86100f 100644 --- a/tests/README +++ b/tests/README @@ -59,7 +59,7 @@ should correspond to the Tcl or C code file that they are testing. For example, the test file for the C file "tclCmdAH.c" is "cmdAH.test". Test files that contain black-box tests may not correspond to any Tcl or C code file so they should match the pattern -"*_bb.test". +"*_bb.test". Be sure your new test file can be run from any working directory. @@ -72,12 +72,12 @@ as well as an installation environment. If your test file contains tests that should not be run in one or more of those cases, please use the constraints mechanism to skip those tests. -4. Incompatibilities of package tcltest 2.1 with +4. Incompatibilities of package tcltest 2.1 with testing machinery of very old versions of Tcl: ------------------------------------------------ 1) Global variables such as VERBOSE, TESTS, and testConfig of the - old machinery correspond to the [configure -verbose], + old machinery correspond to the [configure -verbose], [configure -match], and [testConstraint] commands of tcltest 2.1, respectively. diff --git a/tests/apply.test b/tests/apply.test index ba19b81..597cd97 100644 --- a/tests/apply.test +++ b/tests/apply.test @@ -228,7 +228,7 @@ test apply-8.3 {args treatment} { apply [list {x args} $applyBody] 1 2 3 } {{x 1} {args {2 3}}} test apply-8.4 {default values} { - apply [list {{x 1} {y 2}} $applyBody] + apply [list {{x 1} {y 2}} $applyBody] } {{x 1} {y 2}} test apply-8.5 {default values} { apply [list {{x 1} {y 2}} $applyBody] 3 4 diff --git a/tests/assemble.test b/tests/assemble.test index b0487e6..5c226cd 100644 --- a/tests/assemble.test +++ b/tests/assemble.test @@ -301,12 +301,12 @@ test assemble-7.1 {add, wrong # args} { -result {wrong # args*} } test assemble-7.2 {add} { - -body { + -body { assemble { push 2 push 2 add - } + } } -result {4} } @@ -349,7 +349,7 @@ test assemble-7.5 {bitwise ops} { } test assemble-7.6 {div} { -body { - assemble {push 999999; push 7; div} + assemble {push 999999; push 7; div} } -result 142857 } @@ -360,7 +360,7 @@ test assemble-7.7 {dup} { } } -result 9 -} +} test assemble-7.8 {eq} { -body { list \ @@ -638,7 +638,7 @@ test assemble-7.24 {lsetList} { test assemble-7.25 {lshift} { -body { assemble {push 16; push 4; lshift} - } + } -result 256 } test assemble-7.26 {mod} { @@ -678,7 +678,7 @@ test assemble-7.30 {pop} { test assemble-7.31 {rshift} { -body { assemble {push 257; push 4; rshift} - } + } -result 16 } test assemble-7.32 {storeArrayStk} { @@ -1201,7 +1201,7 @@ test assemble-10.7 {expr - noncompilable} { # assemble-11 - ASSEM_LVT4 (exist, existArray, dictAppend, dictLappend, # nsupvar, variable, upvar) - + test assemble-11.1 {exist - wrong # args} { -body { assemble {exist} @@ -1310,7 +1310,7 @@ test assemble-11.10 {variable} { } # assemble-12 - ASSEM_LVT1 (incr and incrArray) - + test assemble-12.1 {incr - wrong # args} { -body { assemble {incr} @@ -1743,16 +1743,16 @@ test assemble-17.9 {jump - resolve a label multiple times} { set result {} assemble { jump common - + label zero - pop + pop incrImm case 1 pop push a append result pop jump common - + label one pop incrImm case 1 @@ -1761,7 +1761,7 @@ test assemble-17.9 {jump - resolve a label multiple times} { append result pop jump common - + label common load case dup @@ -1780,7 +1780,7 @@ test assemble-17.9 {jump - resolve a label multiple times} { push 3 eq jumpTrue three - + label two pop incrImm case 1 @@ -1789,7 +1789,7 @@ test assemble-17.9 {jump - resolve a label multiple times} { append result pop jump common - + label three pop incrImm case 1 @@ -1887,7 +1887,7 @@ test assemble-17.15 {multiple passes of code resizing} { append body {label b15; push b; concat 2; nop; nop; jump c} \n append body {label d} proc x {} [list assemble $body] - } + } -body { x } @@ -2080,7 +2080,7 @@ test assemble-20.5 {lsetFlat - negative operand count} { test assemble-20.6 {lsetFlat} { -body { assemble {push b; push a; lsetFlat 2} - } + } -result b } test assemble-20.7 {lsetFlat} { @@ -3066,12 +3066,12 @@ test assemble-40.1 {unbalanced stack} { [catch { assemble { push 3 - dup - mult + dup + mult push 4 - dup - mult - pop + dup + mult + pop expon } } result] $result $::errorInfo @@ -3170,7 +3170,7 @@ test assemble-50.1 {Ulam's 3n+1 problem, TAL implementation} { load n; # max dup; # max n jump start; # max n - + label loop; # max n over 1; # max n max over 1; # max in max n @@ -3180,29 +3180,29 @@ test assemble-50.1 {Ulam's 3n+1 problem, TAL implementation} { reverse 2; # n max pop; # n dup; # n n - + label skip; # max n dup; # max n n push 2; # max n n 2 mod; # max n n%2 jumpTrue odd; # max n - + push 2; # max n 2 div; # max n/2 -> max n jump start; # max n - + label odd; # max n push 3; # max n 3 mult; # max 3*n push 1; # max 3*n 1 add; # max 3*n+1 - + label start; # max n dup; # max n n push 1; # max n n 1 neq; # max n n>1 jumpTrue loop; # max n - + pop; # max } } @@ -3232,7 +3232,7 @@ test assemble-51.3 {memory leak testing} memory { load n; # max dup; # max n jump start; # max n - + label loop; # max n over 1; # max n max over 1; # max in max n @@ -3242,29 +3242,29 @@ test assemble-51.3 {memory leak testing} memory { reverse 2; # n max pop; # n dup; # n n - + label skip; # max n dup; # max n n push 2; # max n n 2 mod; # max n n%2 jumpTrue odd; # max n - + push 2; # max n 2 div; # max n/2 -> max n jump start; # max n - + label odd; # max n push 3; # max n 3 mult; # max 3*n push 1; # max 3*n 1 add; # max 3*n+1 - + label start; # max n dup; # max n n push 1; # max n n 1 neq; # max n n>1 jumpTrue loop; # max n - + pop; # max } }} 1 diff --git a/tests/assemble1.bench b/tests/assemble1.bench index 18fd3a9..e294108 100644 --- a/tests/assemble1.bench +++ b/tests/assemble1.bench @@ -20,7 +20,7 @@ proc ulam2 {n} { load n; # max dup; # max n jump start; # max n - + label loop; # max n over 1; # max n max over 1; # max in max n @@ -30,29 +30,29 @@ proc ulam2 {n} { reverse 2; # n max pop; # n dup; # n n - + label skip; # max n dup; # max n n push 2; # max n n 2 mod; # max n n%2 jumpTrue odd; # max n - + push 2; # max n 2 div; # max n/2 -> max n jump start; # max n - + label odd; # max n push 3; # max n 3 mult; # max 3*n push 1; # max 3*n 1 add; # max 3*n+1 - + label start; # max n dup; # max n n push 1; # max n n 1 neq; # max n n>1 jumpTrue loop; # max n - + pop; # max } } @@ -60,12 +60,12 @@ set tcl_traceCompile 2; ulam2 1; set tcl_traceCompile 0 proc test1 {n} { for {set i 1} {$i <= $n} {incr i} { - ulam1 $i + ulam1 $i } } proc test2 {n} { for {set i 1} {$i <= $n} {incr i} { - ulam2 $i + ulam2 $i } } @@ -75,11 +75,10 @@ for {set j 0} {$j < 10} {incr j} { test1 30000 set after [clock microseconds] puts "compiled: [expr {1e-6 * ($after - $before)}]" - + test2 1 set before [clock microseconds] test2 30000 set after [clock microseconds] puts "assembled: [expr {1e-6 * ($after - $before)}]" } - \ No newline at end of file diff --git a/tests/autoMkindex.test b/tests/autoMkindex.test index 4721553..b42d50d 100644 --- a/tests/autoMkindex.test +++ b/tests/autoMkindex.test @@ -180,7 +180,7 @@ test autoMkindex-3.1 {slaveHook} -setup { } -cleanup { # Reset initCommands to avoid trashing other tests AutoMkindexTestReset -} -result 1 +} -result 1 # The auto_mkindex_parser::command is used to register commands that create # new commands. test autoMkindex-3.2 {auto_mkindex_parser::command} -setup { diff --git a/tests/basic.test b/tests/basic.test index 1a0037c..bff9a95 100644 --- a/tests/basic.test +++ b/tests/basic.test @@ -241,7 +241,7 @@ test basic-18.1 {TclRenameCommand, name of existing cmd can have namespace quali } list [test_ns_basic::p] \ [rename test_ns_basic::p test_ns_basic::q] \ - [test_ns_basic::q] + [test_ns_basic::q] } {{p in ::test_ns_basic} {} {p in ::test_ns_basic}} test basic-18.2 {TclRenameCommand, existing cmd must be found} { catch {namespace delete {*}[namespace children :: test_ns_*]} @@ -454,11 +454,11 @@ test basic-26.2 {Tcl_EvalObjEx, pure-list branch: preserve "objv"} -body { # a - the pure-list internal rep is destroyed by shimmering # b - the command returns an error # As the error code in Tcl_EvalObjv accesses the list elements, this will - # cause a segfault if [Bug 1119369] has not been fixed. + # cause a segfault if [Bug 1119369] has not been fixed. # NOTE: a MEM_DEBUG build may be necessary to guarantee the segfault. # - set SRC [list foo 1] ;# pure-list command + set SRC [list foo 1] ;# pure-list command proc foo str { # Shimmer pure-list to cmdName, cleanup and error proc $::SRC {} {}; $::SRC @@ -476,11 +476,11 @@ test basic-26.3 {Tcl_EvalObjEx, pure-list branch: preserve "objv"} -body { # Follow the pure-list branch in a manner that # a - the pure-list internal rep is destroyed by shimmering # b - the command accesses its command line - # This will cause a segfault if [Bug 1119369] has not been fixed. + # This will cause a segfault if [Bug 1119369] has not been fixed. # NOTE: a MEM_DEBUG build may be necessary to guarantee the segfault. # - set SRC [list foo 1] ;# pure-list command + set SRC [list foo 1] ;# pure-list command proc foo str { # Shimmer pure-list to cmdName, cleanup and error proc $::SRC {} {}; $::SRC @@ -592,7 +592,7 @@ test basic-46.2 {Tcl_AllowExceptions: exception return not allowed} -setup { invoked "break" outside of a loop while executing "break" - (file "*BREAKtest" line 3)} + (file "*BREAKtest" line 3)} test basic-46.3 {Tcl_AllowExceptions: exception return not allowed} -setup { set fName [makeFile { @@ -609,7 +609,7 @@ test basic-46.3 {Tcl_AllowExceptions: exception return not allowed} -setup { } -returnCodes error -match glob -result {invoked "break" outside of a loop while executing "break" - (file "*BREAKtest" line 4)} + (file "*BREAKtest" line 4)} test basic-46.4 {Tcl_AllowExceptions: exception return not allowed} -setup { set fName [makeFile { @@ -737,7 +737,7 @@ test basic-48.1.$noComp {expansion: parsing} $constraints { # Another comment list 1 2\ 3 {*}$::l1 - + # Comment again } } {1 2 3 a {b b} c d} @@ -810,7 +810,7 @@ test basic-48.13.$noComp {expansion: odd usage} $constraints { test basic-48.14.$noComp {expansion: hash command} -setup { catch {rename \# ""} set cmd "#" - } -constraints $constraints -body { + } -constraints $constraints -body { run { {*}$cmd apa bepa } } -cleanup { unset cmd @@ -870,7 +870,7 @@ test basic-48.16.$noComp {expansion: testing for leaks} -setup { stress set tmp $end set end [getbytes] - } + } set leak [expr {$end - $tmp}] } -cleanup { unset end i tmp @@ -881,7 +881,7 @@ test basic-48.16.$noComp {expansion: testing for leaks} -setup { test basic-48.17.$noComp {expansion: object safety} -setup { set old_precision $::tcl_precision set ::tcl_precision 4 - } -constraints $constraints -body { + } -constraints $constraints -body { set third [expr {1.0/3.0}] set l [list $third $third] set x [run {list $third {*}$l $third}] diff --git a/tests/chan.test b/tests/chan.test index d8390e2..6808453 100644 --- a/tests/chan.test +++ b/tests/chan.test @@ -135,7 +135,7 @@ test chan-16.4 {chan command: pending subcommand} -body { chan pending {input output} stdout } -returnCodes error -result "bad mode \"input output\": must be input or output" test chan-16.5 {chan command: pending input subcommand} -body { - chan pending input stdout + chan pending input stdout } -result -1 test chan-16.6 {chan command: pending input subcommand} -body { chan pending input stdin @@ -194,7 +194,7 @@ test chan-16.9 {chan command: pending input subcommand} -setup { set ::chan-16.9-data [list] set ::chan-16.9-done 0 } -body { - after idle chan-16.9-client + after idle chan-16.9-client vwait ::chan-16.9-done set ::chan-16.9-data } -result {-1 0 0 1 36 -1 0 0 1 72 -1 0 0 1 108 -1 0 0 1 144 ABC 890} -cleanup { diff --git a/tests/chanio.test b/tests/chanio.test index 2738fc6..3017e81 100644 --- a/tests/chanio.test +++ b/tests/chanio.test @@ -37,7 +37,7 @@ namespace eval ::tcl::test::io { ::tcltest::loadTestedCommands catch [list package require -exact Tcltest [info patchlevel]] - + testConstraint testchannel [llength [info commands testchannel]] testConstraint exec [llength [info commands exec]] testConstraint openpipe 1 @@ -130,10 +130,10 @@ test chan-io-1.8 {Tcl_WriteChars: WriteChars} { # Executing this test without the fix for the referenced bug applied to # tcl will cause tcl, more specifically WriteChars, to go into an infinite # loop. - set f [open $path(test2) w] - chan configure $f -encoding iso2022-jp - chan puts -nonewline $f [format %s%c [string repeat " " 4] 12399] - chan close $f + set f [open $path(test2) w] + chan configure $f -encoding iso2022-jp + chan puts -nonewline $f [format %s%c [string repeat " " 4] 12399] + chan close $f contents $path(test2) } " \x1b\$B\$O\x1b(B" test chan-io-1.9 {Tcl_WriteChars: WriteChars} { @@ -248,7 +248,7 @@ test chan-io-3.3 {WriteChars: compatibility with WriteBytes: flush on line} -bod test chan-io-3.4 {WriteChars: loop over stage buffer} { # stage buffer maps to more than can be queued at once. set f [open $path(test1) w] - chan configure $f -encoding jis0208 -buffersize 16 + chan configure $f -encoding jis0208 -buffersize 16 chan puts -nonewline $f "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" set x [list [contents $path(test1)]] chan close $f @@ -259,7 +259,7 @@ test chan-io-3.5 {WriteChars: saved != 0} { # be moved to beginning of next channel buffer to preserve requested # buffersize. set f [open $path(test1) w] - chan configure $f -encoding jis0208 -buffersize 17 + chan configure $f -encoding jis0208 -buffersize 17 chan puts -nonewline $f "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" set x [list [contents $path(test1)]] chan close $f @@ -288,7 +288,7 @@ test chan-io-3.7 {WriteChars: (bufPtr->nextAdded > bufPtr->length)} { # on flush. The truncated bytes are moved to the beginning of the next # channel buffer. set f [open $path(test1) w] - chan configure $f -encoding jis0208 -buffersize 17 + chan configure $f -encoding jis0208 -buffersize 17 chan puts -nonewline $f "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" set x [list [contents $path(test1)]] chan close $f @@ -353,7 +353,7 @@ test chan-io-4.5 {TranslateOutputEOL: crlf} { test chan-io-5.1 {CheckFlush: not full} { set f [open $path(test1) w] - chan configure $f + chan configure $f chan puts -nonewline $f "12345678901234567890" set x [list [contents $path(test1)]] chan close $f @@ -441,7 +441,7 @@ set a "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" append a $a append a $a test chan-io-6.6 {Tcl_GetsObj: loop test} -body { - # if (dst >= dstEnd) + # if (dst >= dstEnd) set f [open $path(test1) w] chan puts $f $a chan puts $f hi @@ -750,7 +750,7 @@ test chan-io-6.33 {Tcl_GetsObj: crlf mode: buffer exhausted, at eof} -body { chan close $f } -result [list 16 "123456789012345\r" 1] test chan-io-6.34 {Tcl_GetsObj: crlf mode: buffer exhausted, not followed by \n} -body { - # not (*eol == '\n') + # not (*eol == '\n') set f [open $path(test1) w] chan configure $f -translation lf chan puts -nonewline $f "123456789012345\rabcd\r\nefg" @@ -860,7 +860,7 @@ test chan-io-6.43 {Tcl_GetsObj: input saw cr} -setup { chan configure $f -buffersize 16 lappend x [chan gets $f] chan configure $f -blocking 0 - lappend x [chan gets $f line] $line [testchannel queuedcr $f] + lappend x [chan gets $f line] $line [testchannel queuedcr $f] chan configure $f -blocking 1 chan puts -nonewline $f "\nabcd\refg\x1a" lappend x [chan gets $f line] $line [testchannel queuedcr $f] @@ -871,14 +871,14 @@ test chan-io-6.43 {Tcl_GetsObj: input saw cr} -setup { test chan-io-6.44 {Tcl_GetsObj: input saw cr, not followed by cr} -setup { set x "" } -constraints {stdio testchannel openpipe fileevent} -body { - # not (*eol == '\n') + # not (*eol == '\n') set f [openpipe w+ $path(cat)] chan configure $f -translation {auto lf} -buffering none chan puts -nonewline $f "bbbbbbbbbbbbbbb\n123456789abcdef\r" chan configure $f -buffersize 16 lappend x [chan gets $f] chan configure $f -blocking 0 - lappend x [chan gets $f line] $line [testchannel queuedcr $f] + lappend x [chan gets $f line] $line [testchannel queuedcr $f] chan configure $f -blocking 1 chan puts -nonewline $f "abcd\refg\x1a" lappend x [chan gets $f line] $line [testchannel queuedcr $f] @@ -957,7 +957,7 @@ test chan-io-6.49 {Tcl_GetsObj: auto mode: \r followed by \n} -constraints {test chan close $f } -result {123456 0 8 78901} test chan-io-6.50 {Tcl_GetsObj: auto mode: \r not followed by \n} -constraints {testchannel} -body { - # not (*eol == '\n') + # not (*eol == '\n') set f [open $path(test1) w] chan configure $f -translation lf chan puts -nonewline $f "123456\r78901" @@ -1183,7 +1183,7 @@ test chan-io-8.5 {PeekAhead: don't peek if last read was short} -constraints {st chan close $f } -result {15 abcdefghijklmno 1} test chan-io-8.6 {PeekAhead: change to non-blocking mode} -constraints {stdio testchannel openpipe fileevent} -body { - # ((chanPtr->flags & CHANNEL_NONBLOCKING) == 0) + # ((chanPtr->flags & CHANNEL_NONBLOCKING) == 0) set f [openpipe w+ $path(cat)] chan configure $f -translation {auto binary} -buffersize 16 chan puts -nonewline $f "abcdefghijklmno\r" @@ -1423,7 +1423,7 @@ test chan-io-13.2 {TranslateInputEOL: crlf mode} -body { chan close $f } -result "abcd\ndef\n" test chan-io-13.3 {TranslateInputEOL: crlf mode: naked cr} -body { - # (src >= srcMax) + # (src >= srcMax) set f [open $path(test1) w] chan configure $f -translation lf chan puts -nonewline $f "abcd\r\ndef\r" @@ -1435,7 +1435,7 @@ test chan-io-13.3 {TranslateInputEOL: crlf mode: naked cr} -body { chan close $f } -result "abcd\ndef\r" test chan-io-13.4 {TranslateInputEOL: crlf mode: cr followed by not \n} -body { - # (src >= srcMax) + # (src >= srcMax) set f [open $path(test1) w] chan configure $f -translation lf chan puts -nonewline $f "abcd\r\ndef\rfgh" @@ -1447,7 +1447,7 @@ test chan-io-13.4 {TranslateInputEOL: crlf mode: cr followed by not \n} -body { chan close $f } -result "abcd\ndef\rfgh" test chan-io-13.5 {TranslateInputEOL: crlf mode: naked lf} -body { - # (src >= srcMax) + # (src >= srcMax) set f [open $path(test1) w] chan configure $f -translation lf chan puts -nonewline $f "abcd\r\ndef\nfgh" @@ -1515,7 +1515,7 @@ test chan-io-13.9 {TranslateInputEOL: auto mode: \r followed by not \n} -body { chan close $f } -result "abcd\ndef" test chan-io-13.10 {TranslateInputEOL: auto mode: \n} -body { - # not (*src == '\r') + # not (*src == '\r') set f [open $path(test1) w] chan configure $f -translation lf chan puts -nonewline $f "abcd\ndef" @@ -3901,7 +3901,7 @@ test chan-io-31.31 {Tcl_Write crlf on block boundary, Tcl_Gets crlf} -setup { } chan close $f set f [open $path(test1) r] - chan configure $f -translation crlf + chan configure $f -translation crlf while {[chan gets $f line] >= 0} { append c $line\n } @@ -5155,7 +5155,7 @@ test chan-io-39.14 {Tcl_SetChannelOption: -encoding, binary & utf-8} -setup { file delete $path(test1) } -body { set f [open $path(test1) w] - chan configure $f -encoding {} + chan configure $f -encoding {} chan puts -nonewline $f \xe7\x89\xa6 chan close $f set f [open $path(test1) r] @@ -5300,7 +5300,7 @@ test chan-io-39.23 {Tcl_GetChannelOption, server socket is not readable or\ test chan-io-39.24 {Tcl_SetChannelOption, server socket is not readable or\ writable so we can't change -eofchar or -translation} -setup { set l [list] -} -body { +} -body { set sock [socket -server [namespace code accept] -myaddr 127.0.0.1 0] chan configure $sock -eofchar D -translation lf lappend l [chan configure $sock -eofchar] \ @@ -5453,7 +5453,7 @@ test chan-io-40.13 {POSIX open access modes: WRONLY} -body { set x [list [catch {chan gets $f} msg] $msg] chan close $f lappend x [viewFile test3] -} -match glob -result {1 {channel "*" wasn't opened for reading} abzzy} +} -match glob -result {1 {channel "*" wasn't opened for reading} abzzy} test chan-io-40.14 {POSIX open access modes: RDWR} -match regexp -body { file delete $path(test3) open $path(test3) RDWR diff --git a/tests/clock.test b/tests/clock.test index 615f3a8..b2ccdf2 100644 --- a/tests/clock.test +++ b/tests/clock.test @@ -35,9 +35,9 @@ testConstraint y2038 \ # TEST PLAN # clock-1: -# [clock format] - tests of bad and empty arguments +# [clock format] - tests of bad and empty arguments # -# clock-2 +# clock-2 # formatting of year, month and day of month # # clock-3 @@ -195,7 +195,7 @@ namespace eval ::tcl::clock { l li lii liii liv lv lvi lvii lviii lix lx lxi lxii lxiii lxiv lxv lxvi lxvii lxviii lxix lxx lxxi lxxii lxxiii lxxiv lxxv lxxvi lxxvii lxxviii lxxix - lxxx lxxxi lxxxii lxxxiii lxxxiv lxxxv lxxxvi lxxxvii lxxxviii + lxxx lxxxi lxxxii lxxxiii lxxxiv lxxxv lxxxvi lxxxvii lxxxviii lxxxix xc xci xcii xciii xciv xcv xcvi xcvii xcviii xcix c @@ -271,7 +271,7 @@ test clock-1.3 "clock format - empty val" { test clock-1.4 "clock format - bad flag" {*}{ -body { list [catch {clock format 0 -oops badflag} msg] $msg $::errorCode - } + } -match glob -result {1 {bad option "-oops": must be -format, -gmt, -locale, or -timezone} {CLOCK badOption -oops}} } @@ -35221,7 +35221,7 @@ test clock-30.25 {clock add seconds at DST conversion} { test clock-31.1 {system locale} \ -constraints win \ - -setup { + -setup { namespace eval ::tcl::clock { namespace import -force ::testClock::registry } @@ -35244,7 +35244,7 @@ test clock-31.1 {system locale} \ test clock-31.2 {system locale} \ -constraints win \ - -setup { + -setup { namespace eval ::tcl::clock { namespace import -force ::testClock::registry } @@ -35267,7 +35267,7 @@ test clock-31.2 {system locale} \ test clock-31.3 {system locale} \ -constraints win \ - -setup { + -setup { namespace eval ::tcl::clock { namespace import -force ::testClock::registry } @@ -35290,7 +35290,7 @@ test clock-31.3 {system locale} \ test clock-31.4 {system locale} \ -constraints win \ - -setup { + -setup { namespace eval ::tcl::clock { namespace import -force ::testClock::registry } @@ -35327,7 +35327,7 @@ test clock-31.4 {system locale} \ test clock-31.5 {system locale} \ -constraints win \ - -setup { + -setup { namespace eval ::tcl::clock { namespace import -force ::testClock::registry } @@ -35364,7 +35364,7 @@ test clock-31.5 {system locale} \ test clock-31.6 {system locale} \ -constraints win \ - -setup { + -setup { namespace eval ::tcl::clock { namespace import -force ::testClock::registry } @@ -35434,7 +35434,7 @@ test clock-32.1 {scan/format across the Gregorian change} { } set problems } {} - + # Legacy tests # clock clicks @@ -35468,7 +35468,7 @@ test clock-33.5 {clock clicks tests, millisecond timing test} { # 60 msecs seems to be the max time slice under Windows 95/98 expr { ($end > $start) && (($end - $start) <= 60) ? - "ok" : + "ok" : "test should have taken 0-60 ms, actually took [expr $end - $start]"} } {ok} test clock-33.5a {clock tests, millisecond timing test} { @@ -35480,7 +35480,7 @@ test clock-33.5a {clock tests, millisecond timing test} { # 60 msecs seems to be the max time slice under Windows 95/98 expr { ($end > $start) && (($end - $start) <= 60) ? - "ok" : + "ok" : "test should have taken 0-60 ms, actually took [expr $end - $start]"} } {ok} test clock-33.6 {clock clicks, milli with too much abbreviation} { @@ -35804,31 +35804,31 @@ test clock-34.47 {ago with multiple relative units} { } 180000 test clock-34.48 {more than one ToD} {*}{ - -body {clock scan {10:00 11:00}} + -body {clock scan {10:00 11:00}} -returnCodes error -result {unable to convert date-time string "10:00 11:00": more than one time of day in string} } test clock-34.49 {more than one date} {*}{ - -body {clock scan {1/1/2001 2/2/2002}} + -body {clock scan {1/1/2001 2/2/2002}} -returnCodes error -result {unable to convert date-time string "1/1/2001 2/2/2002": more than one date in string} } test clock-34.50 {more than one time zone} {*}{ - -body {clock scan {10:00 EST CST}} + -body {clock scan {10:00 EST CST}} -returnCodes error -result {unable to convert date-time string "10:00 EST CST": more than one time zone in string} } test clock-34.51 {more than one weekday} {*}{ - -body {clock scan {Monday Tuesday}} + -body {clock scan {Monday Tuesday}} -returnCodes error -result {unable to convert date-time string "Monday Tuesday": more than one weekday in string} } test clock-34.52 {more than one ordinal month} {*}{ - -body {clock scan {next January next March}} + -body {clock scan {next January next March}} -returnCodes error -result {unable to convert date-time string "next January next March": more than one ordinal month in string} } @@ -35924,7 +35924,7 @@ test clock-38.2 {make sure TZ is not cached after unset} \ } } \ -result 1 - + test clock-39.1 {regression - synonym timezones} { clock format 0 -format {%H:%M:%S} -timezone :US/Eastern @@ -35996,7 +35996,7 @@ test clock-44.1 {regression test - time zone name containing hyphen } \ } } \ -result {12:34:56-0500} - + test clock-45.1 {regression test - time zone containing only two digits} \ -body { clock scan 1985-04-12T10:15:30+04 -format %Y-%m-%dT%H:%M:%S%Z @@ -36041,7 +36041,7 @@ test clock-48.1 {Bug 1185933: 'i' destroyed by clock init} -setup { test clock-49.1 {regression test - localtime with negative arg (Bug 1237907)} \ -body { - list [catch { + list [catch { clock format -86400 -timezone :localtime -format %Y } result] $result } \ @@ -36280,7 +36280,7 @@ test clock-56.1 {use of zoneinfo, version 1} {*}{ } -result {2004-01-01 00:00:00 MST} } - + test clock-56.2 {use of zoneinfo, version 2} {*}{ -setup { clock format [clock seconds] @@ -36330,7 +36330,7 @@ test clock-56.2 {use of zoneinfo, version 2} {*}{ removeFile PhoenixTwo $tzdir2 removeDirectory Test $tzdir removeDirectory zoneinfo - } + } -body { clock format 1072940400 -timezone :Test/PhoenixTwo \ -format {%Y-%m-%d %H:%M:%S %Z} @@ -36540,7 +36540,7 @@ test clock-56.3 {use of zoneinfo, version 2, Y2038 compliance} {*}{ removeFile TijuanaTwo $tzdir2 removeDirectory Test $tzdir removeDirectory zoneinfo - } + } -body { clock format 2224738800 -timezone :Test/TijuanaTwo \ -format {%Y-%m-%d %H:%M:%S %Z} @@ -36692,7 +36692,7 @@ test clock-56.4 {Bug 3470928} {*}{ removeFile Windhoek $tzdir2 removeDirectory Test $tzdir removeDirectory zoneinfo - } + } -result {Sun Jan 08 22:30:06 WAST 2012} } @@ -36703,7 +36703,7 @@ test clock-57.1 {clock scan - abbreviated options} { test clock-58.1 {clock l10n - Japanese localisation} {*}{ -setup { proc backslashify { string } { - + set retval {} foreach char [split $string {}] { scan $char %c ccode @@ -36809,52 +36809,52 @@ test clock-59.1 {military time zones} { test clock-60.1 {case insensitive weekday names} { clock scan "2000-W01 monday" -gmt true -format "%G-W%V %a" -} [clock scan "2000-W01-1" -gmt true -format "%G-W%V-%u"] +} [clock scan "2000-W01-1" -gmt true -format "%G-W%V-%u"] test clock-60.2 {case insensitive weekday names} { clock scan "2000-W01 Monday" -gmt true -format "%G-W%V %a" -} [clock scan "2000-W01-1" -gmt true -format "%G-W%V-%u"] +} [clock scan "2000-W01-1" -gmt true -format "%G-W%V-%u"] test clock-60.3 {case insensitive weekday names} { clock scan "2000-W01 MONDAY" -gmt true -format "%G-W%V %a" -} [clock scan "2000-W01-1" -gmt true -format "%G-W%V-%u"] +} [clock scan "2000-W01-1" -gmt true -format "%G-W%V-%u"] test clock-60.4 {case insensitive weekday names} { clock scan "2000-W01 friday" -gmt true -format "%G-W%V %a" -} [clock scan "2000-W01-5" -gmt true -format "%G-W%V-%u"] +} [clock scan "2000-W01-5" -gmt true -format "%G-W%V-%u"] test clock-60.5 {case insensitive weekday names} { clock scan "2000-W01 Friday" -gmt true -format "%G-W%V %a" -} [clock scan "2000-W01-5" -gmt true -format "%G-W%V-%u"] +} [clock scan "2000-W01-5" -gmt true -format "%G-W%V-%u"] test clock-60.6 {case insensitive weekday names} { clock scan "2000-W01 FRIDAY" -gmt true -format "%G-W%V %a" -} [clock scan "2000-W01-5" -gmt true -format "%G-W%V-%u"] +} [clock scan "2000-W01-5" -gmt true -format "%G-W%V-%u"] test clock-60.7 {case insensitive month names} { clock scan "1 january 2000" -gmt true -format "%d %b %Y" -} [clock scan "2000-01-01" -gmt true -format "%Y-%m-%d"] +} [clock scan "2000-01-01" -gmt true -format "%Y-%m-%d"] test clock-60.8 {case insensitive month names} { clock scan "1 January 2000" -gmt true -format "%d %b %Y" -} [clock scan "2000-01-01" -gmt true -format "%Y-%m-%d"] +} [clock scan "2000-01-01" -gmt true -format "%Y-%m-%d"] test clock-60.9 {case insensitive month names} { clock scan "1 JANUARY 2000" -gmt true -format "%d %b %Y" -} [clock scan "2000-01-01" -gmt true -format "%Y-%m-%d"] +} [clock scan "2000-01-01" -gmt true -format "%Y-%m-%d"] test clock-60.10 {case insensitive month names} { clock scan "1 december 2000" -gmt true -format "%d %b %Y" -} [clock scan "2000-12-01" -gmt true -format "%Y-%m-%d"] +} [clock scan "2000-12-01" -gmt true -format "%Y-%m-%d"] test clock-60.11 {case insensitive month names} { clock scan "1 December 2000" -gmt true -format "%d %b %Y" -} [clock scan "2000-12-01" -gmt true -format "%Y-%m-%d"] +} [clock scan "2000-12-01" -gmt true -format "%Y-%m-%d"] test clock-60.12 {case insensitive month names} { clock scan "1 DECEMBER 2000" -gmt true -format "%d %b %Y" -} [clock scan "2000-12-01" -gmt true -format "%Y-%m-%d"] +} [clock scan "2000-12-01" -gmt true -format "%Y-%m-%d"] test clock-61.1 {overflow of a wide integer on output} {*}{ -body { clock format 0x8000000000000000 -format %s -gmt true - } + } -result {integer value too large to represent} -returnCodes error } test clock-61.2 {overflow of a wide integer on output} {*}{ -body { clock format -0x8000000000000001 -format %s -gmt true - } + } -result {integer value too large to represent} -returnCodes error } diff --git a/tests/compile.test b/tests/compile.test index 46e678a..6ef697c 100644 --- a/tests/compile.test +++ b/tests/compile.test @@ -122,7 +122,7 @@ test compile-3.4 {TclCompileCatchCmd: bcc'ed [return] is caught} { proc foo {} { set fail [catch { return 1 - }] ; # {} + }] ; # {} return 2 } foo @@ -132,8 +132,8 @@ test compile-3.5 {TclCompileCatchCmd: recover from error, [Bug 705406]} { catch { if {[a]} { if b {} - } - } + } + } } list [catch foo msg] $msg } {0 1} @@ -333,13 +333,13 @@ test compile-11.9 {Tcl_Append*: ensure Tcl_ResetResult is used properly} -body { list [catch {p} msg] $msg } -returnCodes error -result {unmatched open brace in list} -# +# # Special section for tests of tclLiteral.c # The following tests check for incorrect memory handling in # TclReleaseLiteral. They are only effective when tcl is compiled with # TCL_MEM_DEBUG # -# Special test for leak on interp delete [Bug 467523]. +# Special test for leak on interp delete [Bug 467523]. test compile-12.1 {testing literal leak on interp delete} -setup { proc getbytes {} { set lines [split [memory info] "\n"] @@ -348,10 +348,10 @@ test compile-12.1 {testing literal leak on interp delete} -setup { } -constraints memory -body { set end [getbytes] for {set i 0} {$i < 5} {incr i} { - interp create foo - foo eval { + interp create foo + foo eval { namespace eval bar {} - } + } interp delete foo set tmp $end set end [getbytes] @@ -372,7 +372,7 @@ test compile-12.2 {testing error on literal deletion} -constraints {memory exec} } puts 0 } source.file] - exec [interpreter] $sourceFile + exec [interpreter] $sourceFile } -cleanup { catch {removeFile $sourceFile} } -result 0 @@ -465,7 +465,7 @@ test compile-14.1 {testing errors in element name; segfault?} {} { test compile-14.2 {testing element name "$"} -body { unset -nocomplain a set a() 1 - set a(1) 2 + set a(1) 2 set a($) 3 list [set a()] [set a(1)] [set a($)] [unset a() a(1); lindex [array names a] 0] } -cleanup {unset a} -result [list 1 2 3 {$}] diff --git a/tests/coroutine.test b/tests/coroutine.test index 205da67..86fa6e3 100644 --- a/tests/coroutine.test +++ b/tests/coroutine.test @@ -66,7 +66,7 @@ test coroutine-1.3 {yield returns new arg} -setup { incr i } } - coroutine foo ::apply [list {{start 2} {stop 10}} $body] + coroutine foo ::apply [list {{start 2} {stop 10}} $body] set res {} } -body { for {set k 1} {$k < 4} {incr k} { @@ -476,7 +476,7 @@ test coroutine-5.1 {right numLevels on coro return} -constraints {testnrelevels} expr {[lindex [testnrelevels] 1] - 1} } proc relativeLevel base { - # remove the level for this proc's call + # remove the level for this proc's call expr {[getNumLevel] - $base - 1} } proc foo {} { @@ -517,7 +517,7 @@ test coroutine-5.2 {right numLevels within coro} -constraints {testnrelevels} \ expr {[lindex [testnrelevels] 1] - 1} } proc relativeLevel base { - # remove the level for this proc's call + # remove the level for this proc's call expr {[getNumLevel] - $base - 1} } proc foo base { @@ -588,7 +588,7 @@ test coroutine-7.2 {multi-argument yielding with yieldto} -body { coroutine a corobody coroutine b corobody list [a x] [a y z] [a \{p] [a \{q r] [a] [a] [rename a {}] \ - [b ok] [rename b {}] + [b ok] [rename b {}] } -cleanup { rename corobody {} } -result {x {y z 2} \{p {\{q r 2} {} 0 {} ok {}} diff --git a/tests/encoding.test b/tests/encoding.test index 0374e2d..4dddbb5 100644 --- a/tests/encoding.test +++ b/tests/encoding.test @@ -73,7 +73,7 @@ test encoding-2.2 {Tcl_FreeEncoding: refcount != 0} -setup { } -constraints {testencoding} -body { encoding system shiftjis ;# incr ref count encoding dirs [list [pwd]] - set x [encoding convertto shiftjis \u4e4e] ;# old one found + set x [encoding convertto shiftjis \u4e4e] ;# old one found encoding system identity llength shiftjis ;# Shimmer away any cache of Tcl_Encoding lappend x [catch {encoding convertto shiftjis \u4e4e} msg] $msg @@ -182,7 +182,7 @@ test encoding-8.1 {Tcl_ExternalToUtf} { puts -nonewline $f "ab\x8c\xc1g" close $f set f [open [file join [temporaryDirectory] dummy] r] - fconfigure $f -translation binary -encoding shiftjis + fconfigure $f -translation binary -encoding shiftjis set x [read $f] close $f file delete [file join [temporaryDirectory] dummy] @@ -265,7 +265,7 @@ test encoding-11.6 {LoadEncodingFile: invalid file} -constraints {testencoding} makeDirectory tmp makeDirectory [file join tmp encoding] set f [open [file join tmp encoding splat.enc] w] - fconfigure $f -translation binary + fconfigure $f -translation binary puts $f "abcdefghijklmnop" close $f encoding convertto splat \u4e4e @@ -286,11 +286,11 @@ test encoding-12.1 {LoadTableEncoding: normal encoding} { append x [encoding convertfrom iso8859-3 \xd5] } "\xd5?\u120" test encoding-12.2 {LoadTableEncoding: single-byte encoding} { - set x [encoding convertto iso8859-3 ab\u0120g] + set x [encoding convertto iso8859-3 ab\u0120g] append x [encoding convertfrom iso8859-3 ab\xd5g] } "ab\xd5gab\u120g" test encoding-12.3 {LoadTableEncoding: multi-byte encoding} { - set x [encoding convertto shiftjis ab\u4e4eg] + set x [encoding convertto shiftjis ab\u4e4eg] append x [encoding convertfrom shiftjis ab\x8c\xc1g] } "ab\x8c\xc1gab\u4e4eg" test encoding-12.4 {LoadTableEncoding: double-byte encoding} { diff --git a/tests/execute.test b/tests/execute.test index 9a2ffbd..5b8ce2d 100644 --- a/tests/execute.test +++ b/tests/execute.test @@ -698,7 +698,7 @@ test execute-6.12 {Tcl_ExprObj: exprcode interp validation} -setup { lappend result [e $e] interp delete slave interp create slave - interp alias {} e slave expr + interp alias {} e slave expr lappend result [e $e] } -cleanup { interp delete slave @@ -1013,8 +1013,8 @@ test execute-10.3 {Bug 3072640} -setup { yield $i } } - proc t {args} { - incr ::foo + proc t {args} { + incr ::foo } trace add execution ::generate enterstep ::t } -body { diff --git a/tests/expr-old.test b/tests/expr-old.test index 06a00ba..3adfb63 100644 --- a/tests/expr-old.test +++ b/tests/expr-old.test @@ -420,13 +420,13 @@ test expr-old-21.3 {parenthesization} {expr +(3-4)} -1 # Embedded commands and variable names. -set a 16 -test expr-old-22.1 {embedded variables} {expr {2*$a}} 32 +set a 16 +test expr-old-22.1 {embedded variables} {expr {2*$a}} 32 test expr-old-22.2 {embedded variables} { set x -5 set y 10 expr {$x + $y} -} {5} +} {5} test expr-old-22.3 {embedded variables} { set x " -5" set y " +10" @@ -1120,7 +1120,7 @@ test expr-old-37.25 {Tcl_ExprDouble and NaN} \ {ieeeFloatingPoint testexprdouble} { list [catch {testexprdouble 0.0/0.0} result] $result } {1 {domain error: argument not in valid range}} - + test expr-old-38.1 {Verify Tcl_ExprString's basic operation} -constraints {testexprstring} -body { list [testexprstring "1+4"] [testexprstring "2*3+4.2"] \ [catch {testexprstring "1+"} msg] $msg diff --git a/tests/expr.test b/tests/expr.test index 4c03262..4046411 100644 --- a/tests/expr.test +++ b/tests/expr.test @@ -1429,7 +1429,7 @@ test expr-23.74.3 {INST_EXPON: Bug 2798543} { expr {(-14)**17 == (-14)**65553} } 0 - + # Some compilers get this wrong; ensure that we work around it correctly test expr-24.1 {expr edge cases; shifting} {expr int(5)>>32} 0 test expr-24.2 {expr edge cases; shifting} {expr int(5)>>63} 0 @@ -5777,7 +5777,7 @@ test expr-32.1 {expr mod basics} { 0 1 0 3 3 \ 0 -1 0 -1 -2 \ ] - + test expr-32.2 {expr div basics} { set mod_nums [list \ {-3 1} {-3 2} {-3 3} {-3 4} {-3 5} \ @@ -6776,7 +6776,7 @@ test expr-39.16 {Tcl_ExprLongObj handles overflows} \ list [catch {testexprlongobj 4294967296.} result] $result } \ -result {1 {integer value too large to represent*}} - + test expr-39.17 {Check that Tcl_ExprDoubleObj doesn't modify interpreter result if no error} testexprdoubleobj { testexprdoubleobj 4.+1. } {This is a result: 5.0} diff --git a/tests/fileSystem.test b/tests/fileSystem.test index 9fe4fe9..1941936 100644 --- a/tests/fileSystem.test +++ b/tests/fileSystem.test @@ -146,7 +146,7 @@ test filesystem-1.10 {link normalisation: double link} -constraints { [file normalize [file join dir2.link inside.file foo]] } -cleanup { file delete dir2.link -} -result ok +} -result ok makeDirectory dir2.file test filesystem-1.11 {link normalisation: double link, back in tree} {unix hasLinks} { file link dir2.link dir.link @@ -874,7 +874,7 @@ test filesystem-9.5 {path objects and file tail and object rep} -setup { } return $res } -cleanup { - file delete -force dgp + file delete -force dgp cd $origdir } -result {test test} test filesystem-9.6 {path objects and file tail and object rep} win { diff --git a/tests/history.test b/tests/history.test index c562796..1a255a4 100644 --- a/tests/history.test +++ b/tests/history.test @@ -10,7 +10,7 @@ # # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. - + if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest namespace import -force ::tcltest::* diff --git a/tests/httpd b/tests/httpd index 232e80a..c934fac 100644 --- a/tests/httpd +++ b/tests/httpd @@ -205,7 +205,7 @@ proc httpdRespond { sock } { } # Catch errors from premature client closes - + catch { if {$data(proto) == "HEAD"} { puts $sock "HTTP/1.0 200 OK" diff --git a/tests/httpold.test b/tests/httpold.test index aeba311..5995bed 100644 --- a/tests/httpold.test +++ b/tests/httpold.test @@ -36,7 +36,7 @@ if {[catch {package require http 1.0}]} { set bindata "This is binary data\x0d\x0amore\x0dmore\x0amore\x00null" catch {unset data} -## +## ## The httpd script implement a stub http server ## source [file join [file dirname [info script]] httpd] diff --git a/tests/info.test b/tests/info.test index 3057dd2..60b9e66 100644 --- a/tests/info.test +++ b/tests/info.test @@ -2099,7 +2099,7 @@ proc foo::bar {} { foreach {*}{ x y {set res [info frame 0]} - } + } return $res } test info-33.13 {{*}, literal, simple, bytecompiled} -body { @@ -2114,7 +2114,7 @@ proc foo::bar {} { if {*}{ {[return [info frame 0]]} {} - } + } } test info-33.14 {{*}, literal, simple, bytecompiled} -body { reduce [foo::bar] @@ -2128,7 +2128,7 @@ proc foo::bar {} { if 0 {*}{ {} else {return [info frame 0]} - } + } } test info-33.15 {{*}, literal, simple, bytecompiled} -body { reduce [foo::bar] @@ -2229,7 +2229,7 @@ namespace eval foo {} proc foo::bar {} { try {*}{ {set res [info frame 0]} - } + } return $res } test info-33.23 {{*}, literal, simple, bytecompiled} -body { diff --git a/tests/init.test b/tests/init.test index 41b8624..0241283 100644 --- a/tests/init.test +++ b/tests/init.test @@ -28,7 +28,7 @@ test init-1.2 {auto_qualify - absolute cmd - global} { } global test init-1.3 {auto_qualify - no colons cmd - global} { auto_qualify nocolons :: -} nocolons +} nocolons test init-1.4 {auto_qualify - no colons cmd - namespace} { auto_qualify nocolons ::sub } {::sub::nocolons nocolons} @@ -93,11 +93,11 @@ test init-2.5 {load safe:::setLogCmd - stage 2} { auto_reset catch {rename ::safe::setLogCmd {}} test init-2.6 {load setLogCmd from safe:: - stage 1} { - namespace eval safe setLogCmd + namespace eval safe setLogCmd rename ::safe::setLogCmd {} ;# should not fail } {} test init-2.7 {oad setLogCmd from safe:: - stage 2} { - namespace eval safe setLogCmd + namespace eval safe setLogCmd rename ::safe::setLogCmd {} ;# should not fail } {} test init-2.8 {load tcl::HistAdd} -setup { @@ -132,12 +132,12 @@ foreach arg [subst -nocommands -novariables { and is long enough to be truncated and " <- includes a false lead in the prune point search and must be longer still to force truncation} - {contrived example: rare circumstance + {contrived example: rare circumstance where the point at which to prune the error stack cannot be uniquely determined. foo bar foo "} - {contrived example: rare circumstance + {contrived example: rare circumstance where the point at which to prune the error stack cannot be uniquely determined. foo bar diff --git a/tests/interp.test b/tests/interp.test index 4bc9fe2..6c9fb56 100644 --- a/tests/interp.test +++ b/tests/interp.test @@ -56,7 +56,7 @@ test interp-1.8 {options for interp command} -returnCodes error -body { } -result {bad option "-froboz": must be alias, aliases, bgerror, cancel, create, debug, delete, eval, exists, expose, hide, hidden, issafe, invokehidden, limit, marktrusted, recursionlimit, slaves, share, target, or transfer} test interp-1.9 {options for interp command} -returnCodes error -body { interp -froboz -safe -} -result {bad option "-froboz": must be alias, aliases, bgerror, cancel, create, debug, delete, eval, exists, expose, hide, hidden, issafe, invokehidden, limit, marktrusted, recursionlimit, slaves, share, target, or transfer} +} -result {bad option "-froboz": must be alias, aliases, bgerror, cancel, create, debug, delete, eval, exists, expose, hide, hidden, issafe, invokehidden, limit, marktrusted, recursionlimit, slaves, share, target, or transfer} test interp-1.10 {options for interp command} -returnCodes error -body { interp target } -result {wrong # args: should be "interp target path alias"} @@ -70,7 +70,7 @@ test interp-2.2 {basic interpreter creation} { } 0 test interp-2.3 {basic interpreter creation} { catch {interp create -safe} -} 0 +} 0 test interp-2.4 {basic interpreter creation} { list [catch {interp create a} msg] $msg } {1 {interpreter named "a" already exists, cannot create}} @@ -102,7 +102,7 @@ test interp-2.11 {anonymous interps vs existing procs} { set x [interp create] regexp "interp(\[0-9]+)" $x dummy anothernum expr $anothernum > $thenum -} 1 +} 1 test interp-2.12 {anonymous interps vs existing procs} { set x [interp create -safe] regexp "interp(\[0-9]+)" $x dummy thenum @@ -844,12 +844,12 @@ test interp-18.9 {eval in deleted interp, bug 495830} { interp create tst interp alias tst suicide {} interp delete tst list [catch {tst eval {suicide; set a 5}} msg] $msg -} {1 {attempt to call eval in deleted interpreter}} +} {1 {attempt to call eval in deleted interpreter}} test interp-18.10 {eval in deleted interp, bug 495830} { interp create tst interp alias tst suicide {} interp delete tst list [catch {tst eval {set set set; suicide; $set a 5}} msg] $msg -} {1 {attempt to call eval in deleted interpreter}} +} {1 {attempt to call eval in deleted interpreter}} # Test alias deletion @@ -939,7 +939,7 @@ test interp-19.9 {alias deletion, renaming} { set l [interp eval a foo] interp delete a set l -} 1156 +} 1156 test interp-20.1 {interp hide, interp expose and interp invokehidden} { set a [interp create] @@ -1160,7 +1160,7 @@ test interp-20.21 {interp hide vs safety} { catch {interp delete a} interp create a -safe set l "" - lappend l [catch {a hide list} msg] + lappend l [catch {a hide list} msg] lappend l $msg interp delete a set l @@ -1169,7 +1169,7 @@ test interp-20.22 {interp hide vs safety} { catch {interp delete a} interp create a -safe set l "" - lappend l [catch {interp hide a list} msg] + lappend l [catch {interp hide a list} msg] lappend l $msg interp delete a set l @@ -1178,7 +1178,7 @@ test interp-20.23 {interp hide vs safety} { catch {interp delete a} interp create a -safe set l "" - lappend l [catch {a eval {interp hide {} list}} msg] + lappend l [catch {a eval {interp hide {} list}} msg] lappend l $msg interp delete a set l @@ -1188,7 +1188,7 @@ test interp-20.24 {interp hide vs safety} { interp create a -safe interp create {a b} set l "" - lappend l [catch {a eval {interp hide b list}} msg] + lappend l [catch {a eval {interp hide b list}} msg] lappend l $msg interp delete a set l @@ -1207,7 +1207,7 @@ test interp-20.26 {interp expoose vs safety} { catch {interp delete a} interp create a -safe set l "" - lappend l [catch {a hide list} msg] + lappend l [catch {a hide list} msg] lappend l $msg lappend l [catch {a expose list} msg] lappend l $msg @@ -1218,9 +1218,9 @@ test interp-20.27 {interp expose vs safety} { catch {interp delete a} interp create a -safe set l "" - lappend l [catch {interp hide a list} msg] + lappend l [catch {interp hide a list} msg] lappend l $msg - lappend l [catch {interp expose a list} msg] + lappend l [catch {interp expose a list} msg] lappend l $msg interp delete a set l @@ -1229,7 +1229,7 @@ test interp-20.28 {interp expose vs safety} { catch {interp delete a} interp create a -safe set l "" - lappend l [catch {a hide list} msg] + lappend l [catch {a hide list} msg] lappend l $msg lappend l [catch {a eval {interp expose {} list}} msg] lappend l $msg @@ -1240,9 +1240,9 @@ test interp-20.29 {interp expose vs safety} { catch {interp delete a} interp create a -safe set l "" - lappend l [catch {interp hide a list} msg] + lappend l [catch {interp hide a list} msg] lappend l $msg - lappend l [catch {a eval {interp expose {} list}} msg] + lappend l [catch {a eval {interp expose {} list}} msg] lappend l $msg interp delete a set l @@ -1252,9 +1252,9 @@ test interp-20.30 {interp expose vs safety} { interp create a -safe interp create {a b} set l "" - lappend l [catch {interp hide {a b} list} msg] + lappend l [catch {interp hide {a b} list} msg] lappend l $msg - lappend l [catch {a eval {interp expose b list}} msg] + lappend l [catch {a eval {interp expose b list}} msg] lappend l $msg interp delete a set l @@ -1264,7 +1264,7 @@ test interp-20.31 {interp expose vs safety} { interp create a -safe interp create {a b} set l "" - lappend l [catch {interp hide {a b} list} msg] + lappend l [catch {interp hide {a b} list} msg] lappend l $msg lappend l [catch {interp expose {a b} list} msg] lappend l $msg @@ -1644,7 +1644,7 @@ test interp-21.5 {interp hidden} -setup { lsort [interp hidden a] } -cleanup { interp delete a -} -result $hidden_cmds +} -result $hidden_cmds test interp-21.6 {interp hidden vs interp hide, interp expose} -setup { catch {interp delete a} set l "" @@ -2168,7 +2168,7 @@ test interp-27.1 {interp aliases & namespaces} -setup { set i [interp create] } -body { set aliasTrace {} - proc tstAlias {args} { + proc tstAlias {args} { global aliasTrace lappend aliasTrace [list [namespace current] $args] } @@ -2182,7 +2182,7 @@ test interp-27.2 {interp aliases & namespaces} -setup { set i [interp create] } -body { set aliasTrace {} - proc tstAlias {args} { + proc tstAlias {args} { global aliasTrace lappend aliasTrace [list [namespace current] $args] } @@ -2196,7 +2196,7 @@ test interp-27.3 {interp aliases & namespaces} -setup { set i [interp create] } -body { set aliasTrace {} - proc tstAlias {args} { + proc tstAlias {args} { global aliasTrace lappend aliasTrace [list [namespace current] $args] } @@ -2212,7 +2212,7 @@ test interp-27.4 {interp aliases & namespaces} -setup { } -body { namespace eval foo2 { variable aliasTrace {} - proc bar {args} { + proc bar {args} { variable aliasTrace lappend aliasTrace [list [namespace current] $args] } @@ -3289,7 +3289,7 @@ test interp-34.9 {time limits trigger in blocking after} { } msg] set t1 [clock seconds] interp delete $i - list $code $msg [expr {($t1-$t0) < 3 ? "OK" : $t1-$t0}] + list $code $msg [expr {($t1-$t0) < 3 ? "OK" : $t1-$t0}] } {1 {time limit exceeded} OK} test interp-34.10 {time limits trigger in vwaits: Bug 1221395} -body { set i [interp create] @@ -3523,7 +3523,7 @@ test interp-35.24 {interp time limits can't touch current interp} -body { test interp-36.1 {interp bgerror syntax} -body { interp bgerror } -returnCodes error -result {wrong # args: should be "interp bgerror path ?cmdPrefix?"} -test interp-36.2 {interp bgerror syntax} -body { +test interp-36.2 {interp bgerror syntax} -body { interp bgerror x y z } -returnCodes error -result {wrong # args: should be "interp bgerror path ?cmdPrefix?"} test interp-36.3 {interp bgerror syntax} -setup { diff --git a/tests/io.test b/tests/io.test index 6b6ad6d..46856b6 100644 --- a/tests/io.test +++ b/tests/io.test @@ -123,10 +123,10 @@ test io-1.8 {Tcl_WriteChars: WriteChars} { # applied to tcl will cause tcl, more specifically WriteChars, to # go into an infinite loop. - set f [open $path(test2) w] - fconfigure $f -encoding iso2022-jp - puts -nonewline $f [format %s%c [string repeat " " 4] 12399] - close $f + set f [open $path(test2) w] + fconfigure $f -encoding iso2022-jp + puts -nonewline $f [format %s%c [string repeat " " 4] 12399] + close $f contents $path(test2) } " \x1b\$B\$O\x1b(B" @@ -192,7 +192,7 @@ test io-1.9 {Tcl_WriteChars: WriteChars} { test io-2.1 {WriteBytes} { # loop until all bytes are written - + set f [open $path(test1) w] fconfigure $f -encoding binary -buffersize 16 -translation crlf puts $f "abcdefghijklmnopqrstuvwxyz" @@ -214,7 +214,7 @@ test io-2.3 {WriteBytes: flush on line} { # Tcl "line" buffering has weird behavior: if current buffer contains # a \n, entire buffer gets flushed. Logical behavior would be to flush # only up to the \n. - + set f [open $path(test1) w] fconfigure $f -encoding binary -buffering line -translation crlf puts -nonewline $f "\n12" @@ -234,7 +234,7 @@ test io-2.4 {WriteBytes: reset sawLF after each buffer} { test io-3.1 {WriteChars: compatibility with WriteBytes} { # loop until all bytes are written - + set f [open $path(test1) w] fconfigure $f -encoding ascii -buffersize 16 -translation crlf puts $f "abcdefghijklmnopqrstuvwxyz" @@ -256,7 +256,7 @@ test io-3.3 {WriteChars: compatibility with WriteBytes: flush on line} { # Tcl "line" buffering has weird behavior: if current buffer contains # a \n, entire buffer gets flushed. Logical behavior would be to flush # only up to the \n. - + set f [open $path(test1) w] fconfigure $f -encoding ascii -buffering line -translation crlf puts -nonewline $f "\n12" @@ -268,7 +268,7 @@ test io-3.4 {WriteChars: loop over stage buffer} { # stage buffer maps to more than can be queued at once. set f [open $path(test1) w] - fconfigure $f -encoding jis0208 -buffersize 16 + fconfigure $f -encoding jis0208 -buffersize 16 puts -nonewline $f "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" set x [list [contents $path(test1)]] close $f @@ -280,7 +280,7 @@ test io-3.5 {WriteChars: saved != 0} { # requested buffersize. set f [open $path(test1) w] - fconfigure $f -encoding jis0208 -buffersize 17 + fconfigure $f -encoding jis0208 -buffersize 17 puts -nonewline $f "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" set x [list [contents $path(test1)]] close $f @@ -311,7 +311,7 @@ test io-3.7 {WriteChars: (bufPtr->nextAdded > bufPtr->length)} { # of the next channel buffer. set f [open $path(test1) w] - fconfigure $f -encoding jis0208 -buffersize 17 + fconfigure $f -encoding jis0208 -buffersize 17 puts -nonewline $f "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" set x [list [contents $path(test1)]] close $f @@ -381,7 +381,7 @@ test io-4.5 {TranslateOutputEOL: crlf} { test io-5.1 {CheckFlush: not full} { set f [open $path(test1) w] - fconfigure $f + fconfigure $f puts -nonewline $f "12345678901234567890" set x [list [contents $path(test1)]] close $f @@ -470,7 +470,7 @@ set a "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" append a $a append a $a test io-6.6 {Tcl_GetsObj: loop test} { - # if (dst >= dstEnd) + # if (dst >= dstEnd) set f [open $path(test1) w] puts $f $a @@ -769,7 +769,7 @@ test io-6.32 {Tcl_GetsObj: crlf mode: buffer exhausted, more data} {testchannel} } [list 15 "123456789012345" 17 3] test io-6.33 {Tcl_GetsObj: crlf mode: buffer exhausted, at eof} { # eol still equals dstEnd - + set f [open $path(test1) w] fconfigure $f -translation lf puts -nonewline $f "123456789012345\r" @@ -781,8 +781,8 @@ test io-6.33 {Tcl_GetsObj: crlf mode: buffer exhausted, at eof} { set x } [list 16 "123456789012345\r" 1] test io-6.34 {Tcl_GetsObj: crlf mode: buffer exhausted, not followed by \n} { - # not (*eol == '\n') - + # not (*eol == '\n') + set f [open $path(test1) w] fconfigure $f -translation lf puts -nonewline $f "123456789012345\rabcd\r\nefg" @@ -889,7 +889,7 @@ test io-6.43 {Tcl_GetsObj: input saw cr} {stdio testchannel openpipe fileevent} fconfigure $f -buffersize 16 set x [list [gets $f]] fconfigure $f -blocking 0 - lappend x [gets $f line] $line [testchannel queuedcr $f] + lappend x [gets $f line] $line [testchannel queuedcr $f] fconfigure $f -blocking 1 puts -nonewline $f "\nabcd\refg\x1a" lappend x [gets $f line] $line [testchannel queuedcr $f] @@ -898,7 +898,7 @@ test io-6.43 {Tcl_GetsObj: input saw cr} {stdio testchannel openpipe fileevent} set x } [list "bbbbbbbbbbbbbbb" 15 "123456789abcdef" 1 4 "abcd" 0 3 "efg"] test io-6.44 {Tcl_GetsObj: input saw cr, not followed by cr} {stdio testchannel openpipe fileevent} { - # not (*eol == '\n') + # not (*eol == '\n') set f [open "|[list [interpreter] $path(cat)]" w+] fconfigure $f -translation {auto lf} -buffering none @@ -906,7 +906,7 @@ test io-6.44 {Tcl_GetsObj: input saw cr, not followed by cr} {stdio testchannel fconfigure $f -buffersize 16 set x [list [gets $f]] fconfigure $f -blocking 0 - lappend x [gets $f line] $line [testchannel queuedcr $f] + lappend x [gets $f line] $line [testchannel queuedcr $f] fconfigure $f -blocking 1 puts -nonewline $f "abcd\refg\x1a" lappend x [gets $f line] $line [testchannel queuedcr $f] @@ -959,10 +959,10 @@ test io-6.47 {Tcl_GetsObj: auto mode: \r at end of buffer, peek for \n} {testcha set x [list [gets $f] [testchannel inputbuffered $f]] close $f set x -} [list "123456789012345" 15] +} [list "123456789012345" 15] test io-6.48 {Tcl_GetsObj: auto mode: \r at end of buffer, no more avail} {testchannel} { # PeekAhead() did not get any, so (eol >= dstEnd) - + set f [open $path(test1) w] fconfigure $f -translation lf puts -nonewline $f "123456789012345\r" @@ -975,7 +975,7 @@ test io-6.48 {Tcl_GetsObj: auto mode: \r at end of buffer, no more avail} {testc } [list "123456789012345" 1] test io-6.49 {Tcl_GetsObj: auto mode: \r followed by \n} {testchannel} { # if (*eol == '\n') {skip++} - + set f [open $path(test1) w] fconfigure $f -translation lf puts -nonewline $f "123456\r\n78901" @@ -986,8 +986,8 @@ test io-6.49 {Tcl_GetsObj: auto mode: \r followed by \n} {testchannel} { set x } [list "123456" 0 8 "78901"] test io-6.50 {Tcl_GetsObj: auto mode: \r not followed by \n} {testchannel} { - # not (*eol == '\n') - + # not (*eol == '\n') + set f [open $path(test1) w] fconfigure $f -translation lf puts -nonewline $f "123456\r78901" @@ -999,7 +999,7 @@ test io-6.50 {Tcl_GetsObj: auto mode: \r not followed by \n} {testchannel} { } [list "123456" 0 7 "78901"] test io-6.51 {Tcl_GetsObj: auto mode: \n} { # else if (*eol == '\n') {goto gotoeol;} - + set f [open $path(test1) w] fconfigure $f -translation lf puts -nonewline $f "123456\n78901" @@ -1092,7 +1092,7 @@ test io-7.1 {FilterInputBytes: split up character at end of buffer} { } "1234567890123\uff10\uff11\uff12\uff13\uff14" test io-7.2 {FilterInputBytes: split up character in middle of buffer} { # (bufPtr->nextAdded < bufPtr->bufLength) - + set f [open $path(test1) w] fconfigure $f -encoding binary puts -nonewline $f "1234567890\n123\x82\x4f\x82\x50\x82" @@ -1201,7 +1201,7 @@ test io-8.4 {PeekAhead: cached data available in this buffer} { set x [gets $f] close $f - set x + set x } $a unset a test io-8.5 {PeekAhead: don't peek if last read was short} {stdio testchannel openpipe fileevent} { @@ -1217,7 +1217,7 @@ test io-8.5 {PeekAhead: don't peek if last read was short} {stdio testchannel op set x } {15 abcdefghijklmno 1} test io-8.6 {PeekAhead: change to non-blocking mode} {stdio testchannel openpipe fileevent} { - # ((chanPtr->flags & CHANNEL_NONBLOCKING) == 0) + # ((chanPtr->flags & CHANNEL_NONBLOCKING) == 0) set f [open "|[list [interpreter] $path(cat)]" w+] fconfigure $f -translation {auto binary} -buffersize 16 @@ -1574,7 +1574,7 @@ test io-13.2 {TranslateInputEOL: crlf mode} { set x } "abcd\ndef\n" test io-13.3 {TranslateInputEOL: crlf mode: naked cr} { - # (src >= srcMax) + # (src >= srcMax) set f [open $path(test1) w] fconfigure $f -translation lf @@ -1587,7 +1587,7 @@ test io-13.3 {TranslateInputEOL: crlf mode: naked cr} { set x } "abcd\ndef\r" test io-13.4 {TranslateInputEOL: crlf mode: cr followed by not \n} { - # (src >= srcMax) + # (src >= srcMax) set f [open $path(test1) w] fconfigure $f -translation lf @@ -1600,7 +1600,7 @@ test io-13.4 {TranslateInputEOL: crlf mode: cr followed by not \n} { set x } "abcd\ndef\rfgh" test io-13.5 {TranslateInputEOL: crlf mode: naked lf} { - # (src >= srcMax) + # (src >= srcMax) set f [open $path(test1) w] fconfigure $f -translation lf @@ -1715,7 +1715,7 @@ test io-13.9 {TranslateInputEOL: auto mode: \r followed by not \n} { set x } "abcd\ndef" test io-13.10 {TranslateInputEOL: auto mode: \n} { - # not (*src == '\r') + # not (*src == '\r') set f [open $path(test1) w] fconfigure $f -translation lf @@ -2064,7 +2064,7 @@ test io-20.1 {Tcl_CreateChannel: initial settings} { encoding system $old close $a set x -} {ascii} +} {ascii} test io-20.2 {Tcl_CreateChannel: initial settings} {win} { set f [open $path(test1) w+] set x [list [fconfigure $f -eofchar] [fconfigure $f -translation]] @@ -2159,7 +2159,7 @@ test io-26.1 {Tcl_GetChannelInstanceData} {stdio openpipe} { set f [open "|[list [interpreter] << exit]"] expr [pid $f] close $f -} {} +} {} # Test flushing. The functions tested here are FlushChannel. @@ -3057,7 +3057,7 @@ test io-30.6 {Tcl_Write cr, Tcl_Read crlf} { fconfigure $f -translation crlf set x [read $f] close $f - set x + set x } "hello\rthere\rand\rhere\r" test io-30.7 {Tcl_Write crlf, Tcl_Read crlf} { file delete $path(test1) @@ -3985,7 +3985,7 @@ test io-31.31 {Tcl_Write crlf on block boundary, Tcl_Gets crlf} { } close $f set f [open $path(test1) r] - fconfigure $f -translation crlf + fconfigure $f -translation crlf set c "" while {[gets $f line] >= 0} { append c $line\n @@ -5467,7 +5467,7 @@ test io-39.13 {Tcl_SetChannelOption, Tcl_GetChannelOption, buffer size} { test io-39.14 {Tcl_SetChannelOption: -encoding, binary & utf-8} { file delete $path(test1) set f [open $path(test1) w] - fconfigure $f -encoding {} + fconfigure $f -encoding {} puts -nonewline $f \xe7\x89\xa6 close $f set f [open $path(test1) r] diff --git a/tests/ioTrans.test b/tests/ioTrans.test index e179eab..63a609f 100644 --- a/tests/ioTrans.test +++ b/tests/ioTrans.test @@ -1318,7 +1318,7 @@ proc inthread {chan script args} { # forwarded channel operations. set ::tres "" - thread::send -async $tid { + thread::send -async $tid { after 50 catch {s} res; # This runs the script, 's' was defined at (*) thread::send -async $mid [list set ::tres $res] diff --git a/tests/iogt.test b/tests/iogt.test index 1ed89f7..aa579bf 100644 --- a/tests/iogt.test +++ b/tests/iogt.test @@ -5,7 +5,7 @@ # # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. -# +# # Copyright (c) 2000 Ajuba Solutions. # Copyright (c) 2000 Andreas Kupries. # All rights reserved. diff --git a/tests/lindex.test b/tests/lindex.test index b86e2e0..29eb898 100644 --- a/tests/lindex.test +++ b/tests/lindex.test @@ -432,7 +432,7 @@ test lindex-16.7 {data reuse} { test lindex-17.0 {Bug 1718580} {*}{ -body { lindex {} end foo - } + } -match glob -result {bad index "foo"*} -returnCodes 1 @@ -441,7 +441,7 @@ test lindex-17.0 {Bug 1718580} {*}{ test lindex-17.1 {Bug 1718580} {*}{ -body { lindex a end foo - } + } -match glob -result {bad index "foo"*} -returnCodes 1 diff --git a/tests/lmap.test b/tests/lmap.test index 08035d9..641eac2 100644 --- a/tests/lmap.test +++ b/tests/lmap.test @@ -220,10 +220,10 @@ test lmap-4.14 {lmap errors} -returnCodes error -body { } -result {list element in braces followed by "3" instead of space} unset -nocomplain a test lmap-4.15 {lmap errors} { - apply {{} { + apply {{} { set a(0) 44 - list [catch {lmap a {1 2 3} {}} msg o] $msg $::errorInfo - }} + list [catch {lmap a {1 2 3} {}} msg o] $msg $::errorInfo + }} } {1 {can't set "a": variable is array} {can't set "a": variable is array while executing "lmap a {1 2 3} {}"}} diff --git a/tests/lrange.test b/tests/lrange.test index 17a757e..02b9c65 100644 --- a/tests/lrange.test +++ b/tests/lrange.test @@ -63,7 +63,7 @@ test lrange-1.15 {range of list elements} { } {"a b \{\ "} # emacs highlighting bug workaround --> " test lrange-1.16 {list element quoting} { - lrange {[append a .b]} 0 end + lrange {[append a .b]} 0 end } {{[append} a .b\]} test lrange-2.1 {error conditions} { diff --git a/tests/lrepeat.test b/tests/lrepeat.test index 788bb9b..e89f1b7 100644 --- a/tests/lrepeat.test +++ b/tests/lrepeat.test @@ -40,7 +40,7 @@ test lrepeat-1.4 {error cases} { lrepeat -3 1 } -returnCodes 1 - -result {bad count "-3": must be integer >= 0} + -result {bad count "-3": must be integer >= 0} } test lrepeat-1.5 {Accept zero repetitions (TIP 323)} { -body { @@ -53,7 +53,7 @@ test lrepeat-1.6 {error cases} { lrepeat 3.5 1 } -returnCodes 1 - -result {expected integer but got "3.5"} + -result {expected integer but got "3.5"} } test lrepeat-1.7 {Accept zero repetitions (TIP 323)} { -body { diff --git a/tests/lsearch.test b/tests/lsearch.test index f36e987..b2c1812 100644 --- a/tests/lsearch.test +++ b/tests/lsearch.test @@ -404,16 +404,16 @@ test lsearch-17.2 {lsearch -index option, basic functionality} { lsearch -index 1 -exact {{a c} {a b} {a a}} a } 2 test lsearch-17.3 {lsearch -index option, basic functionality} { - lsearch -index 1 -glob {{ab cb} {ab bb} {ab ab}} b* + lsearch -index 1 -glob {{ab cb} {ab bb} {ab ab}} b* } 1 test lsearch-17.4 {lsearch -index option, basic functionality} { lsearch -index 1 -regexp {{ab cb} {ab bb} {ab ab}} {[cb]b} -} 0 +} 0 test lsearch-17.5 {lsearch -index option, basic functionality} { lsearch -all -index 0 -exact {{a c} {a b} {d a}} a } {0 1} test lsearch-17.6 {lsearch -index option, basic functionality} { - lsearch -all -index 1 -glob {{ab cb} {ab bb} {db bx}} b* + lsearch -all -index 1 -glob {{ab cb} {ab bb} {db bx}} b* } {1 2} test lsearch-17.7 {lsearch -index option, basic functionality} { lsearch -all -index 1 -regexp {{ab cb} {ab bb} {ab ab}} {[cb]b} @@ -426,11 +426,11 @@ test lsearch-18.2 {lsearch -index option, list as index basic functionality} { lsearch -index {2 0} -exact {{{x x} {x b} {a d}} {{a c} {a b} {a a}}} a } 0 test lsearch-18.3 {lsearch -index option, list as index basic functionality} { - lsearch -index {1 1} -glob {{{ab cb} {ab bb} {ab ab}} {{ab cb} {ab bb} {ab ab}}} b* + lsearch -index {1 1} -glob {{{ab cb} {ab bb} {ab ab}} {{ab cb} {ab bb} {ab ab}}} b* } 0 test lsearch-18.4 {lsearch -index option, list as index basic functionality} { lsearch -index {0 1} -regexp {{{ab cb} {ab bb} {ab ab}} {{ab cb} {ab bb} {ab ab}}} {[cb]b} -} 0 +} 0 test lsearch-18.5 {lsearch -index option, list as index basic functionality} { lsearch -all -index {0 0} -exact {{{a c} {a b} {d a}} {{a c} {a b} {d a}}} a } {0 1} @@ -442,11 +442,11 @@ test lsearch-19.2 {lsearch -sunindices option} { lsearch -subindices -index {2 0} -exact {{{x x} {x b} {a d}} {{a c} {a b} {a a}}} a } {0 2 0} test lsearch-19.3 {lsearch -sunindices option} { - lsearch -subindices -index {1 1} -glob {{{ab cb} {ab bb} {ab ab}} {{ab cb} {ab bb} {ab ab}}} b* + lsearch -subindices -index {1 1} -glob {{{ab cb} {ab bb} {ab ab}} {{ab cb} {ab bb} {ab ab}}} b* } {0 1 1} test lsearch-19.4 {lsearch -sunindices option} { lsearch -subindices -index {0 1} -regexp {{{ab cb} {ab bb} {ab ab}} {{ab cb} {ab bb} {ab ab}}} {[cb]b} -} {0 0 1} +} {0 0 1} test lsearch-19.5 {lsearch -sunindices option} { lsearch -subindices -all -index {0 0} -exact {{{a c} {a b} {d a}} {{a c} {a b} {d a}}} a } {{0 0 0} {1 0 0}} diff --git a/tests/lsetComp.test b/tests/lsetComp.test index 6846cbf..6330de4 100644 --- a/tests/lsetComp.test +++ b/tests/lsetComp.test @@ -22,7 +22,7 @@ if {[lsearch [namespace children] ::tcltest] == -1} { proc evalInProc { script } { proc testProc {} $script set status [catch { - testProc + testProc } result] rename testProc {} return [list $status $result] @@ -60,69 +60,69 @@ test lsetComp-2.3 {lset, compiled, list of args, scalar, one-byte offset} { test lsetComp-2.4 {lset, compiled, list of args, scalar, four-byte offset} { evalInProc { - set x0 0; set x1 0; set x2 0; set x3 0; - set x4 0; set x5 0; set x6 0; set x7 0; - set x8 0; set x9 0; set x10 0; set x11 0; - set x12 0; set x13 0; set x14 0; set x15 0; - set x16 0; set x17 0; set x18 0; set x19 0; - set x20 0; set x21 0; set x22 0; set x23 0; - set x24 0; set x25 0; set x26 0; set x27 0; - set x28 0; set x29 0; set x30 0; set x31 0; - set x32 0; set x33 0; set x34 0; set x35 0; - set x36 0; set x37 0; set x38 0; set x39 0; - set x40 0; set x41 0; set x42 0; set x43 0; - set x44 0; set x45 0; set x46 0; set x47 0; - set x48 0; set x49 0; set x50 0; set x51 0; - set x52 0; set x53 0; set x54 0; set x55 0; - set x56 0; set x57 0; set x58 0; set x59 0; - set x60 0; set x61 0; set x62 0; set x63 0; - set x64 0; set x65 0; set x66 0; set x67 0; - set x68 0; set x69 0; set x70 0; set x71 0; - set x72 0; set x73 0; set x74 0; set x75 0; - set x76 0; set x77 0; set x78 0; set x79 0; - set x80 0; set x81 0; set x82 0; set x83 0; - set x84 0; set x85 0; set x86 0; set x87 0; - set x88 0; set x89 0; set x90 0; set x91 0; - set x92 0; set x93 0; set x94 0; set x95 0; - set x96 0; set x97 0; set x98 0; set x99 0; - set x100 0; set x101 0; set x102 0; set x103 0; - set x104 0; set x105 0; set x106 0; set x107 0; - set x108 0; set x109 0; set x110 0; set x111 0; - set x112 0; set x113 0; set x114 0; set x115 0; - set x116 0; set x117 0; set x118 0; set x119 0; - set x120 0; set x121 0; set x122 0; set x123 0; - set x124 0; set x125 0; set x126 0; set x127 0; - set x128 0; set x129 0; set x130 0; set x131 0; - set x132 0; set x133 0; set x134 0; set x135 0; - set x136 0; set x137 0; set x138 0; set x139 0; - set x140 0; set x141 0; set x142 0; set x143 0; - set x144 0; set x145 0; set x146 0; set x147 0; - set x148 0; set x149 0; set x150 0; set x151 0; - set x152 0; set x153 0; set x154 0; set x155 0; - set x156 0; set x157 0; set x158 0; set x159 0; - set x160 0; set x161 0; set x162 0; set x163 0; - set x164 0; set x165 0; set x166 0; set x167 0; - set x168 0; set x169 0; set x170 0; set x171 0; - set x172 0; set x173 0; set x174 0; set x175 0; - set x176 0; set x177 0; set x178 0; set x179 0; - set x180 0; set x181 0; set x182 0; set x183 0; - set x184 0; set x185 0; set x186 0; set x187 0; - set x188 0; set x189 0; set x190 0; set x191 0; - set x192 0; set x193 0; set x194 0; set x195 0; - set x196 0; set x197 0; set x198 0; set x199 0; - set x200 0; set x201 0; set x202 0; set x203 0; - set x204 0; set x205 0; set x206 0; set x207 0; - set x208 0; set x209 0; set x210 0; set x211 0; - set x212 0; set x213 0; set x214 0; set x215 0; - set x216 0; set x217 0; set x218 0; set x219 0; - set x220 0; set x221 0; set x222 0; set x223 0; - set x224 0; set x225 0; set x226 0; set x227 0; - set x228 0; set x229 0; set x230 0; set x231 0; - set x232 0; set x233 0; set x234 0; set x235 0; - set x236 0; set x237 0; set x238 0; set x239 0; - set x240 0; set x241 0; set x242 0; set x243 0; - set x244 0; set x245 0; set x246 0; set x247 0; - set x248 0; set x249 0; set x250 0; set x251 0; + set x0 0; set x1 0; set x2 0; set x3 0; + set x4 0; set x5 0; set x6 0; set x7 0; + set x8 0; set x9 0; set x10 0; set x11 0; + set x12 0; set x13 0; set x14 0; set x15 0; + set x16 0; set x17 0; set x18 0; set x19 0; + set x20 0; set x21 0; set x22 0; set x23 0; + set x24 0; set x25 0; set x26 0; set x27 0; + set x28 0; set x29 0; set x30 0; set x31 0; + set x32 0; set x33 0; set x34 0; set x35 0; + set x36 0; set x37 0; set x38 0; set x39 0; + set x40 0; set x41 0; set x42 0; set x43 0; + set x44 0; set x45 0; set x46 0; set x47 0; + set x48 0; set x49 0; set x50 0; set x51 0; + set x52 0; set x53 0; set x54 0; set x55 0; + set x56 0; set x57 0; set x58 0; set x59 0; + set x60 0; set x61 0; set x62 0; set x63 0; + set x64 0; set x65 0; set x66 0; set x67 0; + set x68 0; set x69 0; set x70 0; set x71 0; + set x72 0; set x73 0; set x74 0; set x75 0; + set x76 0; set x77 0; set x78 0; set x79 0; + set x80 0; set x81 0; set x82 0; set x83 0; + set x84 0; set x85 0; set x86 0; set x87 0; + set x88 0; set x89 0; set x90 0; set x91 0; + set x92 0; set x93 0; set x94 0; set x95 0; + set x96 0; set x97 0; set x98 0; set x99 0; + set x100 0; set x101 0; set x102 0; set x103 0; + set x104 0; set x105 0; set x106 0; set x107 0; + set x108 0; set x109 0; set x110 0; set x111 0; + set x112 0; set x113 0; set x114 0; set x115 0; + set x116 0; set x117 0; set x118 0; set x119 0; + set x120 0; set x121 0; set x122 0; set x123 0; + set x124 0; set x125 0; set x126 0; set x127 0; + set x128 0; set x129 0; set x130 0; set x131 0; + set x132 0; set x133 0; set x134 0; set x135 0; + set x136 0; set x137 0; set x138 0; set x139 0; + set x140 0; set x141 0; set x142 0; set x143 0; + set x144 0; set x145 0; set x146 0; set x147 0; + set x148 0; set x149 0; set x150 0; set x151 0; + set x152 0; set x153 0; set x154 0; set x155 0; + set x156 0; set x157 0; set x158 0; set x159 0; + set x160 0; set x161 0; set x162 0; set x163 0; + set x164 0; set x165 0; set x166 0; set x167 0; + set x168 0; set x169 0; set x170 0; set x171 0; + set x172 0; set x173 0; set x174 0; set x175 0; + set x176 0; set x177 0; set x178 0; set x179 0; + set x180 0; set x181 0; set x182 0; set x183 0; + set x184 0; set x185 0; set x186 0; set x187 0; + set x188 0; set x189 0; set x190 0; set x191 0; + set x192 0; set x193 0; set x194 0; set x195 0; + set x196 0; set x197 0; set x198 0; set x199 0; + set x200 0; set x201 0; set x202 0; set x203 0; + set x204 0; set x205 0; set x206 0; set x207 0; + set x208 0; set x209 0; set x210 0; set x211 0; + set x212 0; set x213 0; set x214 0; set x215 0; + set x216 0; set x217 0; set x218 0; set x219 0; + set x220 0; set x221 0; set x222 0; set x223 0; + set x224 0; set x225 0; set x226 0; set x227 0; + set x228 0; set x229 0; set x230 0; set x231 0; + set x232 0; set x233 0; set x234 0; set x235 0; + set x236 0; set x237 0; set x238 0; set x239 0; + set x240 0; set x241 0; set x242 0; set x243 0; + set x244 0; set x245 0; set x246 0; set x247 0; + set x248 0; set x249 0; set x250 0; set x251 0; set x252 0; set x253 0; set x254 0; set x255 0; set x {{1 2} {3 4}} lset x {1 1} 5 @@ -145,69 +145,69 @@ test lsetComp-2.6 {lset, compiled, list of args, array, one-byte offset} { test lsetComp-2.7 {lset, compiled, list of args, array, four-byte offset} { evalInProc { - set x0 0; set x1 0; set x2 0; set x3 0; - set x4 0; set x5 0; set x6 0; set x7 0; - set x8 0; set x9 0; set x10 0; set x11 0; - set x12 0; set x13 0; set x14 0; set x15 0; - set x16 0; set x17 0; set x18 0; set x19 0; - set x20 0; set x21 0; set x22 0; set x23 0; - set x24 0; set x25 0; set x26 0; set x27 0; - set x28 0; set x29 0; set x30 0; set x31 0; - set x32 0; set x33 0; set x34 0; set x35 0; - set x36 0; set x37 0; set x38 0; set x39 0; - set x40 0; set x41 0; set x42 0; set x43 0; - set x44 0; set x45 0; set x46 0; set x47 0; - set x48 0; set x49 0; set x50 0; set x51 0; - set x52 0; set x53 0; set x54 0; set x55 0; - set x56 0; set x57 0; set x58 0; set x59 0; - set x60 0; set x61 0; set x62 0; set x63 0; - set x64 0; set x65 0; set x66 0; set x67 0; - set x68 0; set x69 0; set x70 0; set x71 0; - set x72 0; set x73 0; set x74 0; set x75 0; - set x76 0; set x77 0; set x78 0; set x79 0; - set x80 0; set x81 0; set x82 0; set x83 0; - set x84 0; set x85 0; set x86 0; set x87 0; - set x88 0; set x89 0; set x90 0; set x91 0; - set x92 0; set x93 0; set x94 0; set x95 0; - set x96 0; set x97 0; set x98 0; set x99 0; - set x100 0; set x101 0; set x102 0; set x103 0; - set x104 0; set x105 0; set x106 0; set x107 0; - set x108 0; set x109 0; set x110 0; set x111 0; - set x112 0; set x113 0; set x114 0; set x115 0; - set x116 0; set x117 0; set x118 0; set x119 0; - set x120 0; set x121 0; set x122 0; set x123 0; - set x124 0; set x125 0; set x126 0; set x127 0; - set x128 0; set x129 0; set x130 0; set x131 0; - set x132 0; set x133 0; set x134 0; set x135 0; - set x136 0; set x137 0; set x138 0; set x139 0; - set x140 0; set x141 0; set x142 0; set x143 0; - set x144 0; set x145 0; set x146 0; set x147 0; - set x148 0; set x149 0; set x150 0; set x151 0; - set x152 0; set x153 0; set x154 0; set x155 0; - set x156 0; set x157 0; set x158 0; set x159 0; - set x160 0; set x161 0; set x162 0; set x163 0; - set x164 0; set x165 0; set x166 0; set x167 0; - set x168 0; set x169 0; set x170 0; set x171 0; - set x172 0; set x173 0; set x174 0; set x175 0; - set x176 0; set x177 0; set x178 0; set x179 0; - set x180 0; set x181 0; set x182 0; set x183 0; - set x184 0; set x185 0; set x186 0; set x187 0; - set x188 0; set x189 0; set x190 0; set x191 0; - set x192 0; set x193 0; set x194 0; set x195 0; - set x196 0; set x197 0; set x198 0; set x199 0; - set x200 0; set x201 0; set x202 0; set x203 0; - set x204 0; set x205 0; set x206 0; set x207 0; - set x208 0; set x209 0; set x210 0; set x211 0; - set x212 0; set x213 0; set x214 0; set x215 0; - set x216 0; set x217 0; set x218 0; set x219 0; - set x220 0; set x221 0; set x222 0; set x223 0; - set x224 0; set x225 0; set x226 0; set x227 0; - set x228 0; set x229 0; set x230 0; set x231 0; - set x232 0; set x233 0; set x234 0; set x235 0; - set x236 0; set x237 0; set x238 0; set x239 0; - set x240 0; set x241 0; set x242 0; set x243 0; - set x244 0; set x245 0; set x246 0; set x247 0; - set x248 0; set x249 0; set x250 0; set x251 0; + set x0 0; set x1 0; set x2 0; set x3 0; + set x4 0; set x5 0; set x6 0; set x7 0; + set x8 0; set x9 0; set x10 0; set x11 0; + set x12 0; set x13 0; set x14 0; set x15 0; + set x16 0; set x17 0; set x18 0; set x19 0; + set x20 0; set x21 0; set x22 0; set x23 0; + set x24 0; set x25 0; set x26 0; set x27 0; + set x28 0; set x29 0; set x30 0; set x31 0; + set x32 0; set x33 0; set x34 0; set x35 0; + set x36 0; set x37 0; set x38 0; set x39 0; + set x40 0; set x41 0; set x42 0; set x43 0; + set x44 0; set x45 0; set x46 0; set x47 0; + set x48 0; set x49 0; set x50 0; set x51 0; + set x52 0; set x53 0; set x54 0; set x55 0; + set x56 0; set x57 0; set x58 0; set x59 0; + set x60 0; set x61 0; set x62 0; set x63 0; + set x64 0; set x65 0; set x66 0; set x67 0; + set x68 0; set x69 0; set x70 0; set x71 0; + set x72 0; set x73 0; set x74 0; set x75 0; + set x76 0; set x77 0; set x78 0; set x79 0; + set x80 0; set x81 0; set x82 0; set x83 0; + set x84 0; set x85 0; set x86 0; set x87 0; + set x88 0; set x89 0; set x90 0; set x91 0; + set x92 0; set x93 0; set x94 0; set x95 0; + set x96 0; set x97 0; set x98 0; set x99 0; + set x100 0; set x101 0; set x102 0; set x103 0; + set x104 0; set x105 0; set x106 0; set x107 0; + set x108 0; set x109 0; set x110 0; set x111 0; + set x112 0; set x113 0; set x114 0; set x115 0; + set x116 0; set x117 0; set x118 0; set x119 0; + set x120 0; set x121 0; set x122 0; set x123 0; + set x124 0; set x125 0; set x126 0; set x127 0; + set x128 0; set x129 0; set x130 0; set x131 0; + set x132 0; set x133 0; set x134 0; set x135 0; + set x136 0; set x137 0; set x138 0; set x139 0; + set x140 0; set x141 0; set x142 0; set x143 0; + set x144 0; set x145 0; set x146 0; set x147 0; + set x148 0; set x149 0; set x150 0; set x151 0; + set x152 0; set x153 0; set x154 0; set x155 0; + set x156 0; set x157 0; set x158 0; set x159 0; + set x160 0; set x161 0; set x162 0; set x163 0; + set x164 0; set x165 0; set x166 0; set x167 0; + set x168 0; set x169 0; set x170 0; set x171 0; + set x172 0; set x173 0; set x174 0; set x175 0; + set x176 0; set x177 0; set x178 0; set x179 0; + set x180 0; set x181 0; set x182 0; set x183 0; + set x184 0; set x185 0; set x186 0; set x187 0; + set x188 0; set x189 0; set x190 0; set x191 0; + set x192 0; set x193 0; set x194 0; set x195 0; + set x196 0; set x197 0; set x198 0; set x199 0; + set x200 0; set x201 0; set x202 0; set x203 0; + set x204 0; set x205 0; set x206 0; set x207 0; + set x208 0; set x209 0; set x210 0; set x211 0; + set x212 0; set x213 0; set x214 0; set x215 0; + set x216 0; set x217 0; set x218 0; set x219 0; + set x220 0; set x221 0; set x222 0; set x223 0; + set x224 0; set x225 0; set x226 0; set x227 0; + set x228 0; set x229 0; set x230 0; set x231 0; + set x232 0; set x233 0; set x234 0; set x235 0; + set x236 0; set x237 0; set x238 0; set x239 0; + set x240 0; set x241 0; set x242 0; set x243 0; + set x244 0; set x245 0; set x246 0; set x247 0; + set x248 0; set x249 0; set x250 0; set x251 0; set x252 0; set x253 0; set x254 0; set x255 0; set y(0) {{1 2} {3 4}} lset y(0) {1 1} 5 @@ -253,69 +253,69 @@ test lsetComp-3.3 {lset, compiled, flat args, scalar, one-byte offset} { test lsetComp-3.4 {lset, compiled, scalar, four-byte offset} { evalInProc { - set x0 0; set x1 0; set x2 0; set x3 0; - set x4 0; set x5 0; set x6 0; set x7 0; - set x8 0; set x9 0; set x10 0; set x11 0; - set x12 0; set x13 0; set x14 0; set x15 0; - set x16 0; set x17 0; set x18 0; set x19 0; - set x20 0; set x21 0; set x22 0; set x23 0; - set x24 0; set x25 0; set x26 0; set x27 0; - set x28 0; set x29 0; set x30 0; set x31 0; - set x32 0; set x33 0; set x34 0; set x35 0; - set x36 0; set x37 0; set x38 0; set x39 0; - set x40 0; set x41 0; set x42 0; set x43 0; - set x44 0; set x45 0; set x46 0; set x47 0; - set x48 0; set x49 0; set x50 0; set x51 0; - set x52 0; set x53 0; set x54 0; set x55 0; - set x56 0; set x57 0; set x58 0; set x59 0; - set x60 0; set x61 0; set x62 0; set x63 0; - set x64 0; set x65 0; set x66 0; set x67 0; - set x68 0; set x69 0; set x70 0; set x71 0; - set x72 0; set x73 0; set x74 0; set x75 0; - set x76 0; set x77 0; set x78 0; set x79 0; - set x80 0; set x81 0; set x82 0; set x83 0; - set x84 0; set x85 0; set x86 0; set x87 0; - set x88 0; set x89 0; set x90 0; set x91 0; - set x92 0; set x93 0; set x94 0; set x95 0; - set x96 0; set x97 0; set x98 0; set x99 0; - set x100 0; set x101 0; set x102 0; set x103 0; - set x104 0; set x105 0; set x106 0; set x107 0; - set x108 0; set x109 0; set x110 0; set x111 0; - set x112 0; set x113 0; set x114 0; set x115 0; - set x116 0; set x117 0; set x118 0; set x119 0; - set x120 0; set x121 0; set x122 0; set x123 0; - set x124 0; set x125 0; set x126 0; set x127 0; - set x128 0; set x129 0; set x130 0; set x131 0; - set x132 0; set x133 0; set x134 0; set x135 0; - set x136 0; set x137 0; set x138 0; set x139 0; - set x140 0; set x141 0; set x142 0; set x143 0; - set x144 0; set x145 0; set x146 0; set x147 0; - set x148 0; set x149 0; set x150 0; set x151 0; - set x152 0; set x153 0; set x154 0; set x155 0; - set x156 0; set x157 0; set x158 0; set x159 0; - set x160 0; set x161 0; set x162 0; set x163 0; - set x164 0; set x165 0; set x166 0; set x167 0; - set x168 0; set x169 0; set x170 0; set x171 0; - set x172 0; set x173 0; set x174 0; set x175 0; - set x176 0; set x177 0; set x178 0; set x179 0; - set x180 0; set x181 0; set x182 0; set x183 0; - set x184 0; set x185 0; set x186 0; set x187 0; - set x188 0; set x189 0; set x190 0; set x191 0; - set x192 0; set x193 0; set x194 0; set x195 0; - set x196 0; set x197 0; set x198 0; set x199 0; - set x200 0; set x201 0; set x202 0; set x203 0; - set x204 0; set x205 0; set x206 0; set x207 0; - set x208 0; set x209 0; set x210 0; set x211 0; - set x212 0; set x213 0; set x214 0; set x215 0; - set x216 0; set x217 0; set x218 0; set x219 0; - set x220 0; set x221 0; set x222 0; set x223 0; - set x224 0; set x225 0; set x226 0; set x227 0; - set x228 0; set x229 0; set x230 0; set x231 0; - set x232 0; set x233 0; set x234 0; set x235 0; - set x236 0; set x237 0; set x238 0; set x239 0; - set x240 0; set x241 0; set x242 0; set x243 0; - set x244 0; set x245 0; set x246 0; set x247 0; - set x248 0; set x249 0; set x250 0; set x251 0; + set x0 0; set x1 0; set x2 0; set x3 0; + set x4 0; set x5 0; set x6 0; set x7 0; + set x8 0; set x9 0; set x10 0; set x11 0; + set x12 0; set x13 0; set x14 0; set x15 0; + set x16 0; set x17 0; set x18 0; set x19 0; + set x20 0; set x21 0; set x22 0; set x23 0; + set x24 0; set x25 0; set x26 0; set x27 0; + set x28 0; set x29 0; set x30 0; set x31 0; + set x32 0; set x33 0; set x34 0; set x35 0; + set x36 0; set x37 0; set x38 0; set x39 0; + set x40 0; set x41 0; set x42 0; set x43 0; + set x44 0; set x45 0; set x46 0; set x47 0; + set x48 0; set x49 0; set x50 0; set x51 0; + set x52 0; set x53 0; set x54 0; set x55 0; + set x56 0; set x57 0; set x58 0; set x59 0; + set x60 0; set x61 0; set x62 0; set x63 0; + set x64 0; set x65 0; set x66 0; set x67 0; + set x68 0; set x69 0; set x70 0; set x71 0; + set x72 0; set x73 0; set x74 0; set x75 0; + set x76 0; set x77 0; set x78 0; set x79 0; + set x80 0; set x81 0; set x82 0; set x83 0; + set x84 0; set x85 0; set x86 0; set x87 0; + set x88 0; set x89 0; set x90 0; set x91 0; + set x92 0; set x93 0; set x94 0; set x95 0; + set x96 0; set x97 0; set x98 0; set x99 0; + set x100 0; set x101 0; set x102 0; set x103 0; + set x104 0; set x105 0; set x106 0; set x107 0; + set x108 0; set x109 0; set x110 0; set x111 0; + set x112 0; set x113 0; set x114 0; set x115 0; + set x116 0; set x117 0; set x118 0; set x119 0; + set x120 0; set x121 0; set x122 0; set x123 0; + set x124 0; set x125 0; set x126 0; set x127 0; + set x128 0; set x129 0; set x130 0; set x131 0; + set x132 0; set x133 0; set x134 0; set x135 0; + set x136 0; set x137 0; set x138 0; set x139 0; + set x140 0; set x141 0; set x142 0; set x143 0; + set x144 0; set x145 0; set x146 0; set x147 0; + set x148 0; set x149 0; set x150 0; set x151 0; + set x152 0; set x153 0; set x154 0; set x155 0; + set x156 0; set x157 0; set x158 0; set x159 0; + set x160 0; set x161 0; set x162 0; set x163 0; + set x164 0; set x165 0; set x166 0; set x167 0; + set x168 0; set x169 0; set x170 0; set x171 0; + set x172 0; set x173 0; set x174 0; set x175 0; + set x176 0; set x177 0; set x178 0; set x179 0; + set x180 0; set x181 0; set x182 0; set x183 0; + set x184 0; set x185 0; set x186 0; set x187 0; + set x188 0; set x189 0; set x190 0; set x191 0; + set x192 0; set x193 0; set x194 0; set x195 0; + set x196 0; set x197 0; set x198 0; set x199 0; + set x200 0; set x201 0; set x202 0; set x203 0; + set x204 0; set x205 0; set x206 0; set x207 0; + set x208 0; set x209 0; set x210 0; set x211 0; + set x212 0; set x213 0; set x214 0; set x215 0; + set x216 0; set x217 0; set x218 0; set x219 0; + set x220 0; set x221 0; set x222 0; set x223 0; + set x224 0; set x225 0; set x226 0; set x227 0; + set x228 0; set x229 0; set x230 0; set x231 0; + set x232 0; set x233 0; set x234 0; set x235 0; + set x236 0; set x237 0; set x238 0; set x239 0; + set x240 0; set x241 0; set x242 0; set x243 0; + set x244 0; set x245 0; set x246 0; set x247 0; + set x248 0; set x249 0; set x250 0; set x251 0; set x252 0; set x253 0; set x254 0; set x255 0; set x {{1 2} {3 4}} lset x 1 1 5 @@ -338,69 +338,69 @@ test lsetComp-3.6 {lset, compiled, flat args, array, one-byte offset} { test lsetComp-3.7 {lset, compiled, flat args, array, four-byte offset} { evalInProc { - set x0 0; set x1 0; set x2 0; set x3 0; - set x4 0; set x5 0; set x6 0; set x7 0; - set x8 0; set x9 0; set x10 0; set x11 0; - set x12 0; set x13 0; set x14 0; set x15 0; - set x16 0; set x17 0; set x18 0; set x19 0; - set x20 0; set x21 0; set x22 0; set x23 0; - set x24 0; set x25 0; set x26 0; set x27 0; - set x28 0; set x29 0; set x30 0; set x31 0; - set x32 0; set x33 0; set x34 0; set x35 0; - set x36 0; set x37 0; set x38 0; set x39 0; - set x40 0; set x41 0; set x42 0; set x43 0; - set x44 0; set x45 0; set x46 0; set x47 0; - set x48 0; set x49 0; set x50 0; set x51 0; - set x52 0; set x53 0; set x54 0; set x55 0; - set x56 0; set x57 0; set x58 0; set x59 0; - set x60 0; set x61 0; set x62 0; set x63 0; - set x64 0; set x65 0; set x66 0; set x67 0; - set x68 0; set x69 0; set x70 0; set x71 0; - set x72 0; set x73 0; set x74 0; set x75 0; - set x76 0; set x77 0; set x78 0; set x79 0; - set x80 0; set x81 0; set x82 0; set x83 0; - set x84 0; set x85 0; set x86 0; set x87 0; - set x88 0; set x89 0; set x90 0; set x91 0; - set x92 0; set x93 0; set x94 0; set x95 0; - set x96 0; set x97 0; set x98 0; set x99 0; - set x100 0; set x101 0; set x102 0; set x103 0; - set x104 0; set x105 0; set x106 0; set x107 0; - set x108 0; set x109 0; set x110 0; set x111 0; - set x112 0; set x113 0; set x114 0; set x115 0; - set x116 0; set x117 0; set x118 0; set x119 0; - set x120 0; set x121 0; set x122 0; set x123 0; - set x124 0; set x125 0; set x126 0; set x127 0; - set x128 0; set x129 0; set x130 0; set x131 0; - set x132 0; set x133 0; set x134 0; set x135 0; - set x136 0; set x137 0; set x138 0; set x139 0; - set x140 0; set x141 0; set x142 0; set x143 0; - set x144 0; set x145 0; set x146 0; set x147 0; - set x148 0; set x149 0; set x150 0; set x151 0; - set x152 0; set x153 0; set x154 0; set x155 0; - set x156 0; set x157 0; set x158 0; set x159 0; - set x160 0; set x161 0; set x162 0; set x163 0; - set x164 0; set x165 0; set x166 0; set x167 0; - set x168 0; set x169 0; set x170 0; set x171 0; - set x172 0; set x173 0; set x174 0; set x175 0; - set x176 0; set x177 0; set x178 0; set x179 0; - set x180 0; set x181 0; set x182 0; set x183 0; - set x184 0; set x185 0; set x186 0; set x187 0; - set x188 0; set x189 0; set x190 0; set x191 0; - set x192 0; set x193 0; set x194 0; set x195 0; - set x196 0; set x197 0; set x198 0; set x199 0; - set x200 0; set x201 0; set x202 0; set x203 0; - set x204 0; set x205 0; set x206 0; set x207 0; - set x208 0; set x209 0; set x210 0; set x211 0; - set x212 0; set x213 0; set x214 0; set x215 0; - set x216 0; set x217 0; set x218 0; set x219 0; - set x220 0; set x221 0; set x222 0; set x223 0; - set x224 0; set x225 0; set x226 0; set x227 0; - set x228 0; set x229 0; set x230 0; set x231 0; - set x232 0; set x233 0; set x234 0; set x235 0; - set x236 0; set x237 0; set x238 0; set x239 0; - set x240 0; set x241 0; set x242 0; set x243 0; - set x244 0; set x245 0; set x246 0; set x247 0; - set x248 0; set x249 0; set x250 0; set x251 0; + set x0 0; set x1 0; set x2 0; set x3 0; + set x4 0; set x5 0; set x6 0; set x7 0; + set x8 0; set x9 0; set x10 0; set x11 0; + set x12 0; set x13 0; set x14 0; set x15 0; + set x16 0; set x17 0; set x18 0; set x19 0; + set x20 0; set x21 0; set x22 0; set x23 0; + set x24 0; set x25 0; set x26 0; set x27 0; + set x28 0; set x29 0; set x30 0; set x31 0; + set x32 0; set x33 0; set x34 0; set x35 0; + set x36 0; set x37 0; set x38 0; set x39 0; + set x40 0; set x41 0; set x42 0; set x43 0; + set x44 0; set x45 0; set x46 0; set x47 0; + set x48 0; set x49 0; set x50 0; set x51 0; + set x52 0; set x53 0; set x54 0; set x55 0; + set x56 0; set x57 0; set x58 0; set x59 0; + set x60 0; set x61 0; set x62 0; set x63 0; + set x64 0; set x65 0; set x66 0; set x67 0; + set x68 0; set x69 0; set x70 0; set x71 0; + set x72 0; set x73 0; set x74 0; set x75 0; + set x76 0; set x77 0; set x78 0; set x79 0; + set x80 0; set x81 0; set x82 0; set x83 0; + set x84 0; set x85 0; set x86 0; set x87 0; + set x88 0; set x89 0; set x90 0; set x91 0; + set x92 0; set x93 0; set x94 0; set x95 0; + set x96 0; set x97 0; set x98 0; set x99 0; + set x100 0; set x101 0; set x102 0; set x103 0; + set x104 0; set x105 0; set x106 0; set x107 0; + set x108 0; set x109 0; set x110 0; set x111 0; + set x112 0; set x113 0; set x114 0; set x115 0; + set x116 0; set x117 0; set x118 0; set x119 0; + set x120 0; set x121 0; set x122 0; set x123 0; + set x124 0; set x125 0; set x126 0; set x127 0; + set x128 0; set x129 0; set x130 0; set x131 0; + set x132 0; set x133 0; set x134 0; set x135 0; + set x136 0; set x137 0; set x138 0; set x139 0; + set x140 0; set x141 0; set x142 0; set x143 0; + set x144 0; set x145 0; set x146 0; set x147 0; + set x148 0; set x149 0; set x150 0; set x151 0; + set x152 0; set x153 0; set x154 0; set x155 0; + set x156 0; set x157 0; set x158 0; set x159 0; + set x160 0; set x161 0; set x162 0; set x163 0; + set x164 0; set x165 0; set x166 0; set x167 0; + set x168 0; set x169 0; set x170 0; set x171 0; + set x172 0; set x173 0; set x174 0; set x175 0; + set x176 0; set x177 0; set x178 0; set x179 0; + set x180 0; set x181 0; set x182 0; set x183 0; + set x184 0; set x185 0; set x186 0; set x187 0; + set x188 0; set x189 0; set x190 0; set x191 0; + set x192 0; set x193 0; set x194 0; set x195 0; + set x196 0; set x197 0; set x198 0; set x199 0; + set x200 0; set x201 0; set x202 0; set x203 0; + set x204 0; set x205 0; set x206 0; set x207 0; + set x208 0; set x209 0; set x210 0; set x211 0; + set x212 0; set x213 0; set x214 0; set x215 0; + set x216 0; set x217 0; set x218 0; set x219 0; + set x220 0; set x221 0; set x222 0; set x223 0; + set x224 0; set x225 0; set x226 0; set x227 0; + set x228 0; set x229 0; set x230 0; set x231 0; + set x232 0; set x233 0; set x234 0; set x235 0; + set x236 0; set x237 0; set x238 0; set x239 0; + set x240 0; set x241 0; set x242 0; set x243 0; + set x244 0; set x245 0; set x246 0; set x247 0; + set x248 0; set x249 0; set x250 0; set x251 0; set x252 0; set x253 0; set x254 0; set x255 0; set y(0) {{1 2} {3 4}} lset y(0) 1 1 5 diff --git a/tests/main.test b/tests/main.test index 351fd4f..96af066 100644 --- a/tests/main.test +++ b/tests/main.test @@ -719,7 +719,7 @@ namespace eval ::tcl::test::main { } -result "Exit MainLoop\nIn exit\neven 0\n" test Tcl_Main-5.9 { - Tcl_Main: interactive mode: delete interp + Tcl_Main: interactive mode: delete interp -> main loop & exit handlers, but no [exit] } -constraints { exec Tcltest diff --git a/tests/misc.test b/tests/misc.test index d4ece74..db8b14a 100644 --- a/tests/misc.test +++ b/tests/misc.test @@ -25,7 +25,7 @@ testConstraint testhashsystemhash [llength [info commands testhashsystemhash]] test misc-1.1 {error in variable ref. in command in array reference} { proc tstProc {} { global a - + set tst $a([winfo name $zz]) # this is a bogus comment # this is a bogus comment @@ -42,7 +42,7 @@ test misc-1.1 {error in variable ref. in command in array reference} { test misc-1.2 {error in variable ref. in command in array reference} { proc tstProc {} " global a - + set tst \$a(\[winfo name \$\{zz) # this is a bogus comment # this is a bogus comment diff --git a/tests/msgcat.test b/tests/msgcat.test index 8647f9c..f50ebfb 100644 --- a/tests/msgcat.test +++ b/tests/msgcat.test @@ -51,7 +51,7 @@ namespace eval ::msgcat::test { variable body variable result variable setVars - foreach setVars [PowerSet $envVars] { + foreach setVars [PowerSet $envVars] { set result [string tolower [lindex $setVars 0]] if {[string length $result] == 0} { if {[info exists ::tcl::mac::locale]} { @@ -93,7 +93,7 @@ namespace eval ::msgcat::test { incr count } unset -nocomplain result - + # Could add tests of initialization from Windows registry here. # Use a fake registry package. @@ -293,11 +293,11 @@ namespace eval ::msgcat::test { variable count 2 variable result array set result { - foo,ov0 ov0_ROOT foo,ov1 ov1_foo foo,ov2 ov2_foo + foo,ov0 ov0_ROOT foo,ov1 ov1_foo foo,ov2 ov2_foo foo,ov3 ov3_foo foo,ov4 ov4 - foo_BAR,ov0 ov0_ROOT foo_BAR,ov1 ov1_foo foo_BAR,ov2 ov2_foo_BAR - foo_BAR,ov3 ov3_foo_BAR foo_BAR,ov4 ov4 - foo_BAR_baz,ov0 ov0_ROOT foo_BAR_baz,ov1 ov1_foo + foo_BAR,ov0 ov0_ROOT foo_BAR,ov1 ov1_foo foo_BAR,ov2 ov2_foo_BAR + foo_BAR,ov3 ov3_foo_BAR foo_BAR,ov4 ov4 + foo_BAR_baz,ov0 ov0_ROOT foo_BAR_baz,ov1 ov1_foo foo_BAR_baz,ov2 ov2_foo_BAR foo_BAR_baz,ov3 ov3_foo_BAR_baz foo_BAR_baz,ov4 ov4 } @@ -416,12 +416,12 @@ namespace eval ::msgcat::test { variable locale [mclocale] ::msgcat::mclocale "" ::msgcat::mcloadedlocales clear - ::msgcat::mcpackageconfig unset mcfolder + ::msgcat::mcpackageconfig unset mcfolder mclocale $loc } -cleanup { mclocale $locale ::msgcat::mcloadedlocales clear - ::msgcat::mcpackageconfig unset mcfolder + ::msgcat::mcpackageconfig unset mcfolder } -body { mcload $msgdir } -result [expr { $count+1 }] @@ -436,7 +436,7 @@ namespace eval ::msgcat::test { } -cleanup { mclocale $locale mcloadedlocales clear - mcpackageconfig unset mcfolder + mcpackageconfig unset mcfolder } -body { mcload $msgdir } -result 3 @@ -447,7 +447,7 @@ namespace eval ::msgcat::test { } -cleanup { mclocale $locale mcloadedlocales clear - mcpackageconfig unset mcfolder + mcpackageconfig unset mcfolder } -body { mcload $msgdir } -result 1 @@ -516,7 +516,7 @@ namespace eval ::msgcat::test { } -cleanup { mclocale $locale mcloadedlocales clear - mcpackageconfig unset mcfolder + mcpackageconfig unset mcfolder } -body { mclocale foo mcpackageconfig set mcfolder $msgdir @@ -535,7 +535,7 @@ namespace eval ::msgcat::test { # Tests msgcat-6.*: [mcset], [mc] namespace inheritance # # Test mcset and mc, ensuring that resolution for messages -# proceeds from the current ns to its parent and so on to the +# proceeds from the current ns to its parent and so on to the # global ns. # # Do this for the 12 permutations of @@ -579,7 +579,7 @@ namespace eval ::msgcat::test { ::msgcat::mcset foo ov3 "ov3_foo_bar_baz" } } - + } variable locale [mclocale] mclocale foo @@ -688,12 +688,12 @@ namespace eval ::msgcat::test { mcexists } -returnCodes 1\ -result {wrong # args: should be "mcexists ?-exactnamespace? ?-exactlocale? src"} - + test msgcat-9.2 {mcexists unknown option} -body { - mcexists -unknown src + mcexists -unknown src } -returnCodes 1\ -result {unknown option "-unknown"} - + test msgcat-9.3 {mcexists} -setup { mcforgetpackage variable locale [mclocale] @@ -715,7 +715,7 @@ namespace eval ::msgcat::test { } -body { list [mcexists k1] [mcexists -exactlocale k1] } -result {1 0} - + test msgcat-9.5 {mcexists parent namespace} -setup { mcforgetpackage variable locale [mclocale] @@ -729,19 +729,19 @@ namespace eval ::msgcat::test { [::msgcat::mcexists -exactnamespace k1] } } -result {1 0} - + # Tests msgcat-10.*: [mcloadedlocales] test msgcat-10.1 {mcloadedlocales no arg} -body { mcloadedlocales } -returnCodes 1\ -result {wrong # args: should be "mcloadedlocales subcommand"} - + test msgcat-10.2 {mcloadedlocales wrong subcommand} -body { mcloadedlocales junk } -returnCodes 1\ -result {unknown subcommand "junk": must be clear, or loaded} - + test msgcat-10.3 {mcloadedlocales loaded} -setup { mcforgetpackage variable locale [mclocale] @@ -754,7 +754,7 @@ namespace eval ::msgcat::test { # The result is position independent so sort set resultlist [lsort [mcloadedlocales loaded]] } -result {{} foo foo_bar} - + test msgcat-10.4 {mcloadedlocales clear} -setup { mcforgetpackage variable locale [mclocale] @@ -960,9 +960,9 @@ namespace eval ::msgcat::test { } -result {0 0 1 0} # option mcfolder is already tested with 5.11 - + # Tests msgcat-14.*: callbacks: loadcmd, changecmd, unknowncmd - + # This routine is used as bgerror and by direct callback invocation proc callbackproc args { variable resultvariable @@ -973,7 +973,7 @@ namespace eval ::msgcat::test { } set bgerrorsaved [interp bgerror {}] interp bgerror {} [namespace code callbackproc] - + test msgcat-14.1 {invokation loadcmd} -setup { mcforgetpackage mclocale $locale diff --git a/tests/namespace.test b/tests/namespace.test index cded1f4..47c8001 100644 --- a/tests/namespace.test +++ b/tests/namespace.test @@ -56,7 +56,7 @@ test namespace-2.2 {Tcl_GetCurrentNamespace} { test namespace-3.1 {Tcl_GetGlobalNamespace} { namespace eval test_ns_1 {namespace eval foo {namespace eval bar {} } } - # namespace children uses Tcl_GetGlobalNamespace + # namespace children uses Tcl_GetGlobalNamespace namespace eval test_ns_1 {namespace children foo b*} } {::test_ns_1::foo::bar} @@ -106,7 +106,7 @@ test namespace-6.2 {Tcl_CreateNamespace, odd number of :'s in name is okay} { [namespace eval test_ns_2:::::foo {namespace current}] } {::test_ns_1::foo ::test_ns_2::foo} test namespace-6.3 {Tcl_CreateNamespace, trailing ::s in ns name are ignored} { - list [catch {namespace eval test_ns_7::: {namespace current}} msg] $msg + list [catch {namespace eval test_ns_7::: {namespace current}} msg] $msg } {0 ::test_ns_7} test namespace-6.4 {Tcl_CreateNamespace, trailing ::s in ns name are ignored} { catch {namespace delete {*}[namespace children :: test_ns_*]} @@ -264,7 +264,7 @@ test namespace-8.5 {TclTeardownNamespace: preserve errorInfo; errorCode values} invoked from within "slave eval error foo bar baz"} test namespace-8.6 {TclTeardownNamespace: preserve errorInfo; errorCode values} { - interp create slave + interp create slave slave eval {trace add variable errorCode write {namespace delete :: ;#}} catch {slave eval error foo bar baz} interp delete slave @@ -971,17 +971,17 @@ test namespace-22.5 {NamespaceCodeCmd, in other namespace} { namespace code cmd } } {::namespace inscope ::test_ns_1 cmd} -test namespace-22.6 {NamespaceCodeCmd, in other namespace} { - namespace eval test_ns_1 { - variable v 42 - } - namespace eval test_ns_2 { - proc namespace args {} - } - namespace eval test_ns_2 [namespace eval test_ns_1 { - namespace code {set v} - }] -} {42} +test namespace-22.6 {NamespaceCodeCmd, in other namespace} { + namespace eval test_ns_1 { + variable v 42 + } + namespace eval test_ns_2 { + proc namespace args {} + } + namespace eval test_ns_2 [namespace eval test_ns_1 { + namespace code {set v} + }] +} {42} test namespace-22.7 {NamespaceCodeCmd, Bug 3202171} { namespace eval demo { proc namespace args {puts $args} @@ -1449,7 +1449,7 @@ test namespace-40.1 {Ignoring namespace proc "unknown"} -setup { namespace eval ns {proc unknown args {return local}} list [namespace eval ns aaa bbb] [namespace eval ns aaa] } -cleanup { - rename unknown {} + rename unknown {} rename _unknown unknown namespace delete ns } -result {global global} @@ -1460,7 +1460,7 @@ test namespace-41.1 {Shadowing byte-compiled commands, Bug: 231259} { set res {} proc test {} { set ::g 0 - } + } lappend ::res [test] proc set {a b} { ::set a [incr b] diff --git a/tests/nre.test b/tests/nre.test index 9df5eb1..3313df5 100644 --- a/tests/nre.test +++ b/tests/nre.test @@ -29,9 +29,9 @@ if {[testConstraint testnrelevels]} { namespace path ::tcl::mathop # # [testnrelevels] returns a 6-list with: C-stack depth, iPtr->numlevels, - # cmdFrame level, callFrame level, tosPtr and callback depth + # cmdFrame level, callFrame level, tosPtr and callback depth # - variable last [testnrelevels] + variable last [testnrelevels] proc depthDiff {} { variable last set depth [testnrelevels] @@ -327,7 +327,7 @@ test nre-8.1 {nre and {*}} -body { } -cleanup { rename inner {} rename outer {} -} -result {1 1 1} +} -result {1 1 1} test nre-8.2 {nre and {*}, [Bug 2415422]} -body { # force an expansion that grows the evaluation stack, check that nre # adapts the bcFramePtr. This causes an NRE assertion to fail if it is not diff --git a/tests/obj.test b/tests/obj.test index 151abfb..7bf00f7 100644 --- a/tests/obj.test +++ b/tests/obj.test @@ -26,7 +26,7 @@ testConstraint wideBiggerThanInt [expr {wide(0x80000000) != int(0x80000000)}] test obj-1.1 {Tcl_AppendAllObjTypes, and InitTypeTable, Tcl_RegisterObjType} testobj { set r 1 foreach {t} { - {array search} + {array search} bytearray bytecode cmdName @@ -82,7 +82,7 @@ test obj-6.1 {Tcl_DuplicateObj, object has internal rep} testobj { set result "" lappend result [testobj freeallvars] lappend result [testintobj set 1 47] - lappend result [testobj duplicate 1 2] + lappend result [testobj duplicate 1 2] lappend result [testintobj get 2] lappend result [testobj refcount 1] lappend result [testobj refcount 2] @@ -91,7 +91,7 @@ test obj-6.2 {Tcl_DuplicateObj, "empty string" object} testobj { set result "" lappend result [testobj freeallvars] lappend result [testobj newobj 1] - lappend result [testobj duplicate 1 2] + lappend result [testobj duplicate 1 2] lappend result [testintobj get 2] lappend result [testobj refcount 1] lappend result [testobj refcount 2] diff --git a/tests/oo.test b/tests/oo.test index 895f7ed..9491f78 100644 --- a/tests/oo.test +++ b/tests/oo.test @@ -280,7 +280,7 @@ test oo-1.18.2 {Bug 21c144f0f5} -setup { } } -cleanup { interp delete slave -} +} test oo-1.19 {basic test of OO functionality: teardown order} -body { oo::object create o namespace delete [info object namespace o] @@ -1989,7 +1989,7 @@ test oo-15.10 {variable binding must not bleed through oo::copy} -setup { } -body { set obj1 [FooClass new] oo::objdefine $obj1 { - variable var + variable var method m {} { set var foo } @@ -2619,7 +2619,7 @@ test oo-20.10 {OO: variable and varname methods refer to same things} -setup { test oo-20.11 {OO: variable mustn't crash when recursing} -body { oo::class create A { constructor {name} { - my variable np_name + my variable np_name set np_name $name } method copy {nm} { @@ -2634,7 +2634,7 @@ test oo-20.11 {OO: variable mustn't crash when recursing} -body { lappend objs [$ref copy {}] } $cpy prop $var $objs - } else { + } else { $cpy prop $var $val } } diff --git a/tests/parse.test b/tests/parse.test index d73c725..287c392 100644 --- a/tests/parse.test +++ b/tests/parse.test @@ -369,7 +369,7 @@ test parse-8.8 {Tcl_EvalObjv procedure, async handlers} -constraints { variable ::aresult variable ::acode proc async1 {result code} { - variable ::aresult + variable ::aresult variable ::acode set aresult $result set acode $code diff --git a/tests/parseExpr.test b/tests/parseExpr.test index ef05454..fda25b7 100644 --- a/tests/parseExpr.test +++ b/tests/parseExpr.test @@ -768,11 +768,11 @@ test parseExpr-21.8 {error messages} -body { expr {0o8x} } -returnCodes error -match glob -result {*invalid octal number*} test parseExpr-21.9 {error messages} -body { - expr {"} + expr {"} } -returnCodes error -result {missing " in expression """} test parseExpr-21.10 {error messages} -body { - expr \{ + expr \{ } -returnCodes error -result "missing close-brace in expression \"\{\"" test parseExpr-21.11 {error messages} -body { diff --git a/tests/pkgMkIndex.test b/tests/pkgMkIndex.test index 84c82ce..8ff806c 100644 --- a/tests/pkgMkIndex.test +++ b/tests/pkgMkIndex.test @@ -231,7 +231,7 @@ proc pkgtest::runCreatedIndex {rv args} { set result [list 0 [makePkgList [parseIndex $idxFile]]] } err]} { set result [list 1 $err] - } + } file delete $idxFile } else { set result $rv diff --git a/tests/platform.test b/tests/platform.test index c826444..5838a41 100644 --- a/tests/platform.test +++ b/tests/platform.test @@ -51,12 +51,12 @@ test platform-2.1 {tcl_platform(wordSize) indicates size of native word} { test platform-3.1 {CPU ID on Windows/UNIX} \ -constraints testCPUID \ - -body { + -body { set cpudata [testcpuid 0] binary format iii \ [lindex $cpudata 1] \ [lindex $cpudata 3] \ - [lindex $cpudata 2] + [lindex $cpudata 2] } \ -match regexp \ -result {^(?:AuthenticAMD|CentaurHauls|CyrixInstead|GenuineIntel)$} diff --git a/tests/proc.test b/tests/proc.test index e06720e..bae5e15 100644 --- a/tests/proc.test +++ b/tests/proc.test @@ -99,7 +99,7 @@ test proc-1.6 {Tcl_ProcObjCmd, namespace code ignores single ":"s in middle or e test proc-1.7 {Tcl_ProcObjCmd, check that formal parameter names are not array elements} -setup { catch {rename p ""} } -returnCodes error -body { - proc p {a(1) a(2)} { + proc p {a(1) a(2)} { set z [expr $a(1)+$a(2)] puts "$z=z, $a(1)=$a(1)" } @@ -107,7 +107,7 @@ test proc-1.7 {Tcl_ProcObjCmd, check that formal parameter names are not array e test proc-1.8 {Tcl_ProcObjCmd, check that formal parameter names are simple names} -setup { catch {rename p ""} } -body { - proc p {b:a b::a} { + proc p {b:a b::a} { } } -returnCodes error -result {formal parameter "b::a" is not a simple name} @@ -329,7 +329,7 @@ test proc-5.1 {Bytecompiling noop; test for correct argument substitution} -body } -cleanup { catch {rename p ""} catch {rename t ""} -} -result {aba} +} -result {aba} test proc-6.1 {ProcessProcResultCode: Bug 647307 (negative return code)} -body { proc a {} {return -code -5} diff --git a/tests/reg.test b/tests/reg.test index d040632..b9dc538 100644 --- a/tests/reg.test +++ b/tests/reg.test @@ -49,9 +49,9 @@ catch [list package require -exact Tcltest [info patchlevel]] # subexpressions, checking where empty substrings are located, # etc. should be done using expectIndices and expectPartial. -# The flag characters are complex and a bit eclectic. Generally speaking, +# The flag characters are complex and a bit eclectic. Generally speaking, # lowercase letters are compile options, uppercase are expected re_info -# bits, and nonalphabetics are match options, controls for how the test is +# bits, and nonalphabetics are match options, controls for how the test is # run, or testing options. The one small surprise is that AREs are the # default, and you must explicitly request lesser flavors of RE. The flags # are as follows. It is admitted that some are not very mnemonic. @@ -311,7 +311,7 @@ namespace eval RETest { # match expected (full fanciness) # expectIndices testno flags re target mat submat ... proc expectIndices {args} { - MatchExpected -indices {*}$args + MatchExpected -indices {*}$args } # partial match expected diff --git a/tests/regexp.test b/tests/regexp.test index 9fff262..4ffdbdb 100644 --- a/tests/regexp.test +++ b/tests/regexp.test @@ -480,7 +480,7 @@ test regexp-11.12 {regsub without final variable name returns value} { } {a,bcd,c,ea,bcfd,cf,e} # This test crashes on the Mac unless you increase the Stack Space to about 1 -# Meg. This is probably bigger than most users want... +# Meg. This is probably bigger than most users want... # 8.2.3 regexp reduced stack space requirements, but this should be # tested again test regexp-12.1 {Tcl_RegExpExec: large number of subexpressions} {macCrash} { @@ -742,10 +742,10 @@ test regexp-19.2 {regsub null replacement} { test regexp-20.1 {regsub shared object shimmering} { # Bug #461322 - set a abcdefghijklmnopqurstuvwxyz - set b $a - set c abcdefghijklmnopqurstuvwxyz0123456789 - regsub $a $c $b d + set a abcdefghijklmnopqurstuvwxyz + set b $a + set c abcdefghijklmnopqurstuvwxyz0123456789 + regsub $a $c $b d list $d [string length $d] [string bytelength $d] } [list abcdefghijklmnopqurstuvwxyz0123456789 37 37] test regexp-20.2 {regsub shared object shimmering with -about} { diff --git a/tests/regexpComp.test b/tests/regexpComp.test index 01ef06d..b8e64b6 100644 --- a/tests/regexpComp.test +++ b/tests/regexpComp.test @@ -22,7 +22,7 @@ if {[lsearch [namespace children] ::tcltest] == -1} { proc evalInProc { script } { proc testProc {} $script set status [catch { - testProc + testProc } result] rename testProc {} return $result @@ -607,7 +607,7 @@ test regexpComp-11.8 {regsub errors, -start bad int check} { } {1 {bad index "bogus": must be integer?[+-]integer? or end?[+-]integer?}} # This test crashes on the Mac unless you increase the Stack Space to about 1 -# Meg. This is probably bigger than most users want... +# Meg. This is probably bigger than most users want... # 8.2.3 regexp reduced stack space requirements, but this should be # tested again test regexpComp-12.1 {Tcl_RegExpExec: large number of subexpressions} {macCrash} { @@ -794,10 +794,10 @@ test regexpComp-19.1 {regsub null replacement} { test regexpComp-20.1 {regsub shared object shimmering} { evalInProc { # Bug #461322 - set a abcdefghijklmnopqurstuvwxyz - set b $a - set c abcdefghijklmnopqurstuvwxyz0123456789 - regsub $a $c $b d + set a abcdefghijklmnopqurstuvwxyz + set b $a + set c abcdefghijklmnopqurstuvwxyz0123456789 + regsub $a $c $b d list $d [string length $d] [string bytelength $d] } } [list abcdefghijklmnopqurstuvwxyz0123456789 37 37] diff --git a/tests/set-old.test b/tests/set-old.test index 94b6901..0e9ca63 100644 --- a/tests/set-old.test +++ b/tests/set-old.test @@ -931,7 +931,7 @@ catch {rename foo {}} # cleanup ::tcltest::cleanupTests -return +return # Local Variables: # mode: tcl diff --git a/tests/set.test b/tests/set.test index 18119f5..7e4b864 100644 --- a/tests/set.test +++ b/tests/set.test @@ -536,4 +536,4 @@ catch {unset i} catch {unset x} catch {unset z} ::tcltest::cleanupTests -return +return diff --git a/tests/split.test b/tests/split.test index 778131f..585fef5 100644 --- a/tests/split.test +++ b/tests/split.test @@ -43,7 +43,7 @@ test split-1.8 {basic split commands} { foreach f [split {]\n} {}] { append x $f } - return $x + return $x } foo } {]\n} diff --git a/tests/stack.test b/tests/stack.test index 13bc524..4c50f74 100644 --- a/tests/stack.test +++ b/tests/stack.test @@ -31,7 +31,7 @@ test stack-2.1 {maxNestingDepth reached on infinite recursion} -body { puts $msg } } -result {too many nested evaluations (infinite loop?)} - + # Make sure that there is enough stack to run regexp even if we're # close to the recursion limit. [Bug 947070] [Patch 746378] test stack-3.1 {enough room for regexp near recursion limit} -body { diff --git a/tests/string.test b/tests/string.test index 3611753..418bc61 100644 --- a/tests/string.test +++ b/tests/string.test @@ -219,7 +219,7 @@ test string-4.14 {string first, negative start index} { } 1 test string-4.15 {string first, ability to two-byte encoded utf-8 chars} { # Test for a bug in Tcl 8.3 where test for all-single-byte-encoded - # strings was incorrect, leading to an index returned by [string first] + # strings was incorrect, leading to an index returned by [string first] # which pointed past the end of the string. set uchar \u057e ;# character with two-byte encoding in utf-8 string first % %#$uchar$uchar#$uchar$uchar#% 3 @@ -419,7 +419,7 @@ test string-6.37 {string is double, false on int overflow} -setup { } -result {1 priorValue} # string-6.38 removed, underflow on input is no longer an error. test string-6.39 {string is double, false} { - # This test is non-portable because IRIX thinks + # This test is non-portable because IRIX thinks # that .e1 is a valid double - this is really a bug # on IRIX as .e1 should NOT be a valid double # @@ -1833,7 +1833,7 @@ proc MemStress {args} { set res {} foreach body $args { set end 0 - for {set i 0} {$i < 5} {incr i} { + for {set i 0} {$i < 5} {incr i} { proc MemStress_Body {} $body uplevel 1 MemStress_Body rename MemStress_Body {} diff --git a/tests/stringObj.test b/tests/stringObj.test index 8209142..49f268e 100644 --- a/tests/stringObj.test +++ b/tests/stringObj.test @@ -414,10 +414,10 @@ test stringObj-13.3 {Tcl_GetCharLength with byte-size chars} testobj { list [string length $a] [string length $a] } {6 6} test stringObj-13.4 {Tcl_GetCharLength with mixed width chars} testobj { - string length "\u00ae" + string length "\u00ae" } 1 test stringObj-13.5 {Tcl_GetCharLength with mixed width chars} testobj { - # string length "○○" + # string length "○○" # Use \uXXXX notation below instead of hardcoding the values, otherwise # the test will fail in multibyte locales. string length "\u00EF\u00BF\u00AE\u00EF\u00BF\u00AE" diff --git a/tests/subst.test b/tests/subst.test index 2115772..1f3c22a 100644 --- a/tests/subst.test +++ b/tests/subst.test @@ -91,29 +91,29 @@ test subst-5.4 {command substitutions} { } {1 {invalid command name "bogus_command"}} test subst-5.5 {command substitutions} { set a 0 - list [catch {subst {[set a 1}} msg] $a $msg + list [catch {subst {[set a 1}} msg] $a $msg } {1 0 {missing close-bracket}} test subst-5.6 {command substitutions} { set a 0 - list [catch {subst {0[set a 1}} msg] $a $msg + list [catch {subst {0[set a 1}} msg] $a $msg } {1 0 {missing close-bracket}} test subst-5.7 {command substitutions} { set a 0 - list [catch {subst {0[set a 1; set a 2}} msg] $a $msg + list [catch {subst {0[set a 1; set a 2}} msg] $a $msg } {1 1 {missing close-bracket}} # repeat the tests above simulating cmd line input test subst-5.8 {command substitutions} { set script {[subst {[set a 1}]} - list [catch {exec [info nameofexecutable] << $script} msg] $msg + list [catch {exec [info nameofexecutable] << $script} msg] $msg } {1 {missing close-bracket}} test subst-5.9 {command substitutions} { set script {[subst {0[set a 1}]} - list [catch {exec [info nameofexecutable] << $script} msg] $msg + list [catch {exec [info nameofexecutable] << $script} msg] $msg } {1 {missing close-bracket}} test subst-5.10 {command substitutions} { set script {[subst {0[set a 1; set a 2}]} - list [catch {exec [info nameofexecutable] << $script} msg] $msg + list [catch {exec [info nameofexecutable] << $script} msg] $msg } {1 {missing close-bracket}} test subst-6.1 {clear the result after command substitution} -body { @@ -166,7 +166,7 @@ test subst-8.6 {return in a subst} -returnCodes error -body { subst "foo \[return {x}; bogus code bar" } -result {missing close-bracket} test subst-8.7 {return in a subst, parse error} -body { - subst {foo [return {x} ; set a {}"" ; stuff] bar} + subst {foo [return {x} ; set a {}"" ; stuff] bar} } -returnCodes error -result {extra characters after close-brace} test subst-8.8 {return in a subst, parse error} -body { subst {foo [return {x} ; set bar baz ; set a {}"" ; stuff] bar} diff --git a/tests/tailcall.test b/tests/tailcall.test index 26f3cbf..ce506a7 100644 --- a/tests/tailcall.test +++ b/tests/tailcall.test @@ -28,9 +28,9 @@ if {[testConstraint testnrelevels]} { namespace eval testnre { # # [testnrelevels] returns a 6-list with: C-stack depth, iPtr->numlevels, - # cmdFrame level, callFrame level, tosPtr and callback depth + # cmdFrame level, callFrame level, tosPtr and callback depth # - variable last [testnrelevels] + variable last [testnrelevels] proc depthDiff {} { variable last set depth [testnrelevels] @@ -148,7 +148,7 @@ test tailcall-0.5 {tailcall is constant space} -constraints testnrelevels -setup } -result {0 0 0 0 0 0} test tailcall-0.5.1 {tailcall is constant space} -constraints testnrelevels -setup { - # + # # This test is related to [bug d87cb182053fd79b3]: the fix to that bug was # to remove a call to TclSkipTailcall, which caused a violation of the # constant-space property of tailcall in that particular @@ -245,7 +245,7 @@ test tailcall-1 {tailcall} -body { } variable x *:: proc xset args {error ::xset} - list [::b::moo] | $x $a::x $b::x | $::b::y + list [::b::moo] | $x $a::x $b::x | $::b::y } -cleanup { unset x rename xset {} @@ -619,7 +619,7 @@ test tailcall-12.3a3 {[Bug 2695587]} -body { set x } -cleanup { unset x -} -result {0 1} +} -result {0 1} test tailcall-12.3b0 {[Bug 2695587]} -body { apply {{} { @@ -654,7 +654,7 @@ test tailcall-12.3b3 {[Bug 2695587]} -body { set x } -cleanup { unset x -} -result {0 1} +} -result {0 1} # MORE VARIANTS MISSING: bc'ed caught script vs (bc'ed, not-bc'ed) # catch. Actually superfluous now, as tailcall just returns TCL_RETURN so that diff --git a/tests/tm.test b/tests/tm.test index 1b22f8c..a4dafe0 100644 --- a/tests/tm.test +++ b/tests/tm.test @@ -200,7 +200,7 @@ test tm-3.11 {tm: module path management, remove ignores unknown path} -setup { proc genpaths {base} { # Normalizing picks up drive letters on windows [Bug 1053568] set base [file normalize $base] - lassign [split [package present Tcl] .] major minor + lassign [split [package present Tcl] .] major minor set results {} set base [file join $base tcl$major] lappend results [file join $base site-tcl] diff --git a/tests/trace.test b/tests/trace.test index d830f3c..1099f48 100644 --- a/tests/trace.test +++ b/tests/trace.test @@ -164,30 +164,30 @@ test trace-1.10 {trace variable reads} { } {} test trace-1.11 {read traces that modify the array structure} { unset -nocomplain x - set x(bar) 0 - trace variable x r {set x(foo) 1 ;#} - trace variable x r {unset -nocomplain x(bar) ;#} + set x(bar) 0 + trace variable x r {set x(foo) 1 ;#} + trace variable x r {unset -nocomplain x(bar) ;#} array get x } {} test trace-1.12 {read traces that modify the array structure} { unset -nocomplain x - set x(bar) 0 - trace variable x r {unset -nocomplain x(bar) ;#} - trace variable x r {set x(foo) 1 ;#} + set x(bar) 0 + trace variable x r {unset -nocomplain x(bar) ;#} + trace variable x r {set x(foo) 1 ;#} array get x } {} test trace-1.13 {read traces that modify the array structure} { unset -nocomplain x - set x(bar) 0 - trace variable x r {set x(foo) 1 ;#} - trace variable x r {unset -nocomplain x;#} + set x(bar) 0 + trace variable x r {set x(foo) 1 ;#} + trace variable x r {unset -nocomplain x;#} list [catch {array get x} res] $res } {1 {can't read "x(bar)": no such variable}} test trace-1.14 {read traces that modify the array structure} { unset -nocomplain x - set x(bar) 0 - trace variable x r {unset -nocomplain x;#} - trace variable x r {set x(foo) 1 ;#} + set x(bar) 0 + trace variable x r {unset -nocomplain x;#} + trace variable x r {set x(foo) 1 ;#} list [catch {array get x} res] $res } {1 {can't read "x(bar)": no such variable}} @@ -419,7 +419,7 @@ test trace-5.8 {array traces fire for undefined variables} { trace add variable x array {set x(foo) 1 ;#} set res "names: [array names x]" } {names: foo} - + # Trace multiple trace types at once. test trace-6.1 {multiple ops traced at once} { @@ -767,7 +767,7 @@ test trace-13.1 {delete one trace from another} { trace add variable x read {traceTag 2} trace add variable x read {traceTag 3} trace add variable x read {traceTag 4} - trace add variable x read delTraces + trace add variable x read delTraces trace add variable x read {traceTag 5} set x set info @@ -872,7 +872,7 @@ test trace-14.5 {trace command, invalid option} { } [list 1 "bad option \"gorp\": must be add, info, remove, variable, vdelete, or vinfo"] # Again, [trace ... command] and [trace ... variable] share syntax and -# error message styles for their opList options; these loops test those +# error message styles for their opList options; these loops test those # error messages. set i 0 @@ -2104,7 +2104,7 @@ foo foo 0 1 leave} test trace-28.2 {exec traces with 'error'} { set info {} set res {} - + proc foo {} { if {[catch {bar}]} { return "error" @@ -2126,7 +2126,7 @@ test trace-28.2 {exec traces with 'error'} { trace remove execution foo {enter enterstep leave leavestep} \ [list traceExecute foo] - + list $res [join $info \n] } {{error error} {foo foo enter foo {if {[catch {bar}]} { @@ -2152,7 +2152,7 @@ foo foo 0 error leave}} test trace-28.3 {exec traces with 'return -code error'} { set info {} set res {} - + proc foo {} { if {[catch {bar}]} { return "error" @@ -2174,7 +2174,7 @@ test trace-28.3 {exec traces with 'return -code error'} { trace remove execution foo {enter enterstep leave leavestep} \ [list traceExecute foo] - + list $res [join $info \n] } {{error error} {foo foo enter foo {if {[catch {bar}]} { @@ -2204,7 +2204,7 @@ test trace-28.4 {exec traces in slave with 'return -code error'} { set res [interp eval slave { set info {} set res {} - + proc foo {} { if {[catch {bar}]} { return "error" @@ -2212,21 +2212,21 @@ test trace-28.4 {exec traces in slave with 'return -code error'} { return "ok" } } - + proc bar {} { return -code error "msg" } - + lappend res [foo] - + trace add execution foo {enter enterstep leave leavestep} \ [list traceExecute foo] - + # With the trace active - + lappend res [foo] - + trace remove execution foo {enter enterstep leave leavestep} \ [list traceExecute foo] - + list $res }] interp delete slave @@ -2610,7 +2610,7 @@ test trace-39 {bug #3484621: tracing Bc'ed commands} -setup { proc foo {} { incr ::traceCalls # choose a BC'ed command that is 'unlikely' to interfere with tcltest's - # internals + # internals lset ::bar 1 2 } } -body { @@ -2631,7 +2631,7 @@ test trace-39 {bug #3484621: tracing Bc'ed commands} -setup { rename dotrace {} rename foo {} } -result {3 | 0 1 1} - + test trace-39.1 {bug #3485022: tracing Bc'ed commands} -setup { set ::traceLog 0 set ::traceCalls 0 @@ -2668,7 +2668,7 @@ test trace-40.1 {execution trace errors become command errors} { catch foo m return -level 0 $m[unset m] } bar - + # Delete procedures when done, so we don't clash with other tests # (e.g. foobar will clash with 'unknown' tests). catch {rename foobar {}} diff --git a/tests/unixForkEvent.test b/tests/unixForkEvent.test index 120f362..d7b86fd 100644 --- a/tests/unixForkEvent.test +++ b/tests/unixForkEvent.test @@ -37,7 +37,7 @@ test unixforkevent-1.1 {fork and test writeable event} \ viewFile result.txt $myFolder } \ -result {writable} \ - -cleanup { + -cleanup { catch { removeFolder $myFolder } } diff --git a/tests/unixNotfy.test b/tests/unixNotfy.test index 2f03529..18b967f 100644 --- a/tests/unixNotfy.test +++ b/tests/unixNotfy.test @@ -34,7 +34,7 @@ test unixNotfy-1.1 {Tcl_DeleteFileHandler} -constraints {noTk unix unthreaded} - vwait x close $f list [catch {vwait x} msg] $msg -} -result {1 {can't wait for variable "x": would wait forever}} -cleanup { +} -result {1 {can't wait for variable "x": would wait forever}} -cleanup { catch { close $f } catch { removeFile foo } } @@ -90,7 +90,7 @@ test unixNotfy-2.2 {Tcl_DeleteFileHandler} \ set x } \ -result {ok} \ - -cleanup { + -cleanup { catch { close $f1 } catch { close $f2 } catch { removeFile foo } diff --git a/tests/unknown.test b/tests/unknown.test index e80d3a6..6c31c3d 100644 --- a/tests/unknown.test +++ b/tests/unknown.test @@ -58,7 +58,7 @@ test unknown-4.1 {errors in "unknown" procedure} { catch {rename unknown {}} catch {rename unknown.old unknown} cleanupTests -return +return # Local Variables: # mode: tcl diff --git a/tests/uplevel.test b/tests/uplevel.test index 0410469..3f6b2a8 100644 --- a/tests/uplevel.test +++ b/tests/uplevel.test @@ -138,7 +138,7 @@ test uplevel-7.1 {var access, no LVT in either level} -setup { unset -nocomplain y z } -body { namespace eval foo { - set x 2 + set x 2 set y 2 uplevel 1 { set x 3 @@ -157,7 +157,7 @@ test uplevel-7.2 {var access, no LVT in upper level} -setup { unset -nocomplain y z } -body { proc foo {} { - set x 2 + set x 2 set y 2 uplevel 1 { set x 3 @@ -181,7 +181,7 @@ test uplevel-7.3 {var access, LVT in upper level} -setup { } } -body { proc foo {} { - set x 2 + set x 2 set y 2 uplevel 1 { set x 3 diff --git a/tests/upvar.test b/tests/upvar.test index 5ea870d..476250c 100644 --- a/tests/upvar.test +++ b/tests/upvar.test @@ -477,7 +477,7 @@ test upvar-NS-1.4 {nsupvar links to correct variable} -body { } -returnCodes error -cleanup { namespace delete test_ns_1 } -result {namespace "test_ns_0" not found in "::test_ns_1"} - + test upvar-NS-1.5 {nsupvar links to correct variable} -body { namespace eval test_ns_1 { namespace eval test_ns_0 {} diff --git a/tests/util.test b/tests/util.test index 7782f35..2ac11bf 100644 --- a/tests/util.test +++ b/tests/util.test @@ -208,7 +208,7 @@ test util-4.6 {Tcl_ConcatObj - utf-8 sequence with "whitespace" char} { } \xe0 test util-4.7 {Tcl_ConcatObj - refCount safety} testconcatobj { # Check for Bug #1447328 (actually, bugs in its original "fix"). One of the - # symptoms was Bug #2055782. + # symptoms was Bug #2055782. testconcatobj } {} @@ -566,7 +566,7 @@ test util-9.1.3 {TclGetIntForIndex} { } k test util-9.2.0 {TclGetIntForIndex} { string index abcd end -} d +} d test util-9.2.1 {TclGetIntForIndex} -body { string index abcd { end} } -returnCodes error -match glob -result * @@ -4007,7 +4007,7 @@ test util-17.1 {bankers' rounding [Bug 3349507]} {ieeeFloatingPoint} { } set r } [list {*}{ - 0x43fffffffffffffc 0xc3fffffffffffffc + 0x43fffffffffffffc 0xc3fffffffffffffc 0x43fffffffffffffc 0xc3fffffffffffffc 0x43fffffffffffffd 0xc3fffffffffffffd 0x43fffffffffffffe 0xc3fffffffffffffe diff --git a/tests/var.test b/tests/var.test index b6b09fd..6f90664 100644 --- a/tests/var.test +++ b/tests/var.test @@ -39,7 +39,7 @@ catch {unset arr} test var-1.1 {TclLookupVar, Array handling} -setup { catch {unset a} } -body { - set x "incr" ;# force no compilation and runtime call to Tcl_IncrCmd + set x "incr" ;# force no compilation and runtime call to Tcl_IncrCmd set i 10 set arr(foo) 37 list [$x i] $i [$x arr(foo)] $arr(foo) @@ -216,7 +216,7 @@ test var-3.3 {MakeUpvar, my var has TCL_GLOBAL_ONLY specified} -setup { set a 123321 proc p {} { # create global xx linked to global a - testupvar 1 a {} xx global + testupvar 1 a {} xx global } list [p] $xx [set xx 789] $a } -result {{} 123321 789 789} @@ -228,7 +228,7 @@ test var-3.4 {MakeUpvar, my var has TCL_NAMESPACE_ONLY specified} -setup { catch {unset ::test_ns_var::vv} proc p {} { # create namespace var vv linked to global a - testupvar 1 a {} vv namespace + testupvar 1 a {} vv namespace } p } @@ -516,11 +516,11 @@ test var-7.14 {Tcl_VariableObjCmd, array element parameter} -body { namespace eval test_ns_var { variable arrayvar(1) } } -returnCodes error -result "can't define \"arrayvar(1)\": name refers to an element in an array" test var-7.15 {Tcl_VariableObjCmd, array element parameter} -body { - namespace eval test_ns_var { + namespace eval test_ns_var { variable arrayvar set arrayvar(1) x variable arrayvar(1) y - } + } } -returnCodes error -result "can't define \"arrayvar(1)\": name refers to an element in an array" test var-7.16 {Tcl_VariableObjCmd, no args (TIP 323)} { variable @@ -742,7 +742,7 @@ test var-15.1 {segfault in [unset], [Bug 735335]} { set var $name } # - # Note that the variable name has to be + # Note that the variable name has to be # unused previously for the segfault to # be triggered. # diff --git a/tests/winPipe.test b/tests/winPipe.test index 9c6f94d..8128fe2 100644 --- a/tests/winPipe.test +++ b/tests/winPipe.test @@ -34,14 +34,14 @@ testConstraint testexcept [llength [info commands testexcept]] set big bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n append big $big -append big $big +append big $big append big $big append big $big append big $big append big $big set path(little) [makeFile {} little] -set f [open $path(little) w] +set f [open $path(little) w] puts -nonewline $f "little" close $f -- cgit v0.12 From 06d40a2add362702cee3dd03ab5a9b1ae13805b8 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 10 Mar 2016 13:44:44 +0000 Subject: Somewhat more excess spacing in for.test --- tests/for.test | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/for.test b/tests/for.test index 1a65274..8e701d6 100644 --- a/tests/for.test +++ b/tests/for.test @@ -303,35 +303,35 @@ proc formatMail {} { 16 {This page contains information about Tcl 7.6 and Tk4.2, which are the most recent} \ 17 {releases of the Tcl scripting language and the Tk toolkit. The first beta versions of these} \ 18 {releases were released on August 30, 1996. These releases contain only minor changes,} \ - 19 {so we hope to have only a single beta release and to go final in early October, 1996. } \ + 19 {so we hope to have only a single beta release and to go final in early October, 1996.} \ 20 {} \ 21 {} \ - 22 {What's new } \ + 22 {What's new} \ 23 {} \ 24 {The most important changes in the releases are summarized below. See the README} \ 25 {and changes files in the distributions for more complete information on what has} \ - 26 {changed, including both feature changes and bug fixes. } \ + 26 {changed, including both feature changes and bug fixes.} \ 27 {} \ 28 { There are new options to the file command for copying files (file copy),} \ 29 { deleting files and directories (file delete), creating directories (file} \ - 30 { mkdir), and renaming files (file rename). } \ + 30 { mkdir), and renaming files (file rename).} \ 31 { The implementation of exec has been improved greatly for Windows 95 and} \ - 32 { Windows NT. } \ + 32 { Windows NT.} \ 33 { There is a new memory allocator for the Macintosh version, which should be} \ - 34 { more efficient than the old one. } \ + 34 { more efficient than the old one.} \ 35 { Tk's grid geometry manager has been completely rewritten. The layout} \ 36 { algorithm produces much better layouts than before, especially where rows or} \ - 37 { columns were stretchable. } \ + 37 { columns were stretchable.} \ 38 { There are new commands for creating common dialog boxes:} \ 39 { tk_chooseColor, tk_getOpenFile, tk_getSaveFile and} \ - 40 { tk_messageBox. These use native dialog boxes if they are available. } \ + 40 { tk_messageBox. These use native dialog boxes if they are available.} \ 41 { There is a new virtual event mechanism for handling events in a more portable} \ 42 { way. See the new command event. It also allows events (both physical and} \ - 43 { virtual) to be generated dynamically. } \ + 43 { virtual) to be generated dynamically.} \ 44 {} \ 45 {Tcl 7.6 and Tk 4.2 are backwards-compatible with Tcl 7.5 and Tk 4.1 except for} \ 46 {changes in the C APIs for custom channel drivers. Scripts written for earlier releases} \ - 47 {should work on these new releases as well. } \ + 47 {should work on these new releases as well.} \ 48 {} \ 49 {Obtaining The Releases} \ 50 {} \ @@ -342,7 +342,7 @@ proc formatMail {} { 55 { Windows 3.1, Windows 95, and Windows NT: Fetch} \ 56 { ftp://ftp.sunlabs.com/pub/tcl/win42b1.exe, then execute it. The file is a} \ 57 { self-extracting executable. It will install the Tcl and Tk libraries, the wish and} \ - 58 { tclsh programs, and documentation. } \ + 58 { tclsh programs, and documentation.} \ 59 { Macintosh (both 68K and PowerPC): Fetch} \ 60 { ftp://ftp.sunlabs.com/pub/tcl/mactk4.2b1.sea.hqx. The file is in binhex format,} \ 61 { which is understood by Fetch, StuffIt, and many other Mac utilities. The} \ @@ -511,30 +511,30 @@ so we hope to have only a single beta release and to go final in early October, 1996. -What's new +What's new The most important changes in the releases are summariz ed below. See the README and changes files in the distributions for more complet e information on what has -changed, including both feature changes and bug fixes. +changed, including both feature changes and bug fixes. There are new options to the file command for copying files (file copy), deleting files and directories (file delete), creating directories (file - mkdir), and renaming files (file rename). + mkdir), and renaming files (file rename). The implementation of exec has been improved great ly for Windows 95 and - Windows NT. + Windows NT. There is a new memory allocator for the Macintosh version, which should be - more efficient than the old one. + more efficient than the old one. Tk's grid geometry manager has been completely rewritten. The layout algorithm produces much better layouts than before , especially where rows or - columns were stretchable. + columns were stretchable. There are new commands for creating common dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and @@ -544,13 +544,13 @@ they are available. g events in a more portable way. See the new command event. It also allows events (both physical and - virtual) to be generated dynamically. + virtual) to be generated dynamically. Tcl 7.6 and Tk 4.2 are backwards-compatible with Tcl 7.5 and Tk 4.1 except for changes in the C APIs for custom channel drivers. Scrip ts written for earlier releases -should work on these new releases as well. +should work on these new releases as well. Obtaining The Releases @@ -564,7 +564,7 @@ platforms: execute it. The file is a self-extracting executable. It will install the Tcl and Tk libraries, the wish and - tclsh programs, and documentation. + tclsh programs, and documentation. Macintosh (both 68K and PowerPC): Fetch ftp://ftp.sunlabs.com/pub/tcl/mactk4.2b1.sea.hqx. The file is in binhex format, -- cgit v0.12 From 812f825cfcb54b05a3df59e2cb1585af3da47c67 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 10 Mar 2016 20:03:38 +0000 Subject: [b9b2079e6d] Proposed fix. When a compileProc fails, it may have done an arbitrary amount of partial work, which needs to be undone. When the exception handling machinery got its last big revision, the undoing of what it does was neglected. I think this patch gets it all, but more eyes would be good. --- generic/tclEnsemble.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c index 8f7d1a2..986a553 100644 --- a/generic/tclEnsemble.c +++ b/generic/tclEnsemble.c @@ -3082,6 +3082,11 @@ TclAttemptCompileProc( Tcl_Token *saveTokenPtr = parsePtr->tokenPtr; int savedStackDepth = envPtr->currStackDepth; unsigned savedCodeNext = envPtr->codeNext - envPtr->codeStart; + int savedAuxDataArrayNext = envPtr->auxDataArrayNext; + int savedExceptArrayNext = envPtr->exceptArrayNext; +#ifdef TCL_COMPILE_DEBUG + int savedExceptDepth = envPtr->exceptDepth; +#endif DefineLineInformation; if (cmdPtr->compileProc == NULL) { @@ -3130,7 +3135,45 @@ TclAttemptCompileProc( * we avoid compiling subcommands that recursively call TclCompileScript(). */ +#ifdef TCL_COMPILE_DEBUG + if (envPtr->exceptDepth != savedExceptDepth) { + Tcl_Panic("ExceptionRange Starts and Ends do not balance"); + } +#endif + if (result != TCL_OK) { + ExceptionAux *auxPtr = envPtr->exceptAuxArrayPtr; + + for (i = 0; i < savedExceptArrayNext; i++) { + while (auxPtr->numBreakTargets > 0 + && auxPtr->breakTargets[auxPtr->numBreakTargets - 1] + >= savedCodeNext) { + auxPtr->numBreakTargets--; + } + while (auxPtr->numContinueTargets > 0 + && auxPtr->continueTargets[auxPtr->numContinueTargets - 1] + >= savedCodeNext) { + auxPtr->numContinueTargets--; + } + auxPtr++; + } + envPtr->exceptArrayNext = savedExceptArrayNext; + + if (savedAuxDataArrayNext != envPtr->auxDataArrayNext) { + AuxData *auxDataPtr = envPtr->auxDataArrayPtr; + AuxData *auxDataEnd = auxDataPtr; + + auxDataPtr += savedAuxDataArrayNext; + auxDataEnd += envPtr->auxDataArrayNext; + + while (auxDataPtr < auxDataEnd) { + if (auxDataPtr->type->freeProc != NULL) { + auxDataPtr->type->freeProc(auxDataPtr->clientData); + } + auxDataPtr++; + } + envPtr->auxDataArrayNext = savedAuxDataArrayNext; + } envPtr->currStackDepth = savedStackDepth; envPtr->codeNext = envPtr->codeStart + savedCodeNext; #ifdef TCL_COMPILE_DEBUG -- cgit v0.12 From 8ad967404ac779d2dff31836f295f22ed6fc130c Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 11 Mar 2016 15:00:51 +0000 Subject: New test compile-5.3 for the bug. --- tests/compile.test | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/compile.test b/tests/compile.test index 46e678a..bb12050 100644 --- a/tests/compile.test +++ b/tests/compile.test @@ -224,6 +224,17 @@ test compile-5.2 {TclCompileForeachCmd: non-local variables} { foreach-test set ::foo } 3 +test compile-5.3 {TclCompileForeachCmd: [Bug b9b2079e6d]} -setup { + proc demo {} { + foreach x y { + if 1 break else + } + } +} -body { + demo +} -cleanup { + rename demo {} +} -returnCodes error -result {wrong # args: no script following "else" argument} test compile-6.1 {TclCompileSetCmd: global scalar names with ::s} -setup { catch {unset x} -- cgit v0.12 From b1d25860c469bbaccef10bb6a596fb93d397b2b0 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 11 Mar 2016 15:40:45 +0000 Subject: Simple change gets most of the effect. Fails to handle backslash. anyone care? --- generic/tclCompCmdsGR.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c index e674fb0..87ed745 100644 --- a/generic/tclCompCmdsGR.c +++ b/generic/tclCompCmdsGR.c @@ -2966,10 +2966,12 @@ IndexTailVarIfKnown( } else { full = 0; lastTokenPtr = varTokenPtr + n; - if (!TclWordKnownAtCompileTime(lastTokenPtr, tailPtr)) { + + if (lastTokenPtr->type != TCL_TOKEN_TEXT) { Tcl_DecrRefCount(tailPtr); return -1; } + Tcl_SetStringObj(tailPtr, lastTokenPtr->start, lastTokenPtr->size); } tailName = TclGetStringFromObj(tailPtr, &len); -- cgit v0.12 From 6b63d42886b68cbfdbd19c6fee04b836320a646d Mon Sep 17 00:00:00 2001 From: venkat Date: Wed, 16 Mar 2016 08:58:27 +0000 Subject: Update tzdata to 2016b from ietf.org --- library/tzdata/America/Cayman | 177 +-------------------- library/tzdata/America/Metlakatla | 169 ++++++++++++++++++++ library/tzdata/America/Port-au-Prince | 168 -------------------- library/tzdata/America/Santa_Isabel | 285 +--------------------------------- library/tzdata/Asia/Barnaul | 71 +++++++++ library/tzdata/Asia/Chita | 1 + library/tzdata/Asia/Gaza | 168 ++++++++++---------- library/tzdata/Asia/Hebron | 168 ++++++++++---------- library/tzdata/Asia/Karachi | 4 +- library/tzdata/Asia/Sakhalin | 1 + library/tzdata/Asia/Tehran | 124 +++++++++++++++ library/tzdata/Europe/Astrakhan | 70 +++++++++ library/tzdata/Europe/Chisinau | 6 +- library/tzdata/Europe/Samara | 2 +- library/tzdata/Europe/Ulyanovsk | 73 +++++++++ 15 files changed, 689 insertions(+), 798 deletions(-) create mode 100644 library/tzdata/Asia/Barnaul create mode 100644 library/tzdata/Europe/Astrakhan create mode 100644 library/tzdata/Europe/Ulyanovsk diff --git a/library/tzdata/America/Cayman b/library/tzdata/America/Cayman index 5231ca9..92ce5e2 100644 --- a/library/tzdata/America/Cayman +++ b/library/tzdata/America/Cayman @@ -1,176 +1,5 @@ # created by tools/tclZIC.tcl - do not edit - -set TZData(:America/Cayman) { - {-9223372036854775808 -19532 0 LMT} - {-2524502068 -18431 0 KMT} - {-1827687169 -18000 0 EST} - {1451624400 -18000 0 EST} - {1457852400 -14400 1 EDT} - {1478412000 -18000 0 EST} - {1489302000 -14400 1 EDT} - {1509861600 -18000 0 EST} - {1520751600 -14400 1 EDT} - {1541311200 -18000 0 EST} - {1552201200 -14400 1 EDT} - {1572760800 -18000 0 EST} - {1583650800 -14400 1 EDT} - {1604210400 -18000 0 EST} - {1615705200 -14400 1 EDT} - {1636264800 -18000 0 EST} - {1647154800 -14400 1 EDT} - {1667714400 -18000 0 EST} - {1678604400 -14400 1 EDT} - {1699164000 -18000 0 EST} - {1710054000 -14400 1 EDT} - {1730613600 -18000 0 EST} - {1741503600 -14400 1 EDT} - {1762063200 -18000 0 EST} - {1772953200 -14400 1 EDT} - {1793512800 -18000 0 EST} - {1805007600 -14400 1 EDT} - {1825567200 -18000 0 EST} - {1836457200 -14400 1 EDT} - {1857016800 -18000 0 EST} - {1867906800 -14400 1 EDT} - {1888466400 -18000 0 EST} - {1899356400 -14400 1 EDT} - {1919916000 -18000 0 EST} - {1930806000 -14400 1 EDT} - {1951365600 -18000 0 EST} - {1962860400 -14400 1 EDT} - {1983420000 -18000 0 EST} - {1994310000 -14400 1 EDT} - {2014869600 -18000 0 EST} - {2025759600 -14400 1 EDT} - {2046319200 -18000 0 EST} - {2057209200 -14400 1 EDT} - {2077768800 -18000 0 EST} - {2088658800 -14400 1 EDT} - {2109218400 -18000 0 EST} - {2120108400 -14400 1 EDT} - {2140668000 -18000 0 EST} - {2152162800 -14400 1 EDT} - {2172722400 -18000 0 EST} - {2183612400 -14400 1 EDT} - {2204172000 -18000 0 EST} - {2215062000 -14400 1 EDT} - {2235621600 -18000 0 EST} - {2246511600 -14400 1 EDT} - {2267071200 -18000 0 EST} - {2277961200 -14400 1 EDT} - {2298520800 -18000 0 EST} - {2309410800 -14400 1 EDT} - {2329970400 -18000 0 EST} - {2341465200 -14400 1 EDT} - {2362024800 -18000 0 EST} - {2372914800 -14400 1 EDT} - {2393474400 -18000 0 EST} - {2404364400 -14400 1 EDT} - {2424924000 -18000 0 EST} - {2435814000 -14400 1 EDT} - {2456373600 -18000 0 EST} - {2467263600 -14400 1 EDT} - {2487823200 -18000 0 EST} - {2499318000 -14400 1 EDT} - {2519877600 -18000 0 EST} - {2530767600 -14400 1 EDT} - {2551327200 -18000 0 EST} - {2562217200 -14400 1 EDT} - {2582776800 -18000 0 EST} - {2593666800 -14400 1 EDT} - {2614226400 -18000 0 EST} - {2625116400 -14400 1 EDT} - {2645676000 -18000 0 EST} - {2656566000 -14400 1 EDT} - {2677125600 -18000 0 EST} - {2688620400 -14400 1 EDT} - {2709180000 -18000 0 EST} - {2720070000 -14400 1 EDT} - {2740629600 -18000 0 EST} - {2751519600 -14400 1 EDT} - {2772079200 -18000 0 EST} - {2782969200 -14400 1 EDT} - {2803528800 -18000 0 EST} - {2814418800 -14400 1 EDT} - {2834978400 -18000 0 EST} - {2846473200 -14400 1 EDT} - {2867032800 -18000 0 EST} - {2877922800 -14400 1 EDT} - {2898482400 -18000 0 EST} - {2909372400 -14400 1 EDT} - {2929932000 -18000 0 EST} - {2940822000 -14400 1 EDT} - {2961381600 -18000 0 EST} - {2972271600 -14400 1 EDT} - {2992831200 -18000 0 EST} - {3003721200 -14400 1 EDT} - {3024280800 -18000 0 EST} - {3035775600 -14400 1 EDT} - {3056335200 -18000 0 EST} - {3067225200 -14400 1 EDT} - {3087784800 -18000 0 EST} - {3098674800 -14400 1 EDT} - {3119234400 -18000 0 EST} - {3130124400 -14400 1 EDT} - {3150684000 -18000 0 EST} - {3161574000 -14400 1 EDT} - {3182133600 -18000 0 EST} - {3193023600 -14400 1 EDT} - {3213583200 -18000 0 EST} - {3225078000 -14400 1 EDT} - {3245637600 -18000 0 EST} - {3256527600 -14400 1 EDT} - {3277087200 -18000 0 EST} - {3287977200 -14400 1 EDT} - {3308536800 -18000 0 EST} - {3319426800 -14400 1 EDT} - {3339986400 -18000 0 EST} - {3350876400 -14400 1 EDT} - {3371436000 -18000 0 EST} - {3382930800 -14400 1 EDT} - {3403490400 -18000 0 EST} - {3414380400 -14400 1 EDT} - {3434940000 -18000 0 EST} - {3445830000 -14400 1 EDT} - {3466389600 -18000 0 EST} - {3477279600 -14400 1 EDT} - {3497839200 -18000 0 EST} - {3508729200 -14400 1 EDT} - {3529288800 -18000 0 EST} - {3540178800 -14400 1 EDT} - {3560738400 -18000 0 EST} - {3572233200 -14400 1 EDT} - {3592792800 -18000 0 EST} - {3603682800 -14400 1 EDT} - {3624242400 -18000 0 EST} - {3635132400 -14400 1 EDT} - {3655692000 -18000 0 EST} - {3666582000 -14400 1 EDT} - {3687141600 -18000 0 EST} - {3698031600 -14400 1 EDT} - {3718591200 -18000 0 EST} - {3730086000 -14400 1 EDT} - {3750645600 -18000 0 EST} - {3761535600 -14400 1 EDT} - {3782095200 -18000 0 EST} - {3792985200 -14400 1 EDT} - {3813544800 -18000 0 EST} - {3824434800 -14400 1 EDT} - {3844994400 -18000 0 EST} - {3855884400 -14400 1 EDT} - {3876444000 -18000 0 EST} - {3887334000 -14400 1 EDT} - {3907893600 -18000 0 EST} - {3919388400 -14400 1 EDT} - {3939948000 -18000 0 EST} - {3950838000 -14400 1 EDT} - {3971397600 -18000 0 EST} - {3982287600 -14400 1 EDT} - {4002847200 -18000 0 EST} - {4013737200 -14400 1 EDT} - {4034296800 -18000 0 EST} - {4045186800 -14400 1 EDT} - {4065746400 -18000 0 EST} - {4076636400 -14400 1 EDT} - {4097196000 -18000 0 EST} +if {![info exists TZData(America/Panama)]} { + LoadTimeZoneFile America/Panama } +set TZData(:America/Cayman) $TZData(:America/Panama) diff --git a/library/tzdata/America/Metlakatla b/library/tzdata/America/Metlakatla index 8ea80fa..407948d 100644 --- a/library/tzdata/America/Metlakatla +++ b/library/tzdata/America/Metlakatla @@ -40,4 +40,173 @@ set TZData(:America/Metlakatla) { {404902800 -28800 0 PST} {420026400 -25200 1 PDT} {436356000 -28800 0 PST} + {1446372000 -32400 0 AKST} + {1457866800 -28800 1 AKDT} + {1478426400 -32400 0 AKST} + {1489316400 -28800 1 AKDT} + {1509876000 -32400 0 AKST} + {1520766000 -28800 1 AKDT} + {1541325600 -32400 0 AKST} + {1552215600 -28800 1 AKDT} + {1572775200 -32400 0 AKST} + {1583665200 -28800 1 AKDT} + {1604224800 -32400 0 AKST} + {1615719600 -28800 1 AKDT} + {1636279200 -32400 0 AKST} + {1647169200 -28800 1 AKDT} + {1667728800 -32400 0 AKST} + {1678618800 -28800 1 AKDT} + {1699178400 -32400 0 AKST} + {1710068400 -28800 1 AKDT} + {1730628000 -32400 0 AKST} + {1741518000 -28800 1 AKDT} + {1762077600 -32400 0 AKST} + {1772967600 -28800 1 AKDT} + {1793527200 -32400 0 AKST} + {1805022000 -28800 1 AKDT} + {1825581600 -32400 0 AKST} + {1836471600 -28800 1 AKDT} + {1857031200 -32400 0 AKST} + {1867921200 -28800 1 AKDT} + {1888480800 -32400 0 AKST} + {1899370800 -28800 1 AKDT} + {1919930400 -32400 0 AKST} + {1930820400 -28800 1 AKDT} + {1951380000 -32400 0 AKST} + {1962874800 -28800 1 AKDT} + {1983434400 -32400 0 AKST} + {1994324400 -28800 1 AKDT} + {2014884000 -32400 0 AKST} + {2025774000 -28800 1 AKDT} + {2046333600 -32400 0 AKST} + {2057223600 -28800 1 AKDT} + {2077783200 -32400 0 AKST} + {2088673200 -28800 1 AKDT} + {2109232800 -32400 0 AKST} + {2120122800 -28800 1 AKDT} + {2140682400 -32400 0 AKST} + {2152177200 -28800 1 AKDT} + {2172736800 -32400 0 AKST} + {2183626800 -28800 1 AKDT} + {2204186400 -32400 0 AKST} + {2215076400 -28800 1 AKDT} + {2235636000 -32400 0 AKST} + {2246526000 -28800 1 AKDT} + {2267085600 -32400 0 AKST} + {2277975600 -28800 1 AKDT} + {2298535200 -32400 0 AKST} + {2309425200 -28800 1 AKDT} + {2329984800 -32400 0 AKST} + {2341479600 -28800 1 AKDT} + {2362039200 -32400 0 AKST} + {2372929200 -28800 1 AKDT} + {2393488800 -32400 0 AKST} + {2404378800 -28800 1 AKDT} + {2424938400 -32400 0 AKST} + {2435828400 -28800 1 AKDT} + {2456388000 -32400 0 AKST} + {2467278000 -28800 1 AKDT} + {2487837600 -32400 0 AKST} + {2499332400 -28800 1 AKDT} + {2519892000 -32400 0 AKST} + {2530782000 -28800 1 AKDT} + {2551341600 -32400 0 AKST} + {2562231600 -28800 1 AKDT} + {2582791200 -32400 0 AKST} + {2593681200 -28800 1 AKDT} + {2614240800 -32400 0 AKST} + {2625130800 -28800 1 AKDT} + {2645690400 -32400 0 AKST} + {2656580400 -28800 1 AKDT} + {2677140000 -32400 0 AKST} + {2688634800 -28800 1 AKDT} + {2709194400 -32400 0 AKST} + {2720084400 -28800 1 AKDT} + {2740644000 -32400 0 AKST} + {2751534000 -28800 1 AKDT} + {2772093600 -32400 0 AKST} + {2782983600 -28800 1 AKDT} + {2803543200 -32400 0 AKST} + {2814433200 -28800 1 AKDT} + {2834992800 -32400 0 AKST} + {2846487600 -28800 1 AKDT} + {2867047200 -32400 0 AKST} + {2877937200 -28800 1 AKDT} + {2898496800 -32400 0 AKST} + {2909386800 -28800 1 AKDT} + {2929946400 -32400 0 AKST} + {2940836400 -28800 1 AKDT} + {2961396000 -32400 0 AKST} + {2972286000 -28800 1 AKDT} + {2992845600 -32400 0 AKST} + {3003735600 -28800 1 AKDT} + {3024295200 -32400 0 AKST} + {3035790000 -28800 1 AKDT} + {3056349600 -32400 0 AKST} + {3067239600 -28800 1 AKDT} + {3087799200 -32400 0 AKST} + {3098689200 -28800 1 AKDT} + {3119248800 -32400 0 AKST} + {3130138800 -28800 1 AKDT} + {3150698400 -32400 0 AKST} + {3161588400 -28800 1 AKDT} + {3182148000 -32400 0 AKST} + {3193038000 -28800 1 AKDT} + {3213597600 -32400 0 AKST} + {3225092400 -28800 1 AKDT} + {3245652000 -32400 0 AKST} + {3256542000 -28800 1 AKDT} + {3277101600 -32400 0 AKST} + {3287991600 -28800 1 AKDT} + {3308551200 -32400 0 AKST} + {3319441200 -28800 1 AKDT} + {3340000800 -32400 0 AKST} + {3350890800 -28800 1 AKDT} + {3371450400 -32400 0 AKST} + {3382945200 -28800 1 AKDT} + {3403504800 -32400 0 AKST} + {3414394800 -28800 1 AKDT} + {3434954400 -32400 0 AKST} + {3445844400 -28800 1 AKDT} + {3466404000 -32400 0 AKST} + {3477294000 -28800 1 AKDT} + {3497853600 -32400 0 AKST} + {3508743600 -28800 1 AKDT} + {3529303200 -32400 0 AKST} + {3540193200 -28800 1 AKDT} + {3560752800 -32400 0 AKST} + {3572247600 -28800 1 AKDT} + {3592807200 -32400 0 AKST} + {3603697200 -28800 1 AKDT} + {3624256800 -32400 0 AKST} + {3635146800 -28800 1 AKDT} + {3655706400 -32400 0 AKST} + {3666596400 -28800 1 AKDT} + {3687156000 -32400 0 AKST} + {3698046000 -28800 1 AKDT} + {3718605600 -32400 0 AKST} + {3730100400 -28800 1 AKDT} + {3750660000 -32400 0 AKST} + {3761550000 -28800 1 AKDT} + {3782109600 -32400 0 AKST} + {3792999600 -28800 1 AKDT} + {3813559200 -32400 0 AKST} + {3824449200 -28800 1 AKDT} + {3845008800 -32400 0 AKST} + {3855898800 -28800 1 AKDT} + {3876458400 -32400 0 AKST} + {3887348400 -28800 1 AKDT} + {3907908000 -32400 0 AKST} + {3919402800 -28800 1 AKDT} + {3939962400 -32400 0 AKST} + {3950852400 -28800 1 AKDT} + {3971412000 -32400 0 AKST} + {3982302000 -28800 1 AKDT} + {4002861600 -32400 0 AKST} + {4013751600 -28800 1 AKDT} + {4034311200 -32400 0 AKST} + {4045201200 -28800 1 AKDT} + {4065760800 -32400 0 AKST} + {4076650800 -28800 1 AKDT} + {4097210400 -32400 0 AKST} } diff --git a/library/tzdata/America/Port-au-Prince b/library/tzdata/America/Port-au-Prince index f1d7fc4..b8b60d6 100644 --- a/library/tzdata/America/Port-au-Prince +++ b/library/tzdata/America/Port-au-Prince @@ -46,172 +46,4 @@ set TZData(:America/Port-au-Prince) { {1414908000 -18000 0 EST} {1425798000 -14400 1 EDT} {1446357600 -18000 0 EST} - {1457852400 -14400 1 EDT} - {1478412000 -18000 0 EST} - {1489302000 -14400 1 EDT} - {1509861600 -18000 0 EST} - {1520751600 -14400 1 EDT} - {1541311200 -18000 0 EST} - {1552201200 -14400 1 EDT} - {1572760800 -18000 0 EST} - {1583650800 -14400 1 EDT} - {1604210400 -18000 0 EST} - {1615705200 -14400 1 EDT} - {1636264800 -18000 0 EST} - {1647154800 -14400 1 EDT} - {1667714400 -18000 0 EST} - {1678604400 -14400 1 EDT} - {1699164000 -18000 0 EST} - {1710054000 -14400 1 EDT} - {1730613600 -18000 0 EST} - {1741503600 -14400 1 EDT} - {1762063200 -18000 0 EST} - {1772953200 -14400 1 EDT} - {1793512800 -18000 0 EST} - {1805007600 -14400 1 EDT} - {1825567200 -18000 0 EST} - {1836457200 -14400 1 EDT} - {1857016800 -18000 0 EST} - {1867906800 -14400 1 EDT} - {1888466400 -18000 0 EST} - {1899356400 -14400 1 EDT} - {1919916000 -18000 0 EST} - {1930806000 -14400 1 EDT} - {1951365600 -18000 0 EST} - {1962860400 -14400 1 EDT} - {1983420000 -18000 0 EST} - {1994310000 -14400 1 EDT} - {2014869600 -18000 0 EST} - {2025759600 -14400 1 EDT} - {2046319200 -18000 0 EST} - {2057209200 -14400 1 EDT} - {2077768800 -18000 0 EST} - {2088658800 -14400 1 EDT} - {2109218400 -18000 0 EST} - {2120108400 -14400 1 EDT} - {2140668000 -18000 0 EST} - {2152162800 -14400 1 EDT} - {2172722400 -18000 0 EST} - {2183612400 -14400 1 EDT} - {2204172000 -18000 0 EST} - {2215062000 -14400 1 EDT} - {2235621600 -18000 0 EST} - {2246511600 -14400 1 EDT} - {2267071200 -18000 0 EST} - {2277961200 -14400 1 EDT} - {2298520800 -18000 0 EST} - {2309410800 -14400 1 EDT} - {2329970400 -18000 0 EST} - {2341465200 -14400 1 EDT} - {2362024800 -18000 0 EST} - {2372914800 -14400 1 EDT} - {2393474400 -18000 0 EST} - {2404364400 -14400 1 EDT} - {2424924000 -18000 0 EST} - {2435814000 -14400 1 EDT} - {2456373600 -18000 0 EST} - {2467263600 -14400 1 EDT} - {2487823200 -18000 0 EST} - {2499318000 -14400 1 EDT} - {2519877600 -18000 0 EST} - {2530767600 -14400 1 EDT} - {2551327200 -18000 0 EST} - {2562217200 -14400 1 EDT} - {2582776800 -18000 0 EST} - {2593666800 -14400 1 EDT} - {2614226400 -18000 0 EST} - {2625116400 -14400 1 EDT} - {2645676000 -18000 0 EST} - {2656566000 -14400 1 EDT} - {2677125600 -18000 0 EST} - {2688620400 -14400 1 EDT} - {2709180000 -18000 0 EST} - {2720070000 -14400 1 EDT} - {2740629600 -18000 0 EST} - {2751519600 -14400 1 EDT} - {2772079200 -18000 0 EST} - {2782969200 -14400 1 EDT} - {2803528800 -18000 0 EST} - {2814418800 -14400 1 EDT} - {2834978400 -18000 0 EST} - {2846473200 -14400 1 EDT} - {2867032800 -18000 0 EST} - {2877922800 -14400 1 EDT} - {2898482400 -18000 0 EST} - {2909372400 -14400 1 EDT} - {2929932000 -18000 0 EST} - {2940822000 -14400 1 EDT} - {2961381600 -18000 0 EST} - {2972271600 -14400 1 EDT} - {2992831200 -18000 0 EST} - {3003721200 -14400 1 EDT} - {3024280800 -18000 0 EST} - {3035775600 -14400 1 EDT} - {3056335200 -18000 0 EST} - {3067225200 -14400 1 EDT} - {3087784800 -18000 0 EST} - {3098674800 -14400 1 EDT} - {3119234400 -18000 0 EST} - {3130124400 -14400 1 EDT} - {3150684000 -18000 0 EST} - {3161574000 -14400 1 EDT} - {3182133600 -18000 0 EST} - {3193023600 -14400 1 EDT} - {3213583200 -18000 0 EST} - {3225078000 -14400 1 EDT} - {3245637600 -18000 0 EST} - {3256527600 -14400 1 EDT} - {3277087200 -18000 0 EST} - {3287977200 -14400 1 EDT} - {3308536800 -18000 0 EST} - {3319426800 -14400 1 EDT} - {3339986400 -18000 0 EST} - {3350876400 -14400 1 EDT} - {3371436000 -18000 0 EST} - {3382930800 -14400 1 EDT} - {3403490400 -18000 0 EST} - {3414380400 -14400 1 EDT} - {3434940000 -18000 0 EST} - {3445830000 -14400 1 EDT} - {3466389600 -18000 0 EST} - {3477279600 -14400 1 EDT} - {3497839200 -18000 0 EST} - {3508729200 -14400 1 EDT} - {3529288800 -18000 0 EST} - {3540178800 -14400 1 EDT} - {3560738400 -18000 0 EST} - {3572233200 -14400 1 EDT} - {3592792800 -18000 0 EST} - {3603682800 -14400 1 EDT} - {3624242400 -18000 0 EST} - {3635132400 -14400 1 EDT} - {3655692000 -18000 0 EST} - {3666582000 -14400 1 EDT} - {3687141600 -18000 0 EST} - {3698031600 -14400 1 EDT} - {3718591200 -18000 0 EST} - {3730086000 -14400 1 EDT} - {3750645600 -18000 0 EST} - {3761535600 -14400 1 EDT} - {3782095200 -18000 0 EST} - {3792985200 -14400 1 EDT} - {3813544800 -18000 0 EST} - {3824434800 -14400 1 EDT} - {3844994400 -18000 0 EST} - {3855884400 -14400 1 EDT} - {3876444000 -18000 0 EST} - {3887334000 -14400 1 EDT} - {3907893600 -18000 0 EST} - {3919388400 -14400 1 EDT} - {3939948000 -18000 0 EST} - {3950838000 -14400 1 EDT} - {3971397600 -18000 0 EST} - {3982287600 -14400 1 EDT} - {4002847200 -18000 0 EST} - {4013737200 -14400 1 EDT} - {4034296800 -18000 0 EST} - {4045186800 -14400 1 EDT} - {4065746400 -18000 0 EST} - {4076636400 -14400 1 EDT} - {4097196000 -18000 0 EST} } diff --git a/library/tzdata/America/Santa_Isabel b/library/tzdata/America/Santa_Isabel index 87cb5a8..a3a3b4f 100644 --- a/library/tzdata/America/Santa_Isabel +++ b/library/tzdata/America/Santa_Isabel @@ -1,284 +1,5 @@ # created by tools/tclZIC.tcl - do not edit - -set TZData(:America/Santa_Isabel) { - {-9223372036854775808 -27568 0 LMT} - {-1514736000 -25200 0 MST} - {-1451667600 -28800 0 PST} - {-1343062800 -25200 0 MST} - {-1234803600 -28800 0 PST} - {-1222963200 -25200 1 PDT} - {-1207242000 -28800 0 PST} - {-873820800 -25200 1 PWT} - {-769395600 -25200 1 PPT} - {-761677200 -28800 0 PST} - {-686073600 -25200 1 PDT} - {-661539600 -28800 0 PST} - {-504892800 -28800 0 PST} - {-495036000 -25200 1 PDT} - {-481734000 -28800 0 PST} - {-463586400 -25200 1 PDT} - {-450284400 -28800 0 PST} - {-431532000 -25200 1 PDT} - {-418230000 -28800 0 PST} - {-400082400 -25200 1 PDT} - {-386780400 -28800 0 PST} - {-368632800 -25200 1 PDT} - {-355330800 -28800 0 PST} - {-337183200 -25200 1 PDT} - {-323881200 -28800 0 PST} - {-305733600 -25200 1 PDT} - {-292431600 -28800 0 PST} - {-283968000 -28800 0 PST} - {189331200 -28800 0 PST} - {199274400 -25200 1 PDT} - {215600400 -28800 0 PST} - {230724000 -25200 1 PDT} - {247050000 -28800 0 PST} - {262778400 -25200 1 PDT} - {278499600 -28800 0 PST} - {294228000 -25200 1 PDT} - {309949200 -28800 0 PST} - {325677600 -25200 1 PDT} - {341398800 -28800 0 PST} - {357127200 -25200 1 PDT} - {372848400 -28800 0 PST} - {388576800 -25200 1 PDT} - {404902800 -28800 0 PST} - {420026400 -25200 1 PDT} - {436352400 -28800 0 PST} - {452080800 -25200 1 PDT} - {467802000 -28800 0 PST} - {483530400 -25200 1 PDT} - {499251600 -28800 0 PST} - {514980000 -25200 1 PDT} - {530701200 -28800 0 PST} - {544615200 -25200 1 PDT} - {562150800 -28800 0 PST} - {576064800 -25200 1 PDT} - {594205200 -28800 0 PST} - {607514400 -25200 1 PDT} - {625654800 -28800 0 PST} - {638964000 -25200 1 PDT} - {657104400 -28800 0 PST} - {671018400 -25200 1 PDT} - {688554000 -28800 0 PST} - {702468000 -25200 1 PDT} - {720003600 -28800 0 PST} - {733917600 -25200 1 PDT} - {752058000 -28800 0 PST} - {765367200 -25200 1 PDT} - {783507600 -28800 0 PST} - {796816800 -25200 1 PDT} - {814957200 -28800 0 PST} - {820483200 -28800 0 PST} - {828871200 -25200 1 PDT} - {846406800 -28800 0 PST} - {860320800 -25200 1 PDT} - {877856400 -28800 0 PST} - {891770400 -25200 1 PDT} - {909306000 -28800 0 PST} - {923220000 -25200 1 PDT} - {941360400 -28800 0 PST} - {954669600 -25200 1 PDT} - {972810000 -28800 0 PST} - {978336000 -28800 0 PST} - {986119200 -25200 1 PDT} - {1004259600 -28800 0 PST} - {1014192000 -28800 0 PST} - {1018173600 -25200 1 PDT} - {1035709200 -28800 0 PST} - {1049623200 -25200 1 PDT} - {1067158800 -28800 0 PST} - {1081072800 -25200 1 PDT} - {1099213200 -28800 0 PST} - {1112522400 -25200 1 PDT} - {1130662800 -28800 0 PST} - {1143972000 -25200 1 PDT} - {1162112400 -28800 0 PST} - {1175421600 -25200 1 PDT} - {1193562000 -28800 0 PST} - {1207476000 -25200 1 PDT} - {1225011600 -28800 0 PST} - {1238925600 -25200 1 PDT} - {1256461200 -28800 0 PST} - {1270375200 -25200 1 PDT} - {1288515600 -28800 0 PST} - {1301824800 -25200 1 PDT} - {1319965200 -28800 0 PST} - {1333274400 -25200 1 PDT} - {1351414800 -28800 0 PST} - {1365328800 -25200 1 PDT} - {1382864400 -28800 0 PST} - {1396778400 -25200 1 PDT} - {1414314000 -28800 0 PST} - {1428228000 -25200 1 PDT} - {1445763600 -28800 0 PST} - {1459677600 -25200 1 PDT} - {1477818000 -28800 0 PST} - {1491127200 -25200 1 PDT} - {1509267600 -28800 0 PST} - {1522576800 -25200 1 PDT} - {1540717200 -28800 0 PST} - {1554631200 -25200 1 PDT} - {1572166800 -28800 0 PST} - {1586080800 -25200 1 PDT} - {1603616400 -28800 0 PST} - {1617530400 -25200 1 PDT} - {1635670800 -28800 0 PST} - {1648980000 -25200 1 PDT} - {1667120400 -28800 0 PST} - {1680429600 -25200 1 PDT} - {1698570000 -28800 0 PST} - {1712484000 -25200 1 PDT} - {1730019600 -28800 0 PST} - {1743933600 -25200 1 PDT} - {1761469200 -28800 0 PST} - {1775383200 -25200 1 PDT} - {1792918800 -28800 0 PST} - {1806832800 -25200 1 PDT} - {1824973200 -28800 0 PST} - {1838282400 -25200 1 PDT} - {1856422800 -28800 0 PST} - {1869732000 -25200 1 PDT} - {1887872400 -28800 0 PST} - {1901786400 -25200 1 PDT} - {1919322000 -28800 0 PST} - {1933236000 -25200 1 PDT} - {1950771600 -28800 0 PST} - {1964685600 -25200 1 PDT} - {1982826000 -28800 0 PST} - {1996135200 -25200 1 PDT} - {2014275600 -28800 0 PST} - {2027584800 -25200 1 PDT} - {2045725200 -28800 0 PST} - {2059034400 -25200 1 PDT} - {2077174800 -28800 0 PST} - {2091088800 -25200 1 PDT} - {2108624400 -28800 0 PST} - {2122538400 -25200 1 PDT} - {2140074000 -28800 0 PST} - {2153988000 -25200 1 PDT} - {2172128400 -28800 0 PST} - {2185437600 -25200 1 PDT} - {2203578000 -28800 0 PST} - {2216887200 -25200 1 PDT} - {2235027600 -28800 0 PST} - {2248941600 -25200 1 PDT} - {2266477200 -28800 0 PST} - {2280391200 -25200 1 PDT} - {2297926800 -28800 0 PST} - {2311840800 -25200 1 PDT} - {2329376400 -28800 0 PST} - {2343290400 -25200 1 PDT} - {2361430800 -28800 0 PST} - {2374740000 -25200 1 PDT} - {2392880400 -28800 0 PST} - {2406189600 -25200 1 PDT} - {2424330000 -28800 0 PST} - {2438244000 -25200 1 PDT} - {2455779600 -28800 0 PST} - {2469693600 -25200 1 PDT} - {2487229200 -28800 0 PST} - {2501143200 -25200 1 PDT} - {2519283600 -28800 0 PST} - {2532592800 -25200 1 PDT} - {2550733200 -28800 0 PST} - {2564042400 -25200 1 PDT} - {2582182800 -28800 0 PST} - {2596096800 -25200 1 PDT} - {2613632400 -28800 0 PST} - {2627546400 -25200 1 PDT} - {2645082000 -28800 0 PST} - {2658996000 -25200 1 PDT} - {2676531600 -28800 0 PST} - {2690445600 -25200 1 PDT} - {2708586000 -28800 0 PST} - {2721895200 -25200 1 PDT} - {2740035600 -28800 0 PST} - {2753344800 -25200 1 PDT} - {2771485200 -28800 0 PST} - {2785399200 -25200 1 PDT} - {2802934800 -28800 0 PST} - {2816848800 -25200 1 PDT} - {2834384400 -28800 0 PST} - {2848298400 -25200 1 PDT} - {2866438800 -28800 0 PST} - {2879748000 -25200 1 PDT} - {2897888400 -28800 0 PST} - {2911197600 -25200 1 PDT} - {2929338000 -28800 0 PST} - {2942647200 -25200 1 PDT} - {2960787600 -28800 0 PST} - {2974701600 -25200 1 PDT} - {2992237200 -28800 0 PST} - {3006151200 -25200 1 PDT} - {3023686800 -28800 0 PST} - {3037600800 -25200 1 PDT} - {3055741200 -28800 0 PST} - {3069050400 -25200 1 PDT} - {3087190800 -28800 0 PST} - {3100500000 -25200 1 PDT} - {3118640400 -28800 0 PST} - {3132554400 -25200 1 PDT} - {3150090000 -28800 0 PST} - {3164004000 -25200 1 PDT} - {3181539600 -28800 0 PST} - {3195453600 -25200 1 PDT} - {3212989200 -28800 0 PST} - {3226903200 -25200 1 PDT} - {3245043600 -28800 0 PST} - {3258352800 -25200 1 PDT} - {3276493200 -28800 0 PST} - {3289802400 -25200 1 PDT} - {3307942800 -28800 0 PST} - {3321856800 -25200 1 PDT} - {3339392400 -28800 0 PST} - {3353306400 -25200 1 PDT} - {3370842000 -28800 0 PST} - {3384756000 -25200 1 PDT} - {3402896400 -28800 0 PST} - {3416205600 -25200 1 PDT} - {3434346000 -28800 0 PST} - {3447655200 -25200 1 PDT} - {3465795600 -28800 0 PST} - {3479709600 -25200 1 PDT} - {3497245200 -28800 0 PST} - {3511159200 -25200 1 PDT} - {3528694800 -28800 0 PST} - {3542608800 -25200 1 PDT} - {3560144400 -28800 0 PST} - {3574058400 -25200 1 PDT} - {3592198800 -28800 0 PST} - {3605508000 -25200 1 PDT} - {3623648400 -28800 0 PST} - {3636957600 -25200 1 PDT} - {3655098000 -28800 0 PST} - {3669012000 -25200 1 PDT} - {3686547600 -28800 0 PST} - {3700461600 -25200 1 PDT} - {3717997200 -28800 0 PST} - {3731911200 -25200 1 PDT} - {3750051600 -28800 0 PST} - {3763360800 -25200 1 PDT} - {3781501200 -28800 0 PST} - {3794810400 -25200 1 PDT} - {3812950800 -28800 0 PST} - {3826260000 -25200 1 PDT} - {3844400400 -28800 0 PST} - {3858314400 -25200 1 PDT} - {3875850000 -28800 0 PST} - {3889764000 -25200 1 PDT} - {3907299600 -28800 0 PST} - {3921213600 -25200 1 PDT} - {3939354000 -28800 0 PST} - {3952663200 -25200 1 PDT} - {3970803600 -28800 0 PST} - {3984112800 -25200 1 PDT} - {4002253200 -28800 0 PST} - {4016167200 -25200 1 PDT} - {4033702800 -28800 0 PST} - {4047616800 -25200 1 PDT} - {4065152400 -28800 0 PST} - {4079066400 -25200 1 PDT} - {4096602000 -28800 0 PST} +if {![info exists TZData(America/Tijuana)]} { + LoadTimeZoneFile America/Tijuana } +set TZData(:America/Santa_Isabel) $TZData(:America/Tijuana) diff --git a/library/tzdata/Asia/Barnaul b/library/tzdata/Asia/Barnaul new file mode 100644 index 0000000..8072e34 --- /dev/null +++ b/library/tzdata/Asia/Barnaul @@ -0,0 +1,71 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Barnaul) { + {-9223372036854775808 20100 0 LMT} + {-1579844100 21600 0 +06} + {-1247551200 25200 0 +08} + {354906000 28800 1 +08} + {370713600 25200 0 +07} + {386442000 28800 1 +08} + {402249600 25200 0 +07} + {417978000 28800 1 +08} + {433785600 25200 0 +07} + {449600400 28800 1 +08} + {465332400 25200 0 +07} + {481057200 28800 1 +08} + {496782000 25200 0 +07} + {512506800 28800 1 +08} + {528231600 25200 0 +07} + {543956400 28800 1 +08} + {559681200 25200 0 +07} + {575406000 28800 1 +08} + {591130800 25200 0 +07} + {606855600 28800 1 +08} + {622580400 25200 0 +07} + {638305200 28800 1 +08} + {654634800 25200 0 +07} + {670359600 28800 1 +08} + {686084400 25200 0 +07} + {701798400 28800 1 +08} + {717519600 25200 0 +07} + {733258800 28800 1 +08} + {748983600 25200 0 +07} + {764708400 28800 1 +08} + {780433200 25200 0 +07} + {796158000 28800 1 +08} + {801594000 25200 0 +07} + {811886400 21600 0 +06} + {828216000 25200 1 +07} + {846360000 21600 0 +06} + {859665600 25200 1 +07} + {877809600 21600 0 +06} + {891115200 25200 1 +07} + {909259200 21600 0 +06} + {922564800 25200 1 +07} + {941313600 21600 0 +06} + {954014400 25200 1 +07} + {972763200 21600 0 +06} + {985464000 25200 1 +07} + {1004212800 21600 0 +06} + {1017518400 25200 1 +07} + {1035662400 21600 0 +06} + {1048968000 25200 1 +07} + {1067112000 21600 0 +06} + {1080417600 25200 1 +07} + {1099166400 21600 0 +06} + {1111867200 25200 1 +07} + {1130616000 21600 0 +06} + {1143316800 25200 1 +07} + {1162065600 21600 0 +06} + {1174766400 25200 1 +07} + {1193515200 21600 0 +06} + {1206820800 25200 1 +07} + {1224964800 21600 0 +06} + {1238270400 25200 1 +07} + {1256414400 21600 0 +06} + {1269720000 25200 1 +07} + {1288468800 21600 0 +06} + {1301169600 25200 0 +07} + {1414263600 21600 0 +06} + {1459022400 25200 0 +07} +} diff --git a/library/tzdata/Asia/Chita b/library/tzdata/Asia/Chita index eabce7f..6aef523 100644 --- a/library/tzdata/Asia/Chita +++ b/library/tzdata/Asia/Chita @@ -68,4 +68,5 @@ set TZData(:Asia/Chita) { {1288458000 32400 0 YAKT} {1301158800 36000 0 YAKT} {1414252800 28800 0 IRKT} + {1459015200 32400 0 YAKT} } diff --git a/library/tzdata/Asia/Gaza b/library/tzdata/Asia/Gaza index 805b6b7..6adfe6d 100644 --- a/library/tzdata/Asia/Gaza +++ b/library/tzdata/Asia/Gaza @@ -107,172 +107,172 @@ set TZData(:Asia/Gaza) { {1414098000 7200 0 EET} {1427493600 10800 1 EEST} {1445547600 7200 0 EET} - {1458943200 10800 1 EEST} + {1458946800 10800 1 EEST} {1476997200 7200 0 EET} - {1490997600 10800 1 EEST} + {1490396400 10800 1 EEST} {1509051600 7200 0 EET} - {1522447200 10800 1 EEST} + {1522450800 10800 1 EEST} {1540501200 7200 0 EET} - {1553896800 10800 1 EEST} + {1553900400 10800 1 EEST} {1571950800 7200 0 EET} - {1585346400 10800 1 EEST} + {1585350000 10800 1 EEST} {1603400400 7200 0 EET} - {1616796000 10800 1 EEST} + {1616799600 10800 1 EEST} {1634850000 7200 0 EET} - {1648245600 10800 1 EEST} + {1648249200 10800 1 EEST} {1666299600 7200 0 EET} - {1680300000 10800 1 EEST} + {1679698800 10800 1 EEST} {1698354000 7200 0 EET} - {1711749600 10800 1 EEST} + {1711753200 10800 1 EEST} {1729803600 7200 0 EET} - {1743199200 10800 1 EEST} + {1743202800 10800 1 EEST} {1761253200 7200 0 EET} - {1774648800 10800 1 EEST} + {1774652400 10800 1 EEST} {1792702800 7200 0 EET} - {1806098400 10800 1 EEST} + {1806102000 10800 1 EEST} {1824152400 7200 0 EET} - {1838152800 10800 1 EEST} + {1837551600 10800 1 EEST} {1856206800 7200 0 EET} - {1869602400 10800 1 EEST} + {1869606000 10800 1 EEST} {1887656400 7200 0 EET} - {1901052000 10800 1 EEST} + {1901055600 10800 1 EEST} {1919106000 7200 0 EET} - {1932501600 10800 1 EEST} + {1932505200 10800 1 EEST} {1950555600 7200 0 EET} - {1963951200 10800 1 EEST} + {1963954800 10800 1 EEST} {1982005200 7200 0 EET} - {1995400800 10800 1 EEST} + {1995404400 10800 1 EEST} {2013454800 7200 0 EET} - {2027455200 10800 1 EEST} + {2026854000 10800 1 EEST} {2045509200 7200 0 EET} - {2058904800 10800 1 EEST} + {2058908400 10800 1 EEST} {2076958800 7200 0 EET} - {2090354400 10800 1 EEST} + {2090358000 10800 1 EEST} {2108408400 7200 0 EET} - {2121804000 10800 1 EEST} + {2121807600 10800 1 EEST} {2139858000 7200 0 EET} - {2153253600 10800 1 EEST} + {2153257200 10800 1 EEST} {2171307600 7200 0 EET} - {2184703200 10800 1 EEST} + {2184706800 10800 1 EEST} {2202757200 7200 0 EET} - {2216757600 10800 1 EEST} + {2216761200 10800 1 EEST} {2234811600 7200 0 EET} - {2248207200 10800 1 EEST} + {2248210800 10800 1 EEST} {2266261200 7200 0 EET} - {2279656800 10800 1 EEST} + {2279660400 10800 1 EEST} {2297710800 7200 0 EET} - {2311106400 10800 1 EEST} + {2311110000 10800 1 EEST} {2329160400 7200 0 EET} - {2342556000 10800 1 EEST} + {2342559600 10800 1 EEST} {2360610000 7200 0 EET} - {2374610400 10800 1 EEST} + {2374009200 10800 1 EEST} {2392664400 7200 0 EET} - {2406060000 10800 1 EEST} + {2406063600 10800 1 EEST} {2424114000 7200 0 EET} - {2437509600 10800 1 EEST} + {2437513200 10800 1 EEST} {2455563600 7200 0 EET} - {2468959200 10800 1 EEST} + {2468962800 10800 1 EEST} {2487013200 7200 0 EET} - {2500408800 10800 1 EEST} + {2500412400 10800 1 EEST} {2518462800 7200 0 EET} - {2531858400 10800 1 EEST} + {2531862000 10800 1 EEST} {2549912400 7200 0 EET} - {2563912800 10800 1 EEST} + {2563311600 10800 1 EEST} {2581966800 7200 0 EET} - {2595362400 10800 1 EEST} + {2595366000 10800 1 EEST} {2613416400 7200 0 EET} - {2626812000 10800 1 EEST} + {2626815600 10800 1 EEST} {2644866000 7200 0 EET} - {2658261600 10800 1 EEST} + {2658265200 10800 1 EEST} {2676315600 7200 0 EET} - {2689711200 10800 1 EEST} + {2689714800 10800 1 EEST} {2707765200 7200 0 EET} - {2721765600 10800 1 EEST} + {2721164400 10800 1 EEST} {2739819600 7200 0 EET} - {2753215200 10800 1 EEST} + {2753218800 10800 1 EEST} {2771269200 7200 0 EET} - {2784664800 10800 1 EEST} + {2784668400 10800 1 EEST} {2802718800 7200 0 EET} - {2816114400 10800 1 EEST} + {2816118000 10800 1 EEST} {2834168400 7200 0 EET} - {2847564000 10800 1 EEST} + {2847567600 10800 1 EEST} {2865618000 7200 0 EET} - {2879013600 10800 1 EEST} + {2879017200 10800 1 EEST} {2897067600 7200 0 EET} - {2911068000 10800 1 EEST} + {2910466800 10800 1 EEST} {2929122000 7200 0 EET} - {2942517600 10800 1 EEST} + {2942521200 10800 1 EEST} {2960571600 7200 0 EET} - {2973967200 10800 1 EEST} + {2973970800 10800 1 EEST} {2992021200 7200 0 EET} - {3005416800 10800 1 EEST} + {3005420400 10800 1 EEST} {3023470800 7200 0 EET} - {3036866400 10800 1 EEST} + {3036870000 10800 1 EEST} {3054920400 7200 0 EET} - {3068316000 10800 1 EEST} + {3068319600 10800 1 EEST} {3086370000 7200 0 EET} - {3100370400 10800 1 EEST} + {3100374000 10800 1 EEST} {3118424400 7200 0 EET} - {3131820000 10800 1 EEST} + {3131823600 10800 1 EEST} {3149874000 7200 0 EET} - {3163269600 10800 1 EEST} + {3163273200 10800 1 EEST} {3181323600 7200 0 EET} - {3194719200 10800 1 EEST} + {3194722800 10800 1 EEST} {3212773200 7200 0 EET} - {3226168800 10800 1 EEST} + {3226172400 10800 1 EEST} {3244222800 7200 0 EET} - {3258223200 10800 1 EEST} + {3257622000 10800 1 EEST} {3276277200 7200 0 EET} - {3289672800 10800 1 EEST} + {3289676400 10800 1 EEST} {3307726800 7200 0 EET} - {3321122400 10800 1 EEST} + {3321126000 10800 1 EEST} {3339176400 7200 0 EET} - {3352572000 10800 1 EEST} + {3352575600 10800 1 EEST} {3370626000 7200 0 EET} - {3384021600 10800 1 EEST} + {3384025200 10800 1 EEST} {3402075600 7200 0 EET} - {3415471200 10800 1 EEST} + {3415474800 10800 1 EEST} {3433525200 7200 0 EET} - {3447525600 10800 1 EEST} + {3446924400 10800 1 EEST} {3465579600 7200 0 EET} - {3478975200 10800 1 EEST} + {3478978800 10800 1 EEST} {3497029200 7200 0 EET} - {3510424800 10800 1 EEST} + {3510428400 10800 1 EEST} {3528478800 7200 0 EET} - {3541874400 10800 1 EEST} + {3541878000 10800 1 EEST} {3559928400 7200 0 EET} - {3573324000 10800 1 EEST} + {3573327600 10800 1 EEST} {3591378000 7200 0 EET} - {3605378400 10800 1 EEST} + {3604777200 10800 1 EEST} {3623432400 7200 0 EET} - {3636828000 10800 1 EEST} + {3636831600 10800 1 EEST} {3654882000 7200 0 EET} - {3668277600 10800 1 EEST} + {3668281200 10800 1 EEST} {3686331600 7200 0 EET} - {3699727200 10800 1 EEST} + {3699730800 10800 1 EEST} {3717781200 7200 0 EET} - {3731176800 10800 1 EEST} + {3731180400 10800 1 EEST} {3749230800 7200 0 EET} - {3762626400 10800 1 EEST} + {3762630000 10800 1 EEST} {3780680400 7200 0 EET} - {3794680800 10800 1 EEST} + {3794079600 10800 1 EEST} {3812734800 7200 0 EET} - {3826130400 10800 1 EEST} + {3826134000 10800 1 EEST} {3844184400 7200 0 EET} - {3857580000 10800 1 EEST} + {3857583600 10800 1 EEST} {3875634000 7200 0 EET} - {3889029600 10800 1 EEST} + {3889033200 10800 1 EEST} {3907083600 7200 0 EET} - {3920479200 10800 1 EEST} + {3920482800 10800 1 EEST} {3938533200 7200 0 EET} - {3951928800 10800 1 EEST} + {3951932400 10800 1 EEST} {3969982800 7200 0 EET} - {3983983200 10800 1 EEST} + {3983986800 10800 1 EEST} {4002037200 7200 0 EET} - {4015432800 10800 1 EEST} + {4015436400 10800 1 EEST} {4033486800 7200 0 EET} - {4046882400 10800 1 EEST} + {4046886000 10800 1 EEST} {4064936400 7200 0 EET} - {4078332000 10800 1 EEST} + {4078335600 10800 1 EEST} {4096386000 7200 0 EET} } diff --git a/library/tzdata/Asia/Hebron b/library/tzdata/Asia/Hebron index 9049d93..2db45f2 100644 --- a/library/tzdata/Asia/Hebron +++ b/library/tzdata/Asia/Hebron @@ -106,172 +106,172 @@ set TZData(:Asia/Hebron) { {1414098000 7200 0 EET} {1427493600 10800 1 EEST} {1445547600 7200 0 EET} - {1458943200 10800 1 EEST} + {1458946800 10800 1 EEST} {1476997200 7200 0 EET} - {1490997600 10800 1 EEST} + {1490396400 10800 1 EEST} {1509051600 7200 0 EET} - {1522447200 10800 1 EEST} + {1522450800 10800 1 EEST} {1540501200 7200 0 EET} - {1553896800 10800 1 EEST} + {1553900400 10800 1 EEST} {1571950800 7200 0 EET} - {1585346400 10800 1 EEST} + {1585350000 10800 1 EEST} {1603400400 7200 0 EET} - {1616796000 10800 1 EEST} + {1616799600 10800 1 EEST} {1634850000 7200 0 EET} - {1648245600 10800 1 EEST} + {1648249200 10800 1 EEST} {1666299600 7200 0 EET} - {1680300000 10800 1 EEST} + {1679698800 10800 1 EEST} {1698354000 7200 0 EET} - {1711749600 10800 1 EEST} + {1711753200 10800 1 EEST} {1729803600 7200 0 EET} - {1743199200 10800 1 EEST} + {1743202800 10800 1 EEST} {1761253200 7200 0 EET} - {1774648800 10800 1 EEST} + {1774652400 10800 1 EEST} {1792702800 7200 0 EET} - {1806098400 10800 1 EEST} + {1806102000 10800 1 EEST} {1824152400 7200 0 EET} - {1838152800 10800 1 EEST} + {1837551600 10800 1 EEST} {1856206800 7200 0 EET} - {1869602400 10800 1 EEST} + {1869606000 10800 1 EEST} {1887656400 7200 0 EET} - {1901052000 10800 1 EEST} + {1901055600 10800 1 EEST} {1919106000 7200 0 EET} - {1932501600 10800 1 EEST} + {1932505200 10800 1 EEST} {1950555600 7200 0 EET} - {1963951200 10800 1 EEST} + {1963954800 10800 1 EEST} {1982005200 7200 0 EET} - {1995400800 10800 1 EEST} + {1995404400 10800 1 EEST} {2013454800 7200 0 EET} - {2027455200 10800 1 EEST} + {2026854000 10800 1 EEST} {2045509200 7200 0 EET} - {2058904800 10800 1 EEST} + {2058908400 10800 1 EEST} {2076958800 7200 0 EET} - {2090354400 10800 1 EEST} + {2090358000 10800 1 EEST} {2108408400 7200 0 EET} - {2121804000 10800 1 EEST} + {2121807600 10800 1 EEST} {2139858000 7200 0 EET} - {2153253600 10800 1 EEST} + {2153257200 10800 1 EEST} {2171307600 7200 0 EET} - {2184703200 10800 1 EEST} + {2184706800 10800 1 EEST} {2202757200 7200 0 EET} - {2216757600 10800 1 EEST} + {2216761200 10800 1 EEST} {2234811600 7200 0 EET} - {2248207200 10800 1 EEST} + {2248210800 10800 1 EEST} {2266261200 7200 0 EET} - {2279656800 10800 1 EEST} + {2279660400 10800 1 EEST} {2297710800 7200 0 EET} - {2311106400 10800 1 EEST} + {2311110000 10800 1 EEST} {2329160400 7200 0 EET} - {2342556000 10800 1 EEST} + {2342559600 10800 1 EEST} {2360610000 7200 0 EET} - {2374610400 10800 1 EEST} + {2374009200 10800 1 EEST} {2392664400 7200 0 EET} - {2406060000 10800 1 EEST} + {2406063600 10800 1 EEST} {2424114000 7200 0 EET} - {2437509600 10800 1 EEST} + {2437513200 10800 1 EEST} {2455563600 7200 0 EET} - {2468959200 10800 1 EEST} + {2468962800 10800 1 EEST} {2487013200 7200 0 EET} - {2500408800 10800 1 EEST} + {2500412400 10800 1 EEST} {2518462800 7200 0 EET} - {2531858400 10800 1 EEST} + {2531862000 10800 1 EEST} {2549912400 7200 0 EET} - {2563912800 10800 1 EEST} + {2563311600 10800 1 EEST} {2581966800 7200 0 EET} - {2595362400 10800 1 EEST} + {2595366000 10800 1 EEST} {2613416400 7200 0 EET} - {2626812000 10800 1 EEST} + {2626815600 10800 1 EEST} {2644866000 7200 0 EET} - {2658261600 10800 1 EEST} + {2658265200 10800 1 EEST} {2676315600 7200 0 EET} - {2689711200 10800 1 EEST} + {2689714800 10800 1 EEST} {2707765200 7200 0 EET} - {2721765600 10800 1 EEST} + {2721164400 10800 1 EEST} {2739819600 7200 0 EET} - {2753215200 10800 1 EEST} + {2753218800 10800 1 EEST} {2771269200 7200 0 EET} - {2784664800 10800 1 EEST} + {2784668400 10800 1 EEST} {2802718800 7200 0 EET} - {2816114400 10800 1 EEST} + {2816118000 10800 1 EEST} {2834168400 7200 0 EET} - {2847564000 10800 1 EEST} + {2847567600 10800 1 EEST} {2865618000 7200 0 EET} - {2879013600 10800 1 EEST} + {2879017200 10800 1 EEST} {2897067600 7200 0 EET} - {2911068000 10800 1 EEST} + {2910466800 10800 1 EEST} {2929122000 7200 0 EET} - {2942517600 10800 1 EEST} + {2942521200 10800 1 EEST} {2960571600 7200 0 EET} - {2973967200 10800 1 EEST} + {2973970800 10800 1 EEST} {2992021200 7200 0 EET} - {3005416800 10800 1 EEST} + {3005420400 10800 1 EEST} {3023470800 7200 0 EET} - {3036866400 10800 1 EEST} + {3036870000 10800 1 EEST} {3054920400 7200 0 EET} - {3068316000 10800 1 EEST} + {3068319600 10800 1 EEST} {3086370000 7200 0 EET} - {3100370400 10800 1 EEST} + {3100374000 10800 1 EEST} {3118424400 7200 0 EET} - {3131820000 10800 1 EEST} + {3131823600 10800 1 EEST} {3149874000 7200 0 EET} - {3163269600 10800 1 EEST} + {3163273200 10800 1 EEST} {3181323600 7200 0 EET} - {3194719200 10800 1 EEST} + {3194722800 10800 1 EEST} {3212773200 7200 0 EET} - {3226168800 10800 1 EEST} + {3226172400 10800 1 EEST} {3244222800 7200 0 EET} - {3258223200 10800 1 EEST} + {3257622000 10800 1 EEST} {3276277200 7200 0 EET} - {3289672800 10800 1 EEST} + {3289676400 10800 1 EEST} {3307726800 7200 0 EET} - {3321122400 10800 1 EEST} + {3321126000 10800 1 EEST} {3339176400 7200 0 EET} - {3352572000 10800 1 EEST} + {3352575600 10800 1 EEST} {3370626000 7200 0 EET} - {3384021600 10800 1 EEST} + {3384025200 10800 1 EEST} {3402075600 7200 0 EET} - {3415471200 10800 1 EEST} + {3415474800 10800 1 EEST} {3433525200 7200 0 EET} - {3447525600 10800 1 EEST} + {3446924400 10800 1 EEST} {3465579600 7200 0 EET} - {3478975200 10800 1 EEST} + {3478978800 10800 1 EEST} {3497029200 7200 0 EET} - {3510424800 10800 1 EEST} + {3510428400 10800 1 EEST} {3528478800 7200 0 EET} - {3541874400 10800 1 EEST} + {3541878000 10800 1 EEST} {3559928400 7200 0 EET} - {3573324000 10800 1 EEST} + {3573327600 10800 1 EEST} {3591378000 7200 0 EET} - {3605378400 10800 1 EEST} + {3604777200 10800 1 EEST} {3623432400 7200 0 EET} - {3636828000 10800 1 EEST} + {3636831600 10800 1 EEST} {3654882000 7200 0 EET} - {3668277600 10800 1 EEST} + {3668281200 10800 1 EEST} {3686331600 7200 0 EET} - {3699727200 10800 1 EEST} + {3699730800 10800 1 EEST} {3717781200 7200 0 EET} - {3731176800 10800 1 EEST} + {3731180400 10800 1 EEST} {3749230800 7200 0 EET} - {3762626400 10800 1 EEST} + {3762630000 10800 1 EEST} {3780680400 7200 0 EET} - {3794680800 10800 1 EEST} + {3794079600 10800 1 EEST} {3812734800 7200 0 EET} - {3826130400 10800 1 EEST} + {3826134000 10800 1 EEST} {3844184400 7200 0 EET} - {3857580000 10800 1 EEST} + {3857583600 10800 1 EEST} {3875634000 7200 0 EET} - {3889029600 10800 1 EEST} + {3889033200 10800 1 EEST} {3907083600 7200 0 EET} - {3920479200 10800 1 EEST} + {3920482800 10800 1 EEST} {3938533200 7200 0 EET} - {3951928800 10800 1 EEST} + {3951932400 10800 1 EEST} {3969982800 7200 0 EET} - {3983983200 10800 1 EEST} + {3983986800 10800 1 EEST} {4002037200 7200 0 EET} - {4015432800 10800 1 EEST} + {4015436400 10800 1 EEST} {4033486800 7200 0 EET} - {4046882400 10800 1 EEST} + {4046886000 10800 1 EEST} {4064936400 7200 0 EET} - {4078332000 10800 1 EEST} + {4078335600 10800 1 EEST} {4096386000 7200 0 EET} } diff --git a/library/tzdata/Asia/Karachi b/library/tzdata/Asia/Karachi index 3faa31e..669c11a 100644 --- a/library/tzdata/Asia/Karachi +++ b/library/tzdata/Asia/Karachi @@ -7,8 +7,8 @@ set TZData(:Asia/Karachi) { {-764145000 19800 0 IST} {-576135000 18000 0 KART} {38775600 18000 0 PKT} - {1018119660 21600 1 PKST} - {1033840860 18000 0 PKT} + {1018119600 21600 1 PKST} + {1033840800 18000 0 PKT} {1212260400 21600 1 PKST} {1225476000 18000 0 PKT} {1239735600 21600 1 PKST} diff --git a/library/tzdata/Asia/Sakhalin b/library/tzdata/Asia/Sakhalin index eed20ba..9247046 100644 --- a/library/tzdata/Asia/Sakhalin +++ b/library/tzdata/Asia/Sakhalin @@ -70,4 +70,5 @@ set TZData(:Asia/Sakhalin) { {1288454400 36000 0 SAKT} {1301155200 39600 0 SAKT} {1414249200 36000 0 SAKT} + {1459008000 39600 0 SAKT} } diff --git a/library/tzdata/Asia/Tehran b/library/tzdata/Asia/Tehran index 7dca0ae..5fd840d 100644 --- a/library/tzdata/Asia/Tehran +++ b/library/tzdata/Asia/Tehran @@ -102,4 +102,128 @@ set TZData(:Asia/Tehran) { {2105551800 12600 0 IRST} {2121193800 16200 1 IRDT} {2137087800 12600 0 IRST} + {2152729800 16200 1 IRDT} + {2168623800 12600 0 IRST} + {2184265800 16200 1 IRDT} + {2200159800 12600 0 IRST} + {2215888200 16200 1 IRDT} + {2231782200 12600 0 IRST} + {2247424200 16200 1 IRDT} + {2263318200 12600 0 IRST} + {2278960200 16200 1 IRDT} + {2294854200 12600 0 IRST} + {2310496200 16200 1 IRDT} + {2326390200 12600 0 IRST} + {2342118600 16200 1 IRDT} + {2358012600 12600 0 IRST} + {2373654600 16200 1 IRDT} + {2389548600 12600 0 IRST} + {2405190600 16200 1 IRDT} + {2421084600 12600 0 IRST} + {2436726600 16200 1 IRDT} + {2452620600 12600 0 IRST} + {2468349000 16200 1 IRDT} + {2484243000 12600 0 IRST} + {2499885000 16200 1 IRDT} + {2515779000 12600 0 IRST} + {2531421000 16200 1 IRDT} + {2547315000 12600 0 IRST} + {2562957000 16200 1 IRDT} + {2578851000 12600 0 IRST} + {2594579400 16200 1 IRDT} + {2610473400 12600 0 IRST} + {2626115400 16200 1 IRDT} + {2642009400 12600 0 IRST} + {2657651400 16200 1 IRDT} + {2673545400 12600 0 IRST} + {2689187400 16200 1 IRDT} + {2705081400 12600 0 IRST} + {2720809800 16200 1 IRDT} + {2736703800 12600 0 IRST} + {2752345800 16200 1 IRDT} + {2768239800 12600 0 IRST} + {2783881800 16200 1 IRDT} + {2799775800 12600 0 IRST} + {2815417800 16200 1 IRDT} + {2831311800 12600 0 IRST} + {2847040200 16200 1 IRDT} + {2862934200 12600 0 IRST} + {2878576200 16200 1 IRDT} + {2894470200 12600 0 IRST} + {2910112200 16200 1 IRDT} + {2926006200 12600 0 IRST} + {2941648200 16200 1 IRDT} + {2957542200 12600 0 IRST} + {2973270600 16200 1 IRDT} + {2989164600 12600 0 IRST} + {3004806600 16200 1 IRDT} + {3020700600 12600 0 IRST} + {3036342600 16200 1 IRDT} + {3052236600 12600 0 IRST} + {3067878600 16200 1 IRDT} + {3083772600 12600 0 IRST} + {3099501000 16200 1 IRDT} + {3115395000 12600 0 IRST} + {3131037000 16200 1 IRDT} + {3146931000 12600 0 IRST} + {3162573000 16200 1 IRDT} + {3178467000 12600 0 IRST} + {3194109000 16200 1 IRDT} + {3210003000 12600 0 IRST} + {3225731400 16200 1 IRDT} + {3241625400 12600 0 IRST} + {3257267400 16200 1 IRDT} + {3273161400 12600 0 IRST} + {3288803400 16200 1 IRDT} + {3304697400 12600 0 IRST} + {3320339400 16200 1 IRDT} + {3336233400 12600 0 IRST} + {3351961800 16200 1 IRDT} + {3367855800 12600 0 IRST} + {3383497800 16200 1 IRDT} + {3399391800 12600 0 IRST} + {3415033800 16200 1 IRDT} + {3430927800 12600 0 IRST} + {3446569800 16200 1 IRDT} + {3462463800 12600 0 IRST} + {3478192200 16200 1 IRDT} + {3494086200 12600 0 IRST} + {3509728200 16200 1 IRDT} + {3525622200 12600 0 IRST} + {3541264200 16200 1 IRDT} + {3557158200 12600 0 IRST} + {3572800200 16200 1 IRDT} + {3588694200 12600 0 IRST} + {3604422600 16200 1 IRDT} + {3620316600 12600 0 IRST} + {3635958600 16200 1 IRDT} + {3651852600 12600 0 IRST} + {3667494600 16200 1 IRDT} + {3683388600 12600 0 IRST} + {3699030600 16200 1 IRDT} + {3714924600 12600 0 IRST} + {3730653000 16200 1 IRDT} + {3746547000 12600 0 IRST} + {3762189000 16200 1 IRDT} + {3778083000 12600 0 IRST} + {3793725000 16200 1 IRDT} + {3809619000 12600 0 IRST} + {3825261000 16200 1 IRDT} + {3841155000 12600 0 IRST} + {3856883400 16200 1 IRDT} + {3872777400 12600 0 IRST} + {3888419400 16200 1 IRDT} + {3904313400 12600 0 IRST} + {3919955400 16200 1 IRDT} + {3935849400 12600 0 IRST} + {3951491400 16200 1 IRDT} + {3967385400 12600 0 IRST} + {3983113800 16200 1 IRDT} + {3999007800 12600 0 IRST} + {4014649800 16200 1 IRDT} + {4030543800 12600 0 IRST} + {4046185800 16200 1 IRDT} + {4062079800 12600 0 IRST} + {4077721800 16200 1 IRDT} + {4093615800 12600 0 IRST} } diff --git a/library/tzdata/Europe/Astrakhan b/library/tzdata/Europe/Astrakhan new file mode 100644 index 0000000..e5e9c26 --- /dev/null +++ b/library/tzdata/Europe/Astrakhan @@ -0,0 +1,70 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Astrakhan) { + {-9223372036854775808 11532 0 LMT} + {-1441249932 10800 0 +03} + {-1247540400 14400 0 +05} + {354916800 18000 1 +05} + {370724400 14400 0 +04} + {386452800 18000 1 +05} + {402260400 14400 0 +04} + {417988800 18000 1 +05} + {433796400 14400 0 +04} + {449611200 18000 1 +05} + {465343200 14400 0 +04} + {481068000 18000 1 +05} + {496792800 14400 0 +04} + {512517600 18000 1 +05} + {528242400 14400 0 +04} + {543967200 18000 1 +05} + {559692000 14400 0 +04} + {575416800 18000 1 +05} + {591141600 14400 0 +04} + {606866400 10800 0 +04} + {606870000 14400 1 +04} + {622594800 10800 0 +03} + {638319600 14400 1 +04} + {654649200 10800 0 +03} + {670374000 14400 0 +04} + {701820000 14400 0 +04} + {717534000 10800 0 +03} + {733273200 14400 1 +04} + {748998000 10800 0 +03} + {764722800 14400 1 +04} + {780447600 10800 0 +03} + {796172400 14400 1 +04} + {811897200 10800 0 +03} + {828226800 14400 1 +04} + {846370800 10800 0 +03} + {859676400 14400 1 +04} + {877820400 10800 0 +03} + {891126000 14400 1 +04} + {909270000 10800 0 +03} + {922575600 14400 1 +04} + {941324400 10800 0 +03} + {954025200 14400 1 +04} + {972774000 10800 0 +03} + {985474800 14400 1 +04} + {1004223600 10800 0 +03} + {1017529200 14400 1 +04} + {1035673200 10800 0 +03} + {1048978800 14400 1 +04} + {1067122800 10800 0 +03} + {1080428400 14400 1 +04} + {1099177200 10800 0 +03} + {1111878000 14400 1 +04} + {1130626800 10800 0 +03} + {1143327600 14400 1 +04} + {1162076400 10800 0 +03} + {1174777200 14400 1 +04} + {1193526000 10800 0 +03} + {1206831600 14400 1 +04} + {1224975600 10800 0 +03} + {1238281200 14400 1 +04} + {1256425200 10800 0 +03} + {1269730800 14400 1 +04} + {1288479600 10800 0 +03} + {1301180400 14400 0 +04} + {1414274400 10800 0 +03} + {1459033200 14400 0 +04} +} diff --git a/library/tzdata/Europe/Chisinau b/library/tzdata/Europe/Chisinau index 5c240e7..db4c6db 100644 --- a/library/tzdata/Europe/Chisinau +++ b/library/tzdata/Europe/Chisinau @@ -46,9 +46,9 @@ set TZData(:Europe/Chisinau) { {591145200 10800 0 MSK} {606870000 14400 1 MSD} {622594800 10800 0 MSK} - {631141200 10800 0 MSK} - {641941200 7200 0 EET} - {662680800 7200 0 EEMMTT} + {638319600 14400 1 MSD} + {641948400 10800 0 EEST} + {654652800 7200 0 EET} {670377600 10800 1 EEST} {686102400 7200 0 EET} {694216800 7200 0 EET} diff --git a/library/tzdata/Europe/Samara b/library/tzdata/Europe/Samara index ee9d989..47615de 100644 --- a/library/tzdata/Europe/Samara +++ b/library/tzdata/Europe/Samara @@ -28,7 +28,7 @@ set TZData(:Europe/Samara) { {654649200 10800 0 MSK} {670374000 7200 0 EEMMTT} {670377600 10800 1 EEST} - {686102400 10800 0 KUYT} + {686102400 10800 0 SAMT} {687916800 14400 0 SAMT} {701809200 18000 1 SAMST} {717530400 14400 0 SAMT} diff --git a/library/tzdata/Europe/Ulyanovsk b/library/tzdata/Europe/Ulyanovsk new file mode 100644 index 0000000..b975622 --- /dev/null +++ b/library/tzdata/Europe/Ulyanovsk @@ -0,0 +1,73 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Ulyanovsk) { + {-9223372036854775808 11616 0 LMT} + {-1593825216 10800 0 +03} + {-1247540400 14400 0 +05} + {354916800 18000 1 +05} + {370724400 14400 0 +04} + {386452800 18000 1 +05} + {402260400 14400 0 +04} + {417988800 18000 1 +05} + {433796400 14400 0 +04} + {449611200 18000 1 +05} + {465343200 14400 0 +04} + {481068000 18000 1 +05} + {496792800 14400 0 +04} + {512517600 18000 1 +05} + {528242400 14400 0 +04} + {543967200 18000 1 +05} + {559692000 14400 0 +04} + {575416800 18000 1 +05} + {591141600 14400 0 +04} + {606866400 10800 0 +04} + {606870000 14400 1 +04} + {622594800 10800 0 +03} + {638319600 14400 1 +04} + {654649200 10800 0 +03} + {670374000 7200 0 +03} + {670377600 10800 1 +03} + {686102400 7200 0 +02} + {695779200 10800 0 +04} + {701812800 14400 1 +04} + {717534000 10800 0 +03} + {733273200 14400 1 +04} + {748998000 10800 0 +03} + {764722800 14400 1 +04} + {780447600 10800 0 +03} + {796172400 14400 1 +04} + {811897200 10800 0 +03} + {828226800 14400 1 +04} + {846370800 10800 0 +03} + {859676400 14400 1 +04} + {877820400 10800 0 +03} + {891126000 14400 1 +04} + {909270000 10800 0 +03} + {922575600 14400 1 +04} + {941324400 10800 0 +03} + {954025200 14400 1 +04} + {972774000 10800 0 +03} + {985474800 14400 1 +04} + {1004223600 10800 0 +03} + {1017529200 14400 1 +04} + {1035673200 10800 0 +03} + {1048978800 14400 1 +04} + {1067122800 10800 0 +03} + {1080428400 14400 1 +04} + {1099177200 10800 0 +03} + {1111878000 14400 1 +04} + {1130626800 10800 0 +03} + {1143327600 14400 1 +04} + {1162076400 10800 0 +03} + {1174777200 14400 1 +04} + {1193526000 10800 0 +03} + {1206831600 14400 1 +04} + {1224975600 10800 0 +03} + {1238281200 14400 1 +04} + {1256425200 10800 0 +03} + {1269730800 14400 1 +04} + {1288479600 10800 0 +03} + {1301180400 14400 0 +04} + {1414274400 10800 0 +03} + {1459033200 14400 0 +04} +} -- cgit v0.12 From 91a20bc018f04bcf8ce13412ad16cfcbe9e53489 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 16 Mar 2016 09:56:55 +0000 Subject: Remove undocumented TCL_HASH_KEY_STORE_HASH. Setting this to "0" is not supported (was it ever ????), and not tested for long time. --- generic/tcl.h | 18 ------------------ generic/tclHash.c | 37 ------------------------------------- 2 files changed, 55 deletions(-) diff --git a/generic/tcl.h b/generic/tcl.h index 58ba7e5..3cd90a9 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -1165,18 +1165,6 @@ typedef Tcl_HashEntry * (Tcl_AllocHashEntryProc) (Tcl_HashTable *tablePtr, typedef void (Tcl_FreeHashEntryProc) (Tcl_HashEntry *hPtr); /* - * This flag controls whether the hash table stores the hash of a key, or - * recalculates it. There should be no reason for turning this flag off as it - * is completely binary and source compatible unless you directly access the - * bucketPtr member of the Tcl_HashTableEntry structure. This member has been - * removed and the space used to store the hash value. - */ - -#ifndef TCL_HASH_KEY_STORE_HASH -# define TCL_HASH_KEY_STORE_HASH 1 -#endif - -/* * Structure definition for an entry in a hash table. No-one outside Tcl * should access any of these fields directly; use the macros defined below. */ @@ -1185,15 +1173,9 @@ struct Tcl_HashEntry { Tcl_HashEntry *nextPtr; /* Pointer to next entry in this hash bucket, * or NULL for end of chain. */ Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */ -#if TCL_HASH_KEY_STORE_HASH void *hash; /* Hash value, stored as pointer to ensure * that the offsets of the fields in this * structure are not changed. */ -#else - Tcl_HashEntry **bucketPtr; /* Pointer to bucket that points to first - * entry in this entry's chain: used for - * deleting the entry. */ -#endif ClientData clientData; /* Application stores something here with * Tcl_SetHashValue. */ union { /* Key has one of these forms: */ diff --git a/generic/tclHash.c b/generic/tclHash.c index 1991aea..3ea9dd9 100644 --- a/generic/tclHash.c +++ b/generic/tclHash.c @@ -321,11 +321,9 @@ CreateHashEntry( for (hPtr = tablePtr->buckets[index]; hPtr != NULL; hPtr = hPtr->nextPtr) { -#if TCL_HASH_KEY_STORE_HASH if (hash != PTR2UINT(hPtr->hash)) { continue; } -#endif if (((void *) key == hPtr) || compareKeysProc((void *) key, hPtr)) { if (newPtr) { *newPtr = 0; @@ -336,11 +334,9 @@ CreateHashEntry( } else { for (hPtr = tablePtr->buckets[index]; hPtr != NULL; hPtr = hPtr->nextPtr) { -#if TCL_HASH_KEY_STORE_HASH if (hash != PTR2UINT(hPtr->hash)) { continue; } -#endif if (key == hPtr->key.oneWordValue) { if (newPtr) { *newPtr = 0; @@ -368,15 +364,9 @@ CreateHashEntry( } hPtr->tablePtr = tablePtr; -#if TCL_HASH_KEY_STORE_HASH hPtr->hash = UINT2PTR(hash); hPtr->nextPtr = tablePtr->buckets[index]; tablePtr->buckets[index] = hPtr; -#else - hPtr->bucketPtr = &tablePtr->buckets[index]; - hPtr->nextPtr = *hPtr->bucketPtr; - *hPtr->bucketPtr = hPtr; -#endif tablePtr->numEntries++; /* @@ -416,9 +406,7 @@ Tcl_DeleteHashEntry( const Tcl_HashKeyType *typePtr; Tcl_HashTable *tablePtr; Tcl_HashEntry **bucketPtr; -#if TCL_HASH_KEY_STORE_HASH int index; -#endif tablePtr = entryPtr->tablePtr; @@ -433,7 +421,6 @@ Tcl_DeleteHashEntry( typePtr = &tclArrayHashKeyType; } -#if TCL_HASH_KEY_STORE_HASH if (typePtr->hashKeyProc == NULL || typePtr->flags & TCL_HASH_KEY_RANDOMIZE_HASH) { index = RANDOM_INDEX(tablePtr, PTR2INT(entryPtr->hash)); @@ -442,9 +429,6 @@ Tcl_DeleteHashEntry( } bucketPtr = &tablePtr->buckets[index]; -#else - bucketPtr = entryPtr->bucketPtr; -#endif if (*bucketPtr == entryPtr) { *bucketPtr = entryPtr->nextPtr; @@ -1062,7 +1046,6 @@ RebuildTable( for (oldChainPtr = oldBuckets; oldSize > 0; oldSize--, oldChainPtr++) { for (hPtr = *oldChainPtr; hPtr != NULL; hPtr = *oldChainPtr) { *oldChainPtr = hPtr->nextPtr; -#if TCL_HASH_KEY_STORE_HASH if (typePtr->hashKeyProc == NULL || typePtr->flags & TCL_HASH_KEY_RANDOMIZE_HASH) { index = RANDOM_INDEX(tablePtr, PTR2INT(hPtr->hash)); @@ -1071,26 +1054,6 @@ RebuildTable( } hPtr->nextPtr = tablePtr->buckets[index]; tablePtr->buckets[index] = hPtr; -#else - void *key = Tcl_GetHashKey(tablePtr, hPtr); - - if (typePtr->hashKeyProc) { - unsigned int hash; - - hash = typePtr->hashKeyProc(tablePtr, key); - if (typePtr->flags & TCL_HASH_KEY_RANDOMIZE_HASH) { - index = RANDOM_INDEX(tablePtr, hash); - } else { - index = hash & tablePtr->mask; - } - } else { - index = RANDOM_INDEX(tablePtr, key); - } - - hPtr->bucketPtr = &tablePtr->buckets[index]; - hPtr->nextPtr = *hPtr->bucketPtr; - *hPtr->bucketPtr = hPtr; -#endif } } -- cgit v0.12 From 671e2228ac8024e945034191da52584381ce61ac Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 16 Mar 2016 09:58:08 +0000 Subject: (cherry-pick from trunk): Update tzdata to 2016b from ietf.org --- library/tzdata/America/Port-au-Prince | 168 ---------------------------------- library/tzdata/Asia/Barnaul | 71 ++++++++++++++ library/tzdata/Asia/Gaza | 168 +++++++++++++++++----------------- library/tzdata/Asia/Hebron | 168 +++++++++++++++++----------------- library/tzdata/Asia/Sakhalin | 1 + library/tzdata/Europe/Astrakhan | 70 ++++++++++++++ library/tzdata/Europe/Chisinau | 6 +- library/tzdata/Europe/Samara | 2 +- library/tzdata/Europe/Ulyanovsk | 73 +++++++++++++++ 9 files changed, 387 insertions(+), 340 deletions(-) create mode 100644 library/tzdata/Asia/Barnaul create mode 100644 library/tzdata/Europe/Astrakhan create mode 100644 library/tzdata/Europe/Ulyanovsk diff --git a/library/tzdata/America/Port-au-Prince b/library/tzdata/America/Port-au-Prince index f1d7fc4..b8b60d6 100644 --- a/library/tzdata/America/Port-au-Prince +++ b/library/tzdata/America/Port-au-Prince @@ -46,172 +46,4 @@ set TZData(:America/Port-au-Prince) { {1414908000 -18000 0 EST} {1425798000 -14400 1 EDT} {1446357600 -18000 0 EST} - {1457852400 -14400 1 EDT} - {1478412000 -18000 0 EST} - {1489302000 -14400 1 EDT} - {1509861600 -18000 0 EST} - {1520751600 -14400 1 EDT} - {1541311200 -18000 0 EST} - {1552201200 -14400 1 EDT} - {1572760800 -18000 0 EST} - {1583650800 -14400 1 EDT} - {1604210400 -18000 0 EST} - {1615705200 -14400 1 EDT} - {1636264800 -18000 0 EST} - {1647154800 -14400 1 EDT} - {1667714400 -18000 0 EST} - {1678604400 -14400 1 EDT} - {1699164000 -18000 0 EST} - {1710054000 -14400 1 EDT} - {1730613600 -18000 0 EST} - {1741503600 -14400 1 EDT} - {1762063200 -18000 0 EST} - {1772953200 -14400 1 EDT} - {1793512800 -18000 0 EST} - {1805007600 -14400 1 EDT} - {1825567200 -18000 0 EST} - {1836457200 -14400 1 EDT} - {1857016800 -18000 0 EST} - {1867906800 -14400 1 EDT} - {1888466400 -18000 0 EST} - {1899356400 -14400 1 EDT} - {1919916000 -18000 0 EST} - {1930806000 -14400 1 EDT} - {1951365600 -18000 0 EST} - {1962860400 -14400 1 EDT} - {1983420000 -18000 0 EST} - {1994310000 -14400 1 EDT} - {2014869600 -18000 0 EST} - {2025759600 -14400 1 EDT} - {2046319200 -18000 0 EST} - {2057209200 -14400 1 EDT} - {2077768800 -18000 0 EST} - {2088658800 -14400 1 EDT} - {2109218400 -18000 0 EST} - {2120108400 -14400 1 EDT} - {2140668000 -18000 0 EST} - {2152162800 -14400 1 EDT} - {2172722400 -18000 0 EST} - {2183612400 -14400 1 EDT} - {2204172000 -18000 0 EST} - {2215062000 -14400 1 EDT} - {2235621600 -18000 0 EST} - {2246511600 -14400 1 EDT} - {2267071200 -18000 0 EST} - {2277961200 -14400 1 EDT} - {2298520800 -18000 0 EST} - {2309410800 -14400 1 EDT} - {2329970400 -18000 0 EST} - {2341465200 -14400 1 EDT} - {2362024800 -18000 0 EST} - {2372914800 -14400 1 EDT} - {2393474400 -18000 0 EST} - {2404364400 -14400 1 EDT} - {2424924000 -18000 0 EST} - {2435814000 -14400 1 EDT} - {2456373600 -18000 0 EST} - {2467263600 -14400 1 EDT} - {2487823200 -18000 0 EST} - {2499318000 -14400 1 EDT} - {2519877600 -18000 0 EST} - {2530767600 -14400 1 EDT} - {2551327200 -18000 0 EST} - {2562217200 -14400 1 EDT} - {2582776800 -18000 0 EST} - {2593666800 -14400 1 EDT} - {2614226400 -18000 0 EST} - {2625116400 -14400 1 EDT} - {2645676000 -18000 0 EST} - {2656566000 -14400 1 EDT} - {2677125600 -18000 0 EST} - {2688620400 -14400 1 EDT} - {2709180000 -18000 0 EST} - {2720070000 -14400 1 EDT} - {2740629600 -18000 0 EST} - {2751519600 -14400 1 EDT} - {2772079200 -18000 0 EST} - {2782969200 -14400 1 EDT} - {2803528800 -18000 0 EST} - {2814418800 -14400 1 EDT} - {2834978400 -18000 0 EST} - {2846473200 -14400 1 EDT} - {2867032800 -18000 0 EST} - {2877922800 -14400 1 EDT} - {2898482400 -18000 0 EST} - {2909372400 -14400 1 EDT} - {2929932000 -18000 0 EST} - {2940822000 -14400 1 EDT} - {2961381600 -18000 0 EST} - {2972271600 -14400 1 EDT} - {2992831200 -18000 0 EST} - {3003721200 -14400 1 EDT} - {3024280800 -18000 0 EST} - {3035775600 -14400 1 EDT} - {3056335200 -18000 0 EST} - {3067225200 -14400 1 EDT} - {3087784800 -18000 0 EST} - {3098674800 -14400 1 EDT} - {3119234400 -18000 0 EST} - {3130124400 -14400 1 EDT} - {3150684000 -18000 0 EST} - {3161574000 -14400 1 EDT} - {3182133600 -18000 0 EST} - {3193023600 -14400 1 EDT} - {3213583200 -18000 0 EST} - {3225078000 -14400 1 EDT} - {3245637600 -18000 0 EST} - {3256527600 -14400 1 EDT} - {3277087200 -18000 0 EST} - {3287977200 -14400 1 EDT} - {3308536800 -18000 0 EST} - {3319426800 -14400 1 EDT} - {3339986400 -18000 0 EST} - {3350876400 -14400 1 EDT} - {3371436000 -18000 0 EST} - {3382930800 -14400 1 EDT} - {3403490400 -18000 0 EST} - {3414380400 -14400 1 EDT} - {3434940000 -18000 0 EST} - {3445830000 -14400 1 EDT} - {3466389600 -18000 0 EST} - {3477279600 -14400 1 EDT} - {3497839200 -18000 0 EST} - {3508729200 -14400 1 EDT} - {3529288800 -18000 0 EST} - {3540178800 -14400 1 EDT} - {3560738400 -18000 0 EST} - {3572233200 -14400 1 EDT} - {3592792800 -18000 0 EST} - {3603682800 -14400 1 EDT} - {3624242400 -18000 0 EST} - {3635132400 -14400 1 EDT} - {3655692000 -18000 0 EST} - {3666582000 -14400 1 EDT} - {3687141600 -18000 0 EST} - {3698031600 -14400 1 EDT} - {3718591200 -18000 0 EST} - {3730086000 -14400 1 EDT} - {3750645600 -18000 0 EST} - {3761535600 -14400 1 EDT} - {3782095200 -18000 0 EST} - {3792985200 -14400 1 EDT} - {3813544800 -18000 0 EST} - {3824434800 -14400 1 EDT} - {3844994400 -18000 0 EST} - {3855884400 -14400 1 EDT} - {3876444000 -18000 0 EST} - {3887334000 -14400 1 EDT} - {3907893600 -18000 0 EST} - {3919388400 -14400 1 EDT} - {3939948000 -18000 0 EST} - {3950838000 -14400 1 EDT} - {3971397600 -18000 0 EST} - {3982287600 -14400 1 EDT} - {4002847200 -18000 0 EST} - {4013737200 -14400 1 EDT} - {4034296800 -18000 0 EST} - {4045186800 -14400 1 EDT} - {4065746400 -18000 0 EST} - {4076636400 -14400 1 EDT} - {4097196000 -18000 0 EST} } diff --git a/library/tzdata/Asia/Barnaul b/library/tzdata/Asia/Barnaul new file mode 100644 index 0000000..8072e34 --- /dev/null +++ b/library/tzdata/Asia/Barnaul @@ -0,0 +1,71 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Barnaul) { + {-9223372036854775808 20100 0 LMT} + {-1579844100 21600 0 +06} + {-1247551200 25200 0 +08} + {354906000 28800 1 +08} + {370713600 25200 0 +07} + {386442000 28800 1 +08} + {402249600 25200 0 +07} + {417978000 28800 1 +08} + {433785600 25200 0 +07} + {449600400 28800 1 +08} + {465332400 25200 0 +07} + {481057200 28800 1 +08} + {496782000 25200 0 +07} + {512506800 28800 1 +08} + {528231600 25200 0 +07} + {543956400 28800 1 +08} + {559681200 25200 0 +07} + {575406000 28800 1 +08} + {591130800 25200 0 +07} + {606855600 28800 1 +08} + {622580400 25200 0 +07} + {638305200 28800 1 +08} + {654634800 25200 0 +07} + {670359600 28800 1 +08} + {686084400 25200 0 +07} + {701798400 28800 1 +08} + {717519600 25200 0 +07} + {733258800 28800 1 +08} + {748983600 25200 0 +07} + {764708400 28800 1 +08} + {780433200 25200 0 +07} + {796158000 28800 1 +08} + {801594000 25200 0 +07} + {811886400 21600 0 +06} + {828216000 25200 1 +07} + {846360000 21600 0 +06} + {859665600 25200 1 +07} + {877809600 21600 0 +06} + {891115200 25200 1 +07} + {909259200 21600 0 +06} + {922564800 25200 1 +07} + {941313600 21600 0 +06} + {954014400 25200 1 +07} + {972763200 21600 0 +06} + {985464000 25200 1 +07} + {1004212800 21600 0 +06} + {1017518400 25200 1 +07} + {1035662400 21600 0 +06} + {1048968000 25200 1 +07} + {1067112000 21600 0 +06} + {1080417600 25200 1 +07} + {1099166400 21600 0 +06} + {1111867200 25200 1 +07} + {1130616000 21600 0 +06} + {1143316800 25200 1 +07} + {1162065600 21600 0 +06} + {1174766400 25200 1 +07} + {1193515200 21600 0 +06} + {1206820800 25200 1 +07} + {1224964800 21600 0 +06} + {1238270400 25200 1 +07} + {1256414400 21600 0 +06} + {1269720000 25200 1 +07} + {1288468800 21600 0 +06} + {1301169600 25200 0 +07} + {1414263600 21600 0 +06} + {1459022400 25200 0 +07} +} diff --git a/library/tzdata/Asia/Gaza b/library/tzdata/Asia/Gaza index 805b6b7..6adfe6d 100644 --- a/library/tzdata/Asia/Gaza +++ b/library/tzdata/Asia/Gaza @@ -107,172 +107,172 @@ set TZData(:Asia/Gaza) { {1414098000 7200 0 EET} {1427493600 10800 1 EEST} {1445547600 7200 0 EET} - {1458943200 10800 1 EEST} + {1458946800 10800 1 EEST} {1476997200 7200 0 EET} - {1490997600 10800 1 EEST} + {1490396400 10800 1 EEST} {1509051600 7200 0 EET} - {1522447200 10800 1 EEST} + {1522450800 10800 1 EEST} {1540501200 7200 0 EET} - {1553896800 10800 1 EEST} + {1553900400 10800 1 EEST} {1571950800 7200 0 EET} - {1585346400 10800 1 EEST} + {1585350000 10800 1 EEST} {1603400400 7200 0 EET} - {1616796000 10800 1 EEST} + {1616799600 10800 1 EEST} {1634850000 7200 0 EET} - {1648245600 10800 1 EEST} + {1648249200 10800 1 EEST} {1666299600 7200 0 EET} - {1680300000 10800 1 EEST} + {1679698800 10800 1 EEST} {1698354000 7200 0 EET} - {1711749600 10800 1 EEST} + {1711753200 10800 1 EEST} {1729803600 7200 0 EET} - {1743199200 10800 1 EEST} + {1743202800 10800 1 EEST} {1761253200 7200 0 EET} - {1774648800 10800 1 EEST} + {1774652400 10800 1 EEST} {1792702800 7200 0 EET} - {1806098400 10800 1 EEST} + {1806102000 10800 1 EEST} {1824152400 7200 0 EET} - {1838152800 10800 1 EEST} + {1837551600 10800 1 EEST} {1856206800 7200 0 EET} - {1869602400 10800 1 EEST} + {1869606000 10800 1 EEST} {1887656400 7200 0 EET} - {1901052000 10800 1 EEST} + {1901055600 10800 1 EEST} {1919106000 7200 0 EET} - {1932501600 10800 1 EEST} + {1932505200 10800 1 EEST} {1950555600 7200 0 EET} - {1963951200 10800 1 EEST} + {1963954800 10800 1 EEST} {1982005200 7200 0 EET} - {1995400800 10800 1 EEST} + {1995404400 10800 1 EEST} {2013454800 7200 0 EET} - {2027455200 10800 1 EEST} + {2026854000 10800 1 EEST} {2045509200 7200 0 EET} - {2058904800 10800 1 EEST} + {2058908400 10800 1 EEST} {2076958800 7200 0 EET} - {2090354400 10800 1 EEST} + {2090358000 10800 1 EEST} {2108408400 7200 0 EET} - {2121804000 10800 1 EEST} + {2121807600 10800 1 EEST} {2139858000 7200 0 EET} - {2153253600 10800 1 EEST} + {2153257200 10800 1 EEST} {2171307600 7200 0 EET} - {2184703200 10800 1 EEST} + {2184706800 10800 1 EEST} {2202757200 7200 0 EET} - {2216757600 10800 1 EEST} + {2216761200 10800 1 EEST} {2234811600 7200 0 EET} - {2248207200 10800 1 EEST} + {2248210800 10800 1 EEST} {2266261200 7200 0 EET} - {2279656800 10800 1 EEST} + {2279660400 10800 1 EEST} {2297710800 7200 0 EET} - {2311106400 10800 1 EEST} + {2311110000 10800 1 EEST} {2329160400 7200 0 EET} - {2342556000 10800 1 EEST} + {2342559600 10800 1 EEST} {2360610000 7200 0 EET} - {2374610400 10800 1 EEST} + {2374009200 10800 1 EEST} {2392664400 7200 0 EET} - {2406060000 10800 1 EEST} + {2406063600 10800 1 EEST} {2424114000 7200 0 EET} - {2437509600 10800 1 EEST} + {2437513200 10800 1 EEST} {2455563600 7200 0 EET} - {2468959200 10800 1 EEST} + {2468962800 10800 1 EEST} {2487013200 7200 0 EET} - {2500408800 10800 1 EEST} + {2500412400 10800 1 EEST} {2518462800 7200 0 EET} - {2531858400 10800 1 EEST} + {2531862000 10800 1 EEST} {2549912400 7200 0 EET} - {2563912800 10800 1 EEST} + {2563311600 10800 1 EEST} {2581966800 7200 0 EET} - {2595362400 10800 1 EEST} + {2595366000 10800 1 EEST} {2613416400 7200 0 EET} - {2626812000 10800 1 EEST} + {2626815600 10800 1 EEST} {2644866000 7200 0 EET} - {2658261600 10800 1 EEST} + {2658265200 10800 1 EEST} {2676315600 7200 0 EET} - {2689711200 10800 1 EEST} + {2689714800 10800 1 EEST} {2707765200 7200 0 EET} - {2721765600 10800 1 EEST} + {2721164400 10800 1 EEST} {2739819600 7200 0 EET} - {2753215200 10800 1 EEST} + {2753218800 10800 1 EEST} {2771269200 7200 0 EET} - {2784664800 10800 1 EEST} + {2784668400 10800 1 EEST} {2802718800 7200 0 EET} - {2816114400 10800 1 EEST} + {2816118000 10800 1 EEST} {2834168400 7200 0 EET} - {2847564000 10800 1 EEST} + {2847567600 10800 1 EEST} {2865618000 7200 0 EET} - {2879013600 10800 1 EEST} + {2879017200 10800 1 EEST} {2897067600 7200 0 EET} - {2911068000 10800 1 EEST} + {2910466800 10800 1 EEST} {2929122000 7200 0 EET} - {2942517600 10800 1 EEST} + {2942521200 10800 1 EEST} {2960571600 7200 0 EET} - {2973967200 10800 1 EEST} + {2973970800 10800 1 EEST} {2992021200 7200 0 EET} - {3005416800 10800 1 EEST} + {3005420400 10800 1 EEST} {3023470800 7200 0 EET} - {3036866400 10800 1 EEST} + {3036870000 10800 1 EEST} {3054920400 7200 0 EET} - {3068316000 10800 1 EEST} + {3068319600 10800 1 EEST} {3086370000 7200 0 EET} - {3100370400 10800 1 EEST} + {3100374000 10800 1 EEST} {3118424400 7200 0 EET} - {3131820000 10800 1 EEST} + {3131823600 10800 1 EEST} {3149874000 7200 0 EET} - {3163269600 10800 1 EEST} + {3163273200 10800 1 EEST} {3181323600 7200 0 EET} - {3194719200 10800 1 EEST} + {3194722800 10800 1 EEST} {3212773200 7200 0 EET} - {3226168800 10800 1 EEST} + {3226172400 10800 1 EEST} {3244222800 7200 0 EET} - {3258223200 10800 1 EEST} + {3257622000 10800 1 EEST} {3276277200 7200 0 EET} - {3289672800 10800 1 EEST} + {3289676400 10800 1 EEST} {3307726800 7200 0 EET} - {3321122400 10800 1 EEST} + {3321126000 10800 1 EEST} {3339176400 7200 0 EET} - {3352572000 10800 1 EEST} + {3352575600 10800 1 EEST} {3370626000 7200 0 EET} - {3384021600 10800 1 EEST} + {3384025200 10800 1 EEST} {3402075600 7200 0 EET} - {3415471200 10800 1 EEST} + {3415474800 10800 1 EEST} {3433525200 7200 0 EET} - {3447525600 10800 1 EEST} + {3446924400 10800 1 EEST} {3465579600 7200 0 EET} - {3478975200 10800 1 EEST} + {3478978800 10800 1 EEST} {3497029200 7200 0 EET} - {3510424800 10800 1 EEST} + {3510428400 10800 1 EEST} {3528478800 7200 0 EET} - {3541874400 10800 1 EEST} + {3541878000 10800 1 EEST} {3559928400 7200 0 EET} - {3573324000 10800 1 EEST} + {3573327600 10800 1 EEST} {3591378000 7200 0 EET} - {3605378400 10800 1 EEST} + {3604777200 10800 1 EEST} {3623432400 7200 0 EET} - {3636828000 10800 1 EEST} + {3636831600 10800 1 EEST} {3654882000 7200 0 EET} - {3668277600 10800 1 EEST} + {3668281200 10800 1 EEST} {3686331600 7200 0 EET} - {3699727200 10800 1 EEST} + {3699730800 10800 1 EEST} {3717781200 7200 0 EET} - {3731176800 10800 1 EEST} + {3731180400 10800 1 EEST} {3749230800 7200 0 EET} - {3762626400 10800 1 EEST} + {3762630000 10800 1 EEST} {3780680400 7200 0 EET} - {3794680800 10800 1 EEST} + {3794079600 10800 1 EEST} {3812734800 7200 0 EET} - {3826130400 10800 1 EEST} + {3826134000 10800 1 EEST} {3844184400 7200 0 EET} - {3857580000 10800 1 EEST} + {3857583600 10800 1 EEST} {3875634000 7200 0 EET} - {3889029600 10800 1 EEST} + {3889033200 10800 1 EEST} {3907083600 7200 0 EET} - {3920479200 10800 1 EEST} + {3920482800 10800 1 EEST} {3938533200 7200 0 EET} - {3951928800 10800 1 EEST} + {3951932400 10800 1 EEST} {3969982800 7200 0 EET} - {3983983200 10800 1 EEST} + {3983986800 10800 1 EEST} {4002037200 7200 0 EET} - {4015432800 10800 1 EEST} + {4015436400 10800 1 EEST} {4033486800 7200 0 EET} - {4046882400 10800 1 EEST} + {4046886000 10800 1 EEST} {4064936400 7200 0 EET} - {4078332000 10800 1 EEST} + {4078335600 10800 1 EEST} {4096386000 7200 0 EET} } diff --git a/library/tzdata/Asia/Hebron b/library/tzdata/Asia/Hebron index 9049d93..2db45f2 100644 --- a/library/tzdata/Asia/Hebron +++ b/library/tzdata/Asia/Hebron @@ -106,172 +106,172 @@ set TZData(:Asia/Hebron) { {1414098000 7200 0 EET} {1427493600 10800 1 EEST} {1445547600 7200 0 EET} - {1458943200 10800 1 EEST} + {1458946800 10800 1 EEST} {1476997200 7200 0 EET} - {1490997600 10800 1 EEST} + {1490396400 10800 1 EEST} {1509051600 7200 0 EET} - {1522447200 10800 1 EEST} + {1522450800 10800 1 EEST} {1540501200 7200 0 EET} - {1553896800 10800 1 EEST} + {1553900400 10800 1 EEST} {1571950800 7200 0 EET} - {1585346400 10800 1 EEST} + {1585350000 10800 1 EEST} {1603400400 7200 0 EET} - {1616796000 10800 1 EEST} + {1616799600 10800 1 EEST} {1634850000 7200 0 EET} - {1648245600 10800 1 EEST} + {1648249200 10800 1 EEST} {1666299600 7200 0 EET} - {1680300000 10800 1 EEST} + {1679698800 10800 1 EEST} {1698354000 7200 0 EET} - {1711749600 10800 1 EEST} + {1711753200 10800 1 EEST} {1729803600 7200 0 EET} - {1743199200 10800 1 EEST} + {1743202800 10800 1 EEST} {1761253200 7200 0 EET} - {1774648800 10800 1 EEST} + {1774652400 10800 1 EEST} {1792702800 7200 0 EET} - {1806098400 10800 1 EEST} + {1806102000 10800 1 EEST} {1824152400 7200 0 EET} - {1838152800 10800 1 EEST} + {1837551600 10800 1 EEST} {1856206800 7200 0 EET} - {1869602400 10800 1 EEST} + {1869606000 10800 1 EEST} {1887656400 7200 0 EET} - {1901052000 10800 1 EEST} + {1901055600 10800 1 EEST} {1919106000 7200 0 EET} - {1932501600 10800 1 EEST} + {1932505200 10800 1 EEST} {1950555600 7200 0 EET} - {1963951200 10800 1 EEST} + {1963954800 10800 1 EEST} {1982005200 7200 0 EET} - {1995400800 10800 1 EEST} + {1995404400 10800 1 EEST} {2013454800 7200 0 EET} - {2027455200 10800 1 EEST} + {2026854000 10800 1 EEST} {2045509200 7200 0 EET} - {2058904800 10800 1 EEST} + {2058908400 10800 1 EEST} {2076958800 7200 0 EET} - {2090354400 10800 1 EEST} + {2090358000 10800 1 EEST} {2108408400 7200 0 EET} - {2121804000 10800 1 EEST} + {2121807600 10800 1 EEST} {2139858000 7200 0 EET} - {2153253600 10800 1 EEST} + {2153257200 10800 1 EEST} {2171307600 7200 0 EET} - {2184703200 10800 1 EEST} + {2184706800 10800 1 EEST} {2202757200 7200 0 EET} - {2216757600 10800 1 EEST} + {2216761200 10800 1 EEST} {2234811600 7200 0 EET} - {2248207200 10800 1 EEST} + {2248210800 10800 1 EEST} {2266261200 7200 0 EET} - {2279656800 10800 1 EEST} + {2279660400 10800 1 EEST} {2297710800 7200 0 EET} - {2311106400 10800 1 EEST} + {2311110000 10800 1 EEST} {2329160400 7200 0 EET} - {2342556000 10800 1 EEST} + {2342559600 10800 1 EEST} {2360610000 7200 0 EET} - {2374610400 10800 1 EEST} + {2374009200 10800 1 EEST} {2392664400 7200 0 EET} - {2406060000 10800 1 EEST} + {2406063600 10800 1 EEST} {2424114000 7200 0 EET} - {2437509600 10800 1 EEST} + {2437513200 10800 1 EEST} {2455563600 7200 0 EET} - {2468959200 10800 1 EEST} + {2468962800 10800 1 EEST} {2487013200 7200 0 EET} - {2500408800 10800 1 EEST} + {2500412400 10800 1 EEST} {2518462800 7200 0 EET} - {2531858400 10800 1 EEST} + {2531862000 10800 1 EEST} {2549912400 7200 0 EET} - {2563912800 10800 1 EEST} + {2563311600 10800 1 EEST} {2581966800 7200 0 EET} - {2595362400 10800 1 EEST} + {2595366000 10800 1 EEST} {2613416400 7200 0 EET} - {2626812000 10800 1 EEST} + {2626815600 10800 1 EEST} {2644866000 7200 0 EET} - {2658261600 10800 1 EEST} + {2658265200 10800 1 EEST} {2676315600 7200 0 EET} - {2689711200 10800 1 EEST} + {2689714800 10800 1 EEST} {2707765200 7200 0 EET} - {2721765600 10800 1 EEST} + {2721164400 10800 1 EEST} {2739819600 7200 0 EET} - {2753215200 10800 1 EEST} + {2753218800 10800 1 EEST} {2771269200 7200 0 EET} - {2784664800 10800 1 EEST} + {2784668400 10800 1 EEST} {2802718800 7200 0 EET} - {2816114400 10800 1 EEST} + {2816118000 10800 1 EEST} {2834168400 7200 0 EET} - {2847564000 10800 1 EEST} + {2847567600 10800 1 EEST} {2865618000 7200 0 EET} - {2879013600 10800 1 EEST} + {2879017200 10800 1 EEST} {2897067600 7200 0 EET} - {2911068000 10800 1 EEST} + {2910466800 10800 1 EEST} {2929122000 7200 0 EET} - {2942517600 10800 1 EEST} + {2942521200 10800 1 EEST} {2960571600 7200 0 EET} - {2973967200 10800 1 EEST} + {2973970800 10800 1 EEST} {2992021200 7200 0 EET} - {3005416800 10800 1 EEST} + {3005420400 10800 1 EEST} {3023470800 7200 0 EET} - {3036866400 10800 1 EEST} + {3036870000 10800 1 EEST} {3054920400 7200 0 EET} - {3068316000 10800 1 EEST} + {3068319600 10800 1 EEST} {3086370000 7200 0 EET} - {3100370400 10800 1 EEST} + {3100374000 10800 1 EEST} {3118424400 7200 0 EET} - {3131820000 10800 1 EEST} + {3131823600 10800 1 EEST} {3149874000 7200 0 EET} - {3163269600 10800 1 EEST} + {3163273200 10800 1 EEST} {3181323600 7200 0 EET} - {3194719200 10800 1 EEST} + {3194722800 10800 1 EEST} {3212773200 7200 0 EET} - {3226168800 10800 1 EEST} + {3226172400 10800 1 EEST} {3244222800 7200 0 EET} - {3258223200 10800 1 EEST} + {3257622000 10800 1 EEST} {3276277200 7200 0 EET} - {3289672800 10800 1 EEST} + {3289676400 10800 1 EEST} {3307726800 7200 0 EET} - {3321122400 10800 1 EEST} + {3321126000 10800 1 EEST} {3339176400 7200 0 EET} - {3352572000 10800 1 EEST} + {3352575600 10800 1 EEST} {3370626000 7200 0 EET} - {3384021600 10800 1 EEST} + {3384025200 10800 1 EEST} {3402075600 7200 0 EET} - {3415471200 10800 1 EEST} + {3415474800 10800 1 EEST} {3433525200 7200 0 EET} - {3447525600 10800 1 EEST} + {3446924400 10800 1 EEST} {3465579600 7200 0 EET} - {3478975200 10800 1 EEST} + {3478978800 10800 1 EEST} {3497029200 7200 0 EET} - {3510424800 10800 1 EEST} + {3510428400 10800 1 EEST} {3528478800 7200 0 EET} - {3541874400 10800 1 EEST} + {3541878000 10800 1 EEST} {3559928400 7200 0 EET} - {3573324000 10800 1 EEST} + {3573327600 10800 1 EEST} {3591378000 7200 0 EET} - {3605378400 10800 1 EEST} + {3604777200 10800 1 EEST} {3623432400 7200 0 EET} - {3636828000 10800 1 EEST} + {3636831600 10800 1 EEST} {3654882000 7200 0 EET} - {3668277600 10800 1 EEST} + {3668281200 10800 1 EEST} {3686331600 7200 0 EET} - {3699727200 10800 1 EEST} + {3699730800 10800 1 EEST} {3717781200 7200 0 EET} - {3731176800 10800 1 EEST} + {3731180400 10800 1 EEST} {3749230800 7200 0 EET} - {3762626400 10800 1 EEST} + {3762630000 10800 1 EEST} {3780680400 7200 0 EET} - {3794680800 10800 1 EEST} + {3794079600 10800 1 EEST} {3812734800 7200 0 EET} - {3826130400 10800 1 EEST} + {3826134000 10800 1 EEST} {3844184400 7200 0 EET} - {3857580000 10800 1 EEST} + {3857583600 10800 1 EEST} {3875634000 7200 0 EET} - {3889029600 10800 1 EEST} + {3889033200 10800 1 EEST} {3907083600 7200 0 EET} - {3920479200 10800 1 EEST} + {3920482800 10800 1 EEST} {3938533200 7200 0 EET} - {3951928800 10800 1 EEST} + {3951932400 10800 1 EEST} {3969982800 7200 0 EET} - {3983983200 10800 1 EEST} + {3983986800 10800 1 EEST} {4002037200 7200 0 EET} - {4015432800 10800 1 EEST} + {4015436400 10800 1 EEST} {4033486800 7200 0 EET} - {4046882400 10800 1 EEST} + {4046886000 10800 1 EEST} {4064936400 7200 0 EET} - {4078332000 10800 1 EEST} + {4078335600 10800 1 EEST} {4096386000 7200 0 EET} } diff --git a/library/tzdata/Asia/Sakhalin b/library/tzdata/Asia/Sakhalin index eed20ba..9247046 100644 --- a/library/tzdata/Asia/Sakhalin +++ b/library/tzdata/Asia/Sakhalin @@ -70,4 +70,5 @@ set TZData(:Asia/Sakhalin) { {1288454400 36000 0 SAKT} {1301155200 39600 0 SAKT} {1414249200 36000 0 SAKT} + {1459008000 39600 0 SAKT} } diff --git a/library/tzdata/Europe/Astrakhan b/library/tzdata/Europe/Astrakhan new file mode 100644 index 0000000..e5e9c26 --- /dev/null +++ b/library/tzdata/Europe/Astrakhan @@ -0,0 +1,70 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Astrakhan) { + {-9223372036854775808 11532 0 LMT} + {-1441249932 10800 0 +03} + {-1247540400 14400 0 +05} + {354916800 18000 1 +05} + {370724400 14400 0 +04} + {386452800 18000 1 +05} + {402260400 14400 0 +04} + {417988800 18000 1 +05} + {433796400 14400 0 +04} + {449611200 18000 1 +05} + {465343200 14400 0 +04} + {481068000 18000 1 +05} + {496792800 14400 0 +04} + {512517600 18000 1 +05} + {528242400 14400 0 +04} + {543967200 18000 1 +05} + {559692000 14400 0 +04} + {575416800 18000 1 +05} + {591141600 14400 0 +04} + {606866400 10800 0 +04} + {606870000 14400 1 +04} + {622594800 10800 0 +03} + {638319600 14400 1 +04} + {654649200 10800 0 +03} + {670374000 14400 0 +04} + {701820000 14400 0 +04} + {717534000 10800 0 +03} + {733273200 14400 1 +04} + {748998000 10800 0 +03} + {764722800 14400 1 +04} + {780447600 10800 0 +03} + {796172400 14400 1 +04} + {811897200 10800 0 +03} + {828226800 14400 1 +04} + {846370800 10800 0 +03} + {859676400 14400 1 +04} + {877820400 10800 0 +03} + {891126000 14400 1 +04} + {909270000 10800 0 +03} + {922575600 14400 1 +04} + {941324400 10800 0 +03} + {954025200 14400 1 +04} + {972774000 10800 0 +03} + {985474800 14400 1 +04} + {1004223600 10800 0 +03} + {1017529200 14400 1 +04} + {1035673200 10800 0 +03} + {1048978800 14400 1 +04} + {1067122800 10800 0 +03} + {1080428400 14400 1 +04} + {1099177200 10800 0 +03} + {1111878000 14400 1 +04} + {1130626800 10800 0 +03} + {1143327600 14400 1 +04} + {1162076400 10800 0 +03} + {1174777200 14400 1 +04} + {1193526000 10800 0 +03} + {1206831600 14400 1 +04} + {1224975600 10800 0 +03} + {1238281200 14400 1 +04} + {1256425200 10800 0 +03} + {1269730800 14400 1 +04} + {1288479600 10800 0 +03} + {1301180400 14400 0 +04} + {1414274400 10800 0 +03} + {1459033200 14400 0 +04} +} diff --git a/library/tzdata/Europe/Chisinau b/library/tzdata/Europe/Chisinau index 5c240e7..db4c6db 100644 --- a/library/tzdata/Europe/Chisinau +++ b/library/tzdata/Europe/Chisinau @@ -46,9 +46,9 @@ set TZData(:Europe/Chisinau) { {591145200 10800 0 MSK} {606870000 14400 1 MSD} {622594800 10800 0 MSK} - {631141200 10800 0 MSK} - {641941200 7200 0 EET} - {662680800 7200 0 EEMMTT} + {638319600 14400 1 MSD} + {641948400 10800 0 EEST} + {654652800 7200 0 EET} {670377600 10800 1 EEST} {686102400 7200 0 EET} {694216800 7200 0 EET} diff --git a/library/tzdata/Europe/Samara b/library/tzdata/Europe/Samara index ee9d989..47615de 100644 --- a/library/tzdata/Europe/Samara +++ b/library/tzdata/Europe/Samara @@ -28,7 +28,7 @@ set TZData(:Europe/Samara) { {654649200 10800 0 MSK} {670374000 7200 0 EEMMTT} {670377600 10800 1 EEST} - {686102400 10800 0 KUYT} + {686102400 10800 0 SAMT} {687916800 14400 0 SAMT} {701809200 18000 1 SAMST} {717530400 14400 0 SAMT} diff --git a/library/tzdata/Europe/Ulyanovsk b/library/tzdata/Europe/Ulyanovsk new file mode 100644 index 0000000..b975622 --- /dev/null +++ b/library/tzdata/Europe/Ulyanovsk @@ -0,0 +1,73 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Ulyanovsk) { + {-9223372036854775808 11616 0 LMT} + {-1593825216 10800 0 +03} + {-1247540400 14400 0 +05} + {354916800 18000 1 +05} + {370724400 14400 0 +04} + {386452800 18000 1 +05} + {402260400 14400 0 +04} + {417988800 18000 1 +05} + {433796400 14400 0 +04} + {449611200 18000 1 +05} + {465343200 14400 0 +04} + {481068000 18000 1 +05} + {496792800 14400 0 +04} + {512517600 18000 1 +05} + {528242400 14400 0 +04} + {543967200 18000 1 +05} + {559692000 14400 0 +04} + {575416800 18000 1 +05} + {591141600 14400 0 +04} + {606866400 10800 0 +04} + {606870000 14400 1 +04} + {622594800 10800 0 +03} + {638319600 14400 1 +04} + {654649200 10800 0 +03} + {670374000 7200 0 +03} + {670377600 10800 1 +03} + {686102400 7200 0 +02} + {695779200 10800 0 +04} + {701812800 14400 1 +04} + {717534000 10800 0 +03} + {733273200 14400 1 +04} + {748998000 10800 0 +03} + {764722800 14400 1 +04} + {780447600 10800 0 +03} + {796172400 14400 1 +04} + {811897200 10800 0 +03} + {828226800 14400 1 +04} + {846370800 10800 0 +03} + {859676400 14400 1 +04} + {877820400 10800 0 +03} + {891126000 14400 1 +04} + {909270000 10800 0 +03} + {922575600 14400 1 +04} + {941324400 10800 0 +03} + {954025200 14400 1 +04} + {972774000 10800 0 +03} + {985474800 14400 1 +04} + {1004223600 10800 0 +03} + {1017529200 14400 1 +04} + {1035673200 10800 0 +03} + {1048978800 14400 1 +04} + {1067122800 10800 0 +03} + {1080428400 14400 1 +04} + {1099177200 10800 0 +03} + {1111878000 14400 1 +04} + {1130626800 10800 0 +03} + {1143327600 14400 1 +04} + {1162076400 10800 0 +03} + {1174777200 14400 1 +04} + {1193526000 10800 0 +03} + {1206831600 14400 1 +04} + {1224975600 10800 0 +03} + {1238281200 14400 1 +04} + {1256425200 10800 0 +03} + {1269730800 14400 1 +04} + {1288479600 10800 0 +03} + {1301180400 14400 0 +04} + {1414274400 10800 0 +03} + {1459033200 14400 0 +04} +} -- cgit v0.12 From bfa7cb3c5d224a86a6136bc063018638eb3b9a0b Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 17 Mar 2016 13:14:22 +0000 Subject: [ae38befcfb] Rewrite TclGetInnermostExceptionRange() for fewer iterations. --- generic/tclCompile.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 4c259ab..c0b5dcc 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -3360,26 +3360,25 @@ TclGetInnermostExceptionRange( int returnCode, ExceptionAux **auxPtrPtr) { - int exnIdx = -1, i; + int i = envPtr->exceptArrayNext; + ExceptionRange *rangePtr = envPtr->exceptArrayPtr + i; - for (i=0 ; iexceptArrayNext ; i++) { - ExceptionRange *rangePtr = &envPtr->exceptArrayPtr[i]; + while (i > 0) { + rangePtr--; i--; if (CurrentOffset(envPtr) >= rangePtr->codeOffset && (rangePtr->numCodeBytes == -1 || CurrentOffset(envPtr) < rangePtr->codeOffset+rangePtr->numCodeBytes) && (returnCode != TCL_CONTINUE || envPtr->exceptAuxArrayPtr[i].supportsContinue)) { - exnIdx = i; + + if (auxPtrPtr) { + *auxPtrPtr = envPtr->exceptAuxArrayPtr + i; + } + return rangePtr; } } - if (exnIdx == -1) { - return NULL; - } - if (auxPtrPtr) { - *auxPtrPtr = &envPtr->exceptAuxArrayPtr[exnIdx]; - } - return &envPtr->exceptArrayPtr[exnIdx]; + return NULL; } /* -- cgit v0.12 From 01d1cdb5e8789884ae310c5e38fb976559157460 Mon Sep 17 00:00:00 2001 From: dkf Date: Sun, 20 Mar 2016 20:40:07 +0000 Subject: [1af8de570511] Fix crash in [string replace] caused by cut-n-paste. --- generic/tclExecute.c | 35 +++++++++++++---------------------- tests/stringComp.test | 10 ++++++++++ 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/generic/tclExecute.c b/generic/tclExecute.c index dacc9e2..c43cc40 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -5737,6 +5737,17 @@ TEBCresume( if (length3 - 1 == toIdx - fromIdx) { unsigned char *bytes1, *bytes2; + /* + * Flush the info in the string internal rep that refers to the + * about-to-be-invalidated UTF-8 rep. This sets the 'allocated' + * field of the String structure to 0 to indicate that a new + * buffer needs to be allocated. This assumes that the value is + * already of tclStringTypePtr type, which should be true provided + * we call it after Tcl_GetUnicodeFromObj. + */ +#define MarkStringInternalRepForFlush(objPtr) \ + (((int *) ((objPtr)->internalRep.twoPtrValue.ptr1))[1] = 0) + if (Tcl_IsShared(valuePtr)) { objResultPtr = Tcl_DuplicateObj(valuePtr); if (TclIsPureByteArray(objResultPtr) @@ -5749,17 +5760,7 @@ TEBCresume( ustring2 = Tcl_GetUnicodeFromObj(value3Ptr, NULL); memcpy(ustring1 + fromIdx, ustring2, length3 * sizeof(Tcl_UniChar)); - - /* - * Magic! Flush the info in the string internal rep that - * refers to the about-to-be-invalidated UTF-8 rep. This - * sets the 'allocated' field of the String structure to 0 - * to indicate that a new buffer needs to be allocated. - * This is safe; we know we've got a tclStringTypePtr set - * at this point (post Tcl_GetUnicodeFromObj). - */ - - ((int *) objResultPtr->internalRep.twoPtrValue.ptr1)[1] = 0; + MarkStringInternalRepForFlush(objResultPtr); } Tcl_InvalidateStringRep(objResultPtr); TclDecrRefCount(value3Ptr); @@ -5776,17 +5777,7 @@ TEBCresume( ustring2 = Tcl_GetUnicodeFromObj(value3Ptr, NULL); memcpy(ustring1 + fromIdx, ustring2, length3 * sizeof(Tcl_UniChar)); - - /* - * Magic! Flush the info in the string internal rep that - * refers to the about-to-be-invalidated UTF-8 rep. This - * sets the 'allocated' field of the String structure to 0 - * to indicate that a new buffer needs to be allocated. - * This is safe; we know we've got a tclStringTypePtr set - * at this point (post Tcl_GetUnicodeFromObj). - */ - - ((int *) objResultPtr->internalRep.twoPtrValue.ptr1)[1] = 0; + MarkStringInternalRepForFlush(valuePtr); } Tcl_InvalidateStringRep(valuePtr); TclDecrRefCount(value3Ptr); diff --git a/tests/stringComp.test b/tests/stringComp.test index a66525e..140a270 100644 --- a/tests/stringComp.test +++ b/tests/stringComp.test @@ -728,6 +728,16 @@ test stringComp-14.3 {Bug 0dca3bfa8f} { expr {$arg ne $argCopy} }} abcde } 1 +test stringComp-14.4 {Bug 1af8de570511} { + apply {{x y} { + # Generate an unshared string value + set val "" + for { set i 0 } { $i < $x } { incr i } { + set val [format "0%s" $val] + } + string replace $val[unset val] 1 1 $y + }} 4 x +} 0x00 ## string tolower ## not yet bc -- cgit v0.12 From d291d84481a5f1d56df04bfffcd53fae1a5c8a00 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Mar 2016 09:05:34 +0000 Subject: Proposed fix for [d3071887dbc7aeac]: Fix SEGV in Tcl_FinalizeNotifier() --- unix/tclUnixNotfy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c index 48ba0cc..3946c7d 100644 --- a/unix/tclUnixNotfy.c +++ b/unix/tclUnixNotfy.c @@ -433,9 +433,11 @@ Tcl_FinalizeNotifier( "unable to write q to triggerPipe"); } close(triggerPipe); + pthread_mutex_lock(¬ifierMutex); while(triggerPipe != -1) { pthread_cond_wait(¬ifierCV, ¬ifierMutex); } + pthread_mutex_lock(¬ifierMutex); if (notifierThreadRunning) { int result = pthread_join((pthread_t) notifierThread, NULL); -- cgit v0.12 From c031c59ec3e4290d29f9c819b2640e90a176ad13 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Mar 2016 09:16:28 +0000 Subject: .... oops .... --- unix/tclUnixNotfy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c index 3946c7d..1457890 100644 --- a/unix/tclUnixNotfy.c +++ b/unix/tclUnixNotfy.c @@ -437,7 +437,7 @@ Tcl_FinalizeNotifier( while(triggerPipe != -1) { pthread_cond_wait(¬ifierCV, ¬ifierMutex); } - pthread_mutex_lock(¬ifierMutex); + pthread_mutex_unlock(¬ifierMutex); if (notifierThreadRunning) { int result = pthread_join((pthread_t) notifierThread, NULL); -- cgit v0.12 From 72376991f5c43b445f266ab25f73c1c41d6393f0 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Mar 2016 12:03:17 +0000 Subject: (cherry-pick): Fix [d3071887dbc7aeac]: Fix SEGV in Tcl_FinalizeNotifier(). Thanks to hirofumi for both the bug-report and the fix --- unix/tclUnixNotfy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c index 48ba0cc..1457890 100644 --- a/unix/tclUnixNotfy.c +++ b/unix/tclUnixNotfy.c @@ -433,9 +433,11 @@ Tcl_FinalizeNotifier( "unable to write q to triggerPipe"); } close(triggerPipe); + pthread_mutex_lock(¬ifierMutex); while(triggerPipe != -1) { pthread_cond_wait(¬ifierCV, ¬ifierMutex); } + pthread_mutex_unlock(¬ifierMutex); if (notifierThreadRunning) { int result = pthread_join((pthread_t) notifierThread, NULL); -- cgit v0.12 From 06831f3ce25bb5b9778c4de1ad35dd50ed6b7b32 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Mar 2016 12:08:34 +0000 Subject: (cherry-pick): Fix [d3071887dbc7aeac]: Fix SEGV in Tcl_FinalizeNotifier(). Thanks to hirofumi for both the bug-report and the fix --- unix/tclUnixNotfy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c index a57a89a..e7ea7a1 100644 --- a/unix/tclUnixNotfy.c +++ b/unix/tclUnixNotfy.c @@ -432,9 +432,11 @@ Tcl_FinalizeNotifier( "unable to write q to triggerPipe"); } close(triggerPipe); + pthread_mutex_lock(¬ifierMutex); while(triggerPipe != -1) { pthread_cond_wait(¬ifierCV, ¬ifierMutex); } + pthread_mutex_unlock(¬ifierMutex); if (notifierThreadRunning) { int result = pthread_join((pthread_t) notifierThread, NULL); -- cgit v0.12 From a4933e22d0b56bf07cf35cb90eb1f6fd6c9e48cb Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Mar 2016 14:22:52 +0000 Subject: (experiment) Use TclpMasterLock() in stead of a separate notifierInitMutex. One less mutex to be worried about. --- generic/tclInt.h | 1 + unix/tclUnixNotfy.c | 21 ++++++++++----------- unix/tclUnixThrd.c | 25 +++++++++++++++++++++++++ win/tclWinNotify.c | 26 ++++++++++++++++++-------- 4 files changed, 54 insertions(+), 19 deletions(-) diff --git a/generic/tclInt.h b/generic/tclInt.h index 42c13dd..da792aa 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -3059,6 +3059,7 @@ MODULE_SCOPE void TclpInitUnlock(void); MODULE_SCOPE Tcl_Obj * TclpObjListVolumes(void); MODULE_SCOPE void TclpMasterLock(void); MODULE_SCOPE void TclpMasterUnlock(void); +MODULE_SCOPE void TclpMasterReset(void); MODULE_SCOPE int TclpMatchFiles(Tcl_Interp *interp, char *separators, Tcl_DString *dirPtr, char *pattern, char *tail); MODULE_SCOPE int TclpObjNormalizePath(Tcl_Interp *interp, diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c index 1457890..ca6a7ef 100644 --- a/unix/tclUnixNotfy.c +++ b/unix/tclUnixNotfy.c @@ -152,7 +152,6 @@ static int triggerPipe = -1; * The notifierMutex locks access to all of the global notifier state. */ -pthread_mutex_t notifierInitMutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t notifierMutex = PTHREAD_MUTEX_INITIALIZER; /* * The following static indicates if the notifier thread is running. @@ -281,7 +280,7 @@ static void StartNotifierThread(const char *proc) { if (!notifierThreadRunning) { - pthread_mutex_lock(¬ifierInitMutex); + TclpMasterLock(); if (!notifierThreadRunning) { if (TclpThreadCreate(¬ifierThread, NotifierThreadProc, NULL, TCL_THREAD_STACK_DEFAULT, TCL_THREAD_JOINABLE) != TCL_OK) { @@ -300,7 +299,7 @@ StartNotifierThread(const char *proc) notifierThreadRunning = 1; } - pthread_mutex_unlock(¬ifierInitMutex); + TclpMasterUnlock(); } } #endif /* TCL_THREADS */ @@ -362,7 +361,7 @@ Tcl_InitNotifier(void) tsdPtr->waitCVinitialized = 1; } - pthread_mutex_lock(¬ifierInitMutex); + TclpMasterLock(); #if defined(HAVE_PTHREAD_ATFORK) /* * Install pthread_atfork handlers to clean up the notifier in the @@ -381,7 +380,7 @@ Tcl_InitNotifier(void) notifierCount++; - pthread_mutex_unlock(¬ifierInitMutex); + TclpMasterUnlock(); #endif /* TCL_THREADS */ return tsdPtr; @@ -417,7 +416,7 @@ Tcl_FinalizeNotifier( #ifdef TCL_THREADS ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); - pthread_mutex_lock(¬ifierInitMutex); + TclpMasterLock(); notifierCount--; /* @@ -462,7 +461,7 @@ Tcl_FinalizeNotifier( #endif /* __CYGWIN__ */ tsdPtr->waitCVinitialized = 0; - pthread_mutex_unlock(¬ifierInitMutex); + TclpMasterUnlock(); #endif /* TCL_THREADS */ } } @@ -1368,7 +1367,7 @@ static void AtForkPrepare(void) { #if RESET_ATFORK_MUTEX == 0 - pthread_mutex_lock(¬ifierInitMutex); + TclpMasterLock(); #endif } @@ -1392,7 +1391,7 @@ static void AtForkParent(void) { #if RESET_ATFORK_MUTEX == 0 - pthread_mutex_unlock(¬ifierInitMutex); + TclpMasterUnlock(); #endif } @@ -1419,9 +1418,9 @@ AtForkChild(void) pthread_cond_destroy(¬ifierCV); } #if RESET_ATFORK_MUTEX == 0 - pthread_mutex_unlock(¬ifierInitMutex); + TclpMasterUnlock(); #else - pthread_mutex_init(¬ifierInitMutex, NULL); + TclpMasterReset(); pthread_mutex_init(¬ifierMutex, NULL); #endif pthread_cond_init(¬ifierCV, NULL); diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c index 554a2dc..4130993 100644 --- a/unix/tclUnixThrd.c +++ b/unix/tclUnixThrd.c @@ -357,6 +357,31 @@ TclpMasterUnlock(void) /* *---------------------------------------------------------------------- * + * TclpMasterReset + * + * This procedure is used to reset a lock that serializes creation and + * finalization of synchronization objects. + * + * Results: + * None. + * + * Side effects: + * Reset the master mutex. + * + *---------------------------------------------------------------------- + */ + +void +TclpMasterReset(void) +{ +#ifdef TCL_THREADS + pthread_mutex_init(&masterLock, NULL); +#endif +} + +/* + *---------------------------------------------------------------------- + * * Tcl_GetAllocMutex * * This procedure returns a pointer to a statically initialized mutex for diff --git a/win/tclWinNotify.c b/win/tclWinNotify.c index 4543b02..985a769 100644 --- a/win/tclWinNotify.c +++ b/win/tclWinNotify.c @@ -51,7 +51,8 @@ static Tcl_ThreadDataKey dataKey; static int notifierCount = 0; static const TCHAR classname[] = TEXT("TclNotifier"); -TCL_DECLARE_MUTEX(notifierMutex) +static int initialized = 0; +static CRITICAL_SECTION notifierMutex; /* * Static routines defined in this file. @@ -85,12 +86,19 @@ Tcl_InitNotifier(void) ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); WNDCLASS class; + TclpMasterLock(); + if (!initialized) { + initialized = 1; + InitializeCriticalSection(¬ifierMutex); + } + TclpMasterUnlock(); + /* * Register Notifier window class if this is the first thread to use * this module. */ - Tcl_MutexLock(¬ifierMutex); + EnterCriticalSection(¬ifierMutex); if (notifierCount == 0) { class.style = 0; class.cbClsExtra = 0; @@ -108,7 +116,7 @@ Tcl_InitNotifier(void) } } notifierCount++; - Tcl_MutexUnlock(¬ifierMutex); + LeaveCriticalSection(¬ifierMutex); tsdPtr->pending = 0; tsdPtr->timerActive = 0; @@ -183,12 +191,14 @@ Tcl_FinalizeNotifier( * notifier window class. */ - Tcl_MutexLock(¬ifierMutex); - notifierCount--; - if (notifierCount == 0) { - UnregisterClass(classname, TclWinGetTclInstance()); + EnterCriticalSection(¬ifierMutex); + if (notifierCount) { + notifierCount--; + if (notifierCount == 0) { + UnregisterClass(classname, TclWinGetTclInstance()); + } } - Tcl_MutexUnlock(¬ifierMutex); + LeaveCriticalSection(¬ifierMutex); } } -- cgit v0.12 From c829651d80705243c9ea3665699f13ad901debbe Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 22 Mar 2016 09:05:10 +0000 Subject: =?UTF-8?q?Fix=20signed-unsigned-compare=20warning=20(reported=20b?= =?UTF-8?q?y=20Fran=C3=A7ois=20Vogel=20on=20Windows,=20but=20gcc=20can=20t?= =?UTF-8?q?rigger=20it=20as=20well)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- generic/tclCompExpr.c | 2 +- generic/tclEnsemble.c | 2 +- unix/configure | 2 +- unix/tcl.m4 | 2 +- win/configure | 2 +- win/tcl.m4 | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c index 50edbec..2ffcc68 100644 --- a/generic/tclCompExpr.c +++ b/generic/tclCompExpr.c @@ -666,7 +666,7 @@ ParseExpr( OpNode *newPtr = NULL; do { - if (size <= UINT_MAX/sizeof(OpNode)) { + if (size <= (int)(UINT_MAX/sizeof(OpNode))) { newPtr = attemptckrealloc(nodes, size * sizeof(OpNode)); } } while ((newPtr == NULL) diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c index 986a553..6b6a156 100644 --- a/generic/tclEnsemble.c +++ b/generic/tclEnsemble.c @@ -3081,7 +3081,7 @@ TclAttemptCompileProc( int result, i; Tcl_Token *saveTokenPtr = parsePtr->tokenPtr; int savedStackDepth = envPtr->currStackDepth; - unsigned savedCodeNext = envPtr->codeNext - envPtr->codeStart; + int savedCodeNext = envPtr->codeNext - envPtr->codeStart; int savedAuxDataArrayNext = envPtr->auxDataArrayNext; int savedExceptArrayNext = envPtr->exceptArrayNext; #ifdef TCL_COMPILE_DEBUG diff --git a/unix/configure b/unix/configure index 3f9aa13..e999455 100755 --- a/unix/configure +++ b/unix/configure @@ -4985,7 +4985,7 @@ fi if test "$GCC" = yes; then : CFLAGS_OPTIMIZE=-O2 - CFLAGS_WARNING="-Wall" + CFLAGS_WARNING="-Wall -Wsign-compare -Wdeclaration-after-statement" else diff --git a/unix/tcl.m4 b/unix/tcl.m4 index 57d8ff0..f5aa84e 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -1096,7 +1096,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ CFLAGS_DEBUG=-g AS_IF([test "$GCC" = yes], [ CFLAGS_OPTIMIZE=-O2 - CFLAGS_WARNING="-Wall" + CFLAGS_WARNING="-Wall -Wsign-compare -Wdeclaration-after-statement" ], [ CFLAGS_OPTIMIZE=-O CFLAGS_WARNING="" diff --git a/win/configure b/win/configure index a1f57d1..73d6d9f 100755 --- a/win/configure +++ b/win/configure @@ -4165,7 +4165,7 @@ $as_echo "using shared flags" >&6; } CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" - CFLAGS_WARNING="-Wall -Wdeclaration-after-statement" + CFLAGS_WARNING="-Wall -Wsign-compare -Wdeclaration-after-statement" LDFLAGS_DEBUG= LDFLAGS_OPTIMIZE= diff --git a/win/tcl.m4 b/win/tcl.m4 index a75a936..7eff8e8 100644 --- a/win/tcl.m4 +++ b/win/tcl.m4 @@ -727,7 +727,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" - CFLAGS_WARNING="-Wall -Wdeclaration-after-statement" + CFLAGS_WARNING="-Wall -Wsign-compare -Wdeclaration-after-statement" LDFLAGS_DEBUG= LDFLAGS_OPTIMIZE= -- cgit v0.12 From fd553241ab33882835ecf6065d61b775c9e2f1b1 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 22 Mar 2016 09:07:44 +0000 Subject: =?UTF-8?q?(cherry-pick):=20Fix=20signed-unsigned-compare=20warnin?= =?UTF-8?q?g=20(reported=20by=20Fran=C3=A7ois=20Vogel=20on=20Windows,=20bu?= =?UTF-8?q?t=20gcc=20can=20trigger=20it=20as=20well)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- generic/tclCompExpr.c | 2 +- generic/tclEnsemble.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c index 50edbec..2ffcc68 100644 --- a/generic/tclCompExpr.c +++ b/generic/tclCompExpr.c @@ -666,7 +666,7 @@ ParseExpr( OpNode *newPtr = NULL; do { - if (size <= UINT_MAX/sizeof(OpNode)) { + if (size <= (int)(UINT_MAX/sizeof(OpNode))) { newPtr = attemptckrealloc(nodes, size * sizeof(OpNode)); } } while ((newPtr == NULL) diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c index 986a553..6b6a156 100644 --- a/generic/tclEnsemble.c +++ b/generic/tclEnsemble.c @@ -3081,7 +3081,7 @@ TclAttemptCompileProc( int result, i; Tcl_Token *saveTokenPtr = parsePtr->tokenPtr; int savedStackDepth = envPtr->currStackDepth; - unsigned savedCodeNext = envPtr->codeNext - envPtr->codeStart; + int savedCodeNext = envPtr->codeNext - envPtr->codeStart; int savedAuxDataArrayNext = envPtr->auxDataArrayNext; int savedExceptArrayNext = envPtr->exceptArrayNext; #ifdef TCL_COMPILE_DEBUG -- cgit v0.12 From f16557b5a03c04972b0b35eef114e92d2195e529 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 22 Mar 2016 13:15:21 +0000 Subject: Alternative solution for [f1253530cd] --- library/word.tcl | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/library/word.tcl b/library/word.tcl index b8f34a5..3e4bc3a 100644 --- a/library/word.tcl +++ b/library/word.tcl @@ -15,12 +15,20 @@ if {$::tcl_platform(platform) eq "windows"} { # Windows style - any but a unicode space char - set ::tcl_wordchars {\S} - set ::tcl_nonwordchars {\s} + if {![info exists ::tcl_wordchars]} { + set ::tcl_wordchars {\S} + } + if {![info exists ::tcl_nonwordchars]} { + set ::tcl_nonwordchars {\s} + } } else { # Motif style - any unicode word char (number, letter, or underscore) - set ::tcl_wordchars {\w} - set ::tcl_nonwordchars {\W} + if {![info exists ::tcl_wordchars]} { + set ::tcl_wordchars {\w} + } + if {![info exists ::tcl_nonwordchars]} { + set ::tcl_nonwordchars {\W} + } } # Arrange for caches of the real matcher REs to be kept, which enables the REs -- cgit v0.12 From 08da639e50f42d9cb3447401a59db6669748f9a9 Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 22 Mar 2016 16:38:47 +0000 Subject: Don't compare signed and unsigned. Get types right. --- generic/tclCompile.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/tclCompile.h b/generic/tclCompile.h index b5bfab1..5b747fe 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -135,7 +135,7 @@ typedef struct ExceptionAux { int numBreakTargets; /* The number of [break]s that want to be * targeted to the place where this loop * exception will be bound to. */ - int *breakTargets; /* The offsets of the INST_JUMP4 instructions + unsigned int *breakTargets; /* The offsets of the INST_JUMP4 instructions * issued by the [break]s that we must * update. Note that resizing a jump (via * TclFixupForwardJump) can cause the contents @@ -145,7 +145,7 @@ typedef struct ExceptionAux { int numContinueTargets; /* The number of [continue]s that want to be * targeted to the place where this loop * exception will be bound to. */ - int *continueTargets; /* The offsets of the INST_JUMP4 instructions + unsigned int *continueTargets; /* The offsets of the INST_JUMP4 instructions * issued by the [continue]s that we must * update. Note that resizing a jump (via * TclFixupForwardJump) can cause the contents -- cgit v0.12 From f0d0319ba6c340e680ec612d980061897bf07b4f Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 22 Mar 2016 17:08:50 +0000 Subject: More places where unsigned quantities should be decared such. --- generic/tclCompCmdsSZ.c | 2 +- generic/tclCompile.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index ef9340e..101edbd 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -2028,7 +2028,7 @@ IssueSwitchChainedTests( int foundDefault; /* Flag to indicate whether a "default" clause * is present. */ JumpFixup *fixupArray; /* Array of forward-jump fixup records. */ - int *fixupTargetArray; /* Array of places for fixups to point at. */ + unsigned int *fixupTargetArray; /* Array of places for fixups to point at. */ int fixupCount; /* Number of places to fix up. */ int contFixIndex; /* Where the first of the jumps due to a group * of continuation bodies starts, or -1 if diff --git a/generic/tclCompile.h b/generic/tclCompile.h index 5b747fe..d5bc86b 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -928,7 +928,7 @@ typedef enum { typedef struct JumpFixup { TclJumpType jumpType; /* Indicates the kind of jump. */ - int codeOffset; /* Offset of the first byte of the one-byte + unsigned int codeOffset; /* Offset of the first byte of the one-byte * forward jump's code. */ int cmdIndex; /* Index of the first command after the one * for which the jump was emitted. Used to -- cgit v0.12 From d281007655b47cbc0a3449aaa0c605bce151fec4 Mon Sep 17 00:00:00 2001 From: dkf Date: Tue, 22 Mar 2016 20:30:08 +0000 Subject: Factor out string internal rep definition so fix for [1af8de570511] is less awful. --- generic/tclExecute.c | 8 ++--- generic/tclStringObj.c | 55 +--------------------------- generic/tclStringRep.h | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 58 deletions(-) create mode 100644 generic/tclStringRep.h diff --git a/generic/tclExecute.c b/generic/tclExecute.c index c43cc40..d4077f5 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -19,6 +19,7 @@ #include "tclCompile.h" #include "tclOOInt.h" #include "tommath.h" +#include "tclStringRep.h" #include #include @@ -5739,14 +5740,13 @@ TEBCresume( /* * Flush the info in the string internal rep that refers to the - * about-to-be-invalidated UTF-8 rep. This sets the 'allocated' - * field of the String structure to 0 to indicate that a new - * buffer needs to be allocated. This assumes that the value is + * about-to-be-invalidated UTF-8 rep. This indicates that a new + * buffer needs to be allocated, and assumes that the value is * already of tclStringTypePtr type, which should be true provided * we call it after Tcl_GetUnicodeFromObj. */ #define MarkStringInternalRepForFlush(objPtr) \ - (((int *) ((objPtr)->internalRep.twoPtrValue.ptr1))[1] = 0) + (GET_STRING(objPtr)->allocated = 0) if (Tcl_IsShared(valuePtr)) { objResultPtr = Tcl_DuplicateObj(valuePtr); diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 8d70d20..11a57e9 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -36,6 +36,7 @@ #include "tclInt.h" #include "tommath.h" +#include "tclStringRep.h" /* * Set COMPAT to 1 to restore the shimmering patterns to those of Tcl 8.5. @@ -89,60 +90,6 @@ const Tcl_ObjType tclStringType = { UpdateStringOfString, /* updateStringProc */ SetStringFromAny /* setFromAnyProc */ }; - -/* - * The following structure is the internal rep for a String object. It keeps - * track of how much memory has been used and how much has been allocated for - * the Unicode and UTF string to enable growing and shrinking of the UTF and - * Unicode reps of the String object with fewer mallocs. To optimize string - * length and indexing operations, this structure also stores the number of - * characters (same of UTF and Unicode!) once that value has been computed. - * - * Under normal configurations, what Tcl calls "Unicode" is actually UTF-16 - * restricted to the Basic Multilingual Plane (i.e. U+00000 to U+0FFFF). This - * can be officially modified by altering the definition of Tcl_UniChar in - * tcl.h, but do not do that unless you are sure what you're doing! - */ - -typedef struct String { - int numChars; /* The number of chars in the string. -1 means - * this value has not been calculated. >= 0 - * means that there is a valid Unicode rep, or - * that the number of UTF bytes == the number - * of chars. */ - int allocated; /* The amount of space actually allocated for - * the UTF string (minus 1 byte for the - * termination char). */ - int maxChars; /* Max number of chars that can fit in the - * space allocated for the unicode array. */ - int hasUnicode; /* Boolean determining whether the string has - * a Unicode representation. */ - Tcl_UniChar unicode[1]; /* The array of Unicode chars. The actual size - * of this field depends on the 'maxChars' - * field above. */ -} String; - -#define STRING_MAXCHARS \ - (int)(((size_t)UINT_MAX - sizeof(String))/sizeof(Tcl_UniChar)) -#define STRING_SIZE(numChars) \ - (sizeof(String) + ((numChars) * sizeof(Tcl_UniChar))) -#define stringCheckLimits(numChars) \ - if ((numChars) < 0 || (numChars) > STRING_MAXCHARS) { \ - Tcl_Panic("max length for a Tcl unicode value (%d chars) exceeded", \ - STRING_MAXCHARS); \ - } -#define stringAttemptAlloc(numChars) \ - (String *) attemptckalloc((unsigned) STRING_SIZE(numChars) ) -#define stringAlloc(numChars) \ - (String *) ckalloc((unsigned) STRING_SIZE(numChars) ) -#define stringRealloc(ptr, numChars) \ - (String *) ckrealloc((ptr), (unsigned) STRING_SIZE(numChars) ) -#define stringAttemptRealloc(ptr, numChars) \ - (String *) attemptckrealloc((ptr), (unsigned) STRING_SIZE(numChars) ) -#define GET_STRING(objPtr) \ - ((String *) (objPtr)->internalRep.twoPtrValue.ptr1) -#define SET_STRING(objPtr, stringPtr) \ - ((objPtr)->internalRep.twoPtrValue.ptr1 = (void *) (stringPtr)) /* * TCL STRING GROWTH ALGORITHM diff --git a/generic/tclStringRep.h b/generic/tclStringRep.h new file mode 100644 index 0000000..227e6bc --- /dev/null +++ b/generic/tclStringRep.h @@ -0,0 +1,97 @@ +/* + * tclStringRep.h -- + * + * This file contains the definition of the Unicode string internal + * representation and macros to access it. + * + * A Unicode string is an internationalized string. Conceptually, a + * Unicode string is an array of 16-bit quantities organized as a + * sequence of properly formed UTF-8 characters. There is a one-to-one + * map between Unicode and UTF characters. Because Unicode characters + * have a fixed width, operations such as indexing operate on Unicode + * data. The String object is optimized for the case where each UTF char + * in a string is only one byte. In this case, we store the value of + * numChars, but we don't store the Unicode data (unless Tcl_GetUnicode + * is explicitly called). + * + * The String object type stores one or both formats. The default + * behavior is to store UTF. Once Unicode is calculated by a function, it + * is stored in the internal rep for future access (without an additional + * O(n) cost). + * + * To allow many appends to be done to an object without constantly + * reallocating the space for the string or Unicode representation, we + * allocate double the space for the string or Unicode and use the + * internal representation to keep track of how much space is used vs. + * allocated. + * + * Copyright (c) 1995-1997 Sun Microsystems, Inc. + * Copyright (c) 1999 by Scriptics Corporation. + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ + +/* + * The following structure is the internal rep for a String object. It keeps + * track of how much memory has been used and how much has been allocated for + * the Unicode and UTF string to enable growing and shrinking of the UTF and + * Unicode reps of the String object with fewer mallocs. To optimize string + * length and indexing operations, this structure also stores the number of + * characters (same of UTF and Unicode!) once that value has been computed. + * + * Under normal configurations, what Tcl calls "Unicode" is actually UTF-16 + * restricted to the Basic Multilingual Plane (i.e. U+00000 to U+0FFFF). This + * can be officially modified by altering the definition of Tcl_UniChar in + * tcl.h, but do not do that unless you are sure what you're doing! + */ + +typedef struct String { + int numChars; /* The number of chars in the string. -1 means + * this value has not been calculated. >= 0 + * means that there is a valid Unicode rep, or + * that the number of UTF bytes == the number + * of chars. */ + int allocated; /* The amount of space actually allocated for + * the UTF string (minus 1 byte for the + * termination char). */ + int maxChars; /* Max number of chars that can fit in the + * space allocated for the unicode array. */ + int hasUnicode; /* Boolean determining whether the string has + * a Unicode representation. */ + Tcl_UniChar unicode[1]; /* The array of Unicode chars. The actual size + * of this field depends on the 'maxChars' + * field above. */ +} String; + +#define STRING_MAXCHARS \ + (int)(((size_t)UINT_MAX - sizeof(String))/sizeof(Tcl_UniChar)) +#define STRING_SIZE(numChars) \ + (sizeof(String) + ((numChars) * sizeof(Tcl_UniChar))) +#define stringCheckLimits(numChars) \ + do { \ + if ((numChars) < 0 || (numChars) > STRING_MAXCHARS) { \ + Tcl_Panic("max length for a Tcl unicode value (%d chars) exceeded", \ + STRING_MAXCHARS); \ + } \ + } while (0) +#define stringAttemptAlloc(numChars) \ + (String *) attemptckalloc((unsigned) STRING_SIZE(numChars)) +#define stringAlloc(numChars) \ + (String *) ckalloc((unsigned) STRING_SIZE(numChars)) +#define stringRealloc(ptr, numChars) \ + (String *) ckrealloc((ptr), (unsigned) STRING_SIZE(numChars)) +#define stringAttemptRealloc(ptr, numChars) \ + (String *) attemptckrealloc((ptr), (unsigned) STRING_SIZE(numChars)) +#define GET_STRING(objPtr) \ + ((String *) (objPtr)->internalRep.twoPtrValue.ptr1) +#define SET_STRING(objPtr, stringPtr) \ + ((objPtr)->internalRep.twoPtrValue.ptr1 = (void *) (stringPtr)) + +/* + * Local Variables: + * mode: c + * c-basic-offset: 4 + * fill-column: 78 + * End: + */ -- cgit v0.12 From 9ac95b002e2b6c6b66c04d1964c22ccc25d4e883 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 08:48:54 +0000 Subject: =?UTF-8?q?Fix=20[7d0db7c388f52de8]:=20Occasional=20build=20failur?= =?UTF-8?q?es=20with=20parallel=20make.=20Thanks=20to=20Jaroslav=20=C5=A0k?= =?UTF-8?q?arvada=20for=20bug=20report=20and=20fix.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unix/Makefile.in | 128 +++++++++++++++++++++++++++---------------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 570bce0..0cb9c44 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -1351,196 +1351,196 @@ tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c -bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) +bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c -bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) +bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c -bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) +bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c -bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) +bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c -bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) +bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c -bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) +bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c -bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) +bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c -bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) +bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c -bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) +bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c -bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) +bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c -bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) +bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c -bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) +bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c -bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) +bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c -bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) +bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cnt_lsb.c -bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) +bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c -bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) +bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c -bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) +bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c -bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) +bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c -bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) +bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c -bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) +bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c -bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) +bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c -bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) +bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c -bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) +bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c -bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) +bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c -bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) +bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c -bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) +bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c -bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) +bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c -bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) +bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c -bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) +bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set_int.c -bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) +bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c -bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) +bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c -bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) +bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c -bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) +bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c -bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) +bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c -bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) +bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c -bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) +bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c -bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) +bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c -bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) +bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c -bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) +bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c -bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) +bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c -bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) +bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c -bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) +bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c -bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) +bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c -bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) +bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c -bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) +bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c -bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) +bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c -bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) +bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set_int.c -bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) +bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c -bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) +bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c -bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) +bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c -bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) +bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c -bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) +bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c -bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) +bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c -bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) +bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c -bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) +bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c -bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) +bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c -bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) +bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c -bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) +bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c -bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) +bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c -bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) +bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c -bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) +bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c -bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) +bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c -bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) +bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c -bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) +bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR) -- cgit v0.12 From 6217f91705eb0d6550f5376c362942971284a102 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 08:59:25 +0000 Subject: =?UTF-8?q?(cherry-pick):=20Fix=20[7d0db7c388f52de8]:=20Occasional?= =?UTF-8?q?=20build=20failures=20with=20parallel=20make.=20Thanks=20to=20J?= =?UTF-8?q?aroslav=20=C5=A0karvada=20for=20bug=20report=20and=20fix.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unix/Makefile.in | 128 +++++++++++++++++++++++++++---------------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index bc73118..cc438a4 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -1351,196 +1351,196 @@ tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c -bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) +bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c -bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) +bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c -bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) +bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c -bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) +bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c -bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) +bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c -bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) +bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c -bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) +bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c -bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) +bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c -bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) +bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c -bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) +bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c -bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) +bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c -bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) +bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c -bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) +bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c -bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) +bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cnt_lsb.c -bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) +bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c -bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) +bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c -bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) +bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c -bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) +bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c -bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) +bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c -bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) +bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c -bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) +bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c -bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) +bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c -bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) +bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c -bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) +bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c -bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) +bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c -bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) +bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c -bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) +bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c -bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) +bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c -bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) +bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set_int.c -bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) +bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c -bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) +bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c -bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) +bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c -bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) +bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c -bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) +bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c -bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) +bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c -bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) +bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c -bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) +bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c -bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) +bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c -bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) +bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c -bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) +bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c -bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) +bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c -bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) +bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c -bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) +bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c -bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) +bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c -bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) +bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c -bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) +bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c -bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) +bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set_int.c -bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) +bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c -bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) +bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c -bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) +bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c -bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) +bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c -bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) +bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c -bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) +bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c -bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) +bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c -bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) +bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c -bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) +bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c -bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) +bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c -bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) +bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c -bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) +bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c -bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) +bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c -bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) +bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c -bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) +bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c -bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) +bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c -bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) +bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR) -- cgit v0.12 From a65c0e7103d10d4dc444c2cd443ecc4ecff5f6cb Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 09:00:54 +0000 Subject: =?UTF-8?q?(cherry-pick):=20Fix=20[7d0db7c388f52de8]:=20Occasional?= =?UTF-8?q?=20build=20failures=20with=20parallel=20make.=20Thanks=20to=20J?= =?UTF-8?q?aroslav=20=C5=A0karvada=20for=20bug=20report=20and=20fix.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unix/Makefile.in | 128 +++++++++++++++++++++++++++---------------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 84d0391..6e2970f 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -1238,196 +1238,196 @@ tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c -bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) +bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c -bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) +bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c -bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) +bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c -bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) +bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c -bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) +bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c -bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) +bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c -bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) +bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c -bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) +bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c -bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) +bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c -bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) +bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c -bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) +bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c -bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) +bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c -bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) +bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c -bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) +bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cnt_lsb.c -bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) +bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c -bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) +bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c -bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) +bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c -bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) +bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c -bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) +bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c -bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) +bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c -bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) +bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c -bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) +bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c -bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) +bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c -bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) +bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c -bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) +bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c -bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) +bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c -bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) +bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c -bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) +bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c -bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) +bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set_int.c -bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) +bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c -bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) +bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c -bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) +bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c -bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) +bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c -bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) +bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c -bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) +bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c -bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) +bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c -bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) +bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c -bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) +bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c -bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) +bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c -bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) +bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c -bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) +bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c -bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) +bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c -bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) +bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c -bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) +bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c -bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) +bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c -bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) +bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c -bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) +bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set_int.c -bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) +bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c -bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) +bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c -bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) +bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c -bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) +bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c -bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) +bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c -bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) +bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c -bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) +bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c -bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) +bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c -bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) +bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c -bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) +bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c -bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) +bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c -bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) +bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c -bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) +bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c -bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) +bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c -bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) +bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c -bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) +bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c -bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) +bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR) -- cgit v0.12 From 62af51b8f98d93a42b8242eafa267316ad222973 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 09:55:06 +0000 Subject: Fix [f1253530cdd83e66]: Different Windows / *nix default bindings for text widget. Still - most likely - not the complete story for trunk/tcl9, but whatever we do this is a better starting-point than how it was. --- library/word.tcl | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/library/word.tcl b/library/word.tcl index 3e4bc3a..0246530 100644 --- a/library/word.tcl +++ b/library/word.tcl @@ -11,24 +11,14 @@ # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # The following variables are used to determine which characters are -# interpreted as white space. +# interpreted as word characters. See bug [f1253530cdd8]. Will +# probably be removed in Tcl 9. -if {$::tcl_platform(platform) eq "windows"} { - # Windows style - any but a unicode space char - if {![info exists ::tcl_wordchars]} { - set ::tcl_wordchars {\S} - } - if {![info exists ::tcl_nonwordchars]} { - set ::tcl_nonwordchars {\s} - } -} else { - # Motif style - any unicode word char (number, letter, or underscore) - if {![info exists ::tcl_wordchars]} { - set ::tcl_wordchars {\w} - } - if {![info exists ::tcl_nonwordchars]} { - set ::tcl_nonwordchars {\W} - } +if {![info exists ::tcl_wordchars]} { + set ::tcl_wordchars {\w} +} +if {![info exists ::tcl_nonwordchars]} { + set ::tcl_nonwordchars {\W} } # Arrange for caches of the real matcher REs to be kept, which enables the REs -- cgit v0.12 From ff955a7522d3517a71ee5427c360075be87f056d Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 09:59:08 +0000 Subject: (cherry-pick): Fix [f1253530cdd83e66]: Different Windows / *nix default bindings for text widget See: [https://groups.google.com/forum/#!topic/comp.lang.tcl/ZZ_WwfQdmoE]. People like Eric Brunel, who want the most logical behavior for any Tcl release can simply do: set ::tcl_wordchars {\w} set ::tcl_nonwordchars {\W} --- library/word.tcl | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/library/word.tcl b/library/word.tcl index b8f34a5..3e4bc3a 100644 --- a/library/word.tcl +++ b/library/word.tcl @@ -15,12 +15,20 @@ if {$::tcl_platform(platform) eq "windows"} { # Windows style - any but a unicode space char - set ::tcl_wordchars {\S} - set ::tcl_nonwordchars {\s} + if {![info exists ::tcl_wordchars]} { + set ::tcl_wordchars {\S} + } + if {![info exists ::tcl_nonwordchars]} { + set ::tcl_nonwordchars {\s} + } } else { # Motif style - any unicode word char (number, letter, or underscore) - set ::tcl_wordchars {\w} - set ::tcl_nonwordchars {\W} + if {![info exists ::tcl_wordchars]} { + set ::tcl_wordchars {\w} + } + if {![info exists ::tcl_nonwordchars]} { + set ::tcl_nonwordchars {\W} + } } # Arrange for caches of the real matcher REs to be kept, which enables the REs -- cgit v0.12 From 4936a3f9d6993a339e97da0e54cdf7694d58769c Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 10:00:40 +0000 Subject: (cherry-pick): Fix [f1253530cdd83e66]: Different Windows / *nix default bindings for text widget See: [https://groups.google.com/forum/#!topic/comp.lang.tcl/ZZ_WwfQdmoE]. People like Eric Brunel, who want the most logical behavior for any Tcl release can simply do: set ::tcl_wordchars {\w} set ::tcl_nonwordchars {\W} --- library/word.tcl | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/library/word.tcl b/library/word.tcl index b8f34a5..3e4bc3a 100644 --- a/library/word.tcl +++ b/library/word.tcl @@ -15,12 +15,20 @@ if {$::tcl_platform(platform) eq "windows"} { # Windows style - any but a unicode space char - set ::tcl_wordchars {\S} - set ::tcl_nonwordchars {\s} + if {![info exists ::tcl_wordchars]} { + set ::tcl_wordchars {\S} + } + if {![info exists ::tcl_nonwordchars]} { + set ::tcl_nonwordchars {\s} + } } else { # Motif style - any unicode word char (number, letter, or underscore) - set ::tcl_wordchars {\w} - set ::tcl_nonwordchars {\W} + if {![info exists ::tcl_wordchars]} { + set ::tcl_wordchars {\w} + } + if {![info exists ::tcl_nonwordchars]} { + set ::tcl_nonwordchars {\W} + } } # Arrange for caches of the real matcher REs to be kept, which enables the REs -- cgit v0.12 From 143c2731049b73d59148a7f19d47b78b8c24b8b2 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 13:03:54 +0000 Subject: Fix DTRACE_HDR value if tracing is diabled. Follow-up to [7d0db7c388] --- unix/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 0cb9c44..897dd1f 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -584,7 +584,7 @@ MAC_OSX_SRCS = \ CYGWIN_SRCS = \ $(TOP_DIR)/win/tclWinError.c -DTRACE_HDR = tclDTrace.h +DTRACE_HDR = @DTRACE_HDR@ DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d -- cgit v0.12 From df30a3a3ac6e6eb01c81e221d015d20f0a9dffa1 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 13:04:52 +0000 Subject: (cherry-pick): Fix DTRACE_HDR value if tracing is diabled. Follow-up to [7d0db7c388] --- unix/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index cc438a4..7604bc7 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -584,7 +584,7 @@ MAC_OSX_SRCS = \ CYGWIN_SRCS = \ $(TOP_DIR)/win/tclWinError.c -DTRACE_HDR = tclDTrace.h +DTRACE_HDR = @DTRACE_HDR@ DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d -- cgit v0.12 From 0c78aaa138bc51f0f2a003a187161b60ec32a2ab Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 23 Mar 2016 13:06:09 +0000 Subject: (cherry-pick): Fix DTRACE_HDR value if tracing is diabled. Follow-up to [7d0db7c388] --- unix/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 6e2970f..722f85d 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -529,7 +529,7 @@ MAC_OSX_SRCS = \ $(MAC_OSX_DIR)/tclMacOSXFCmd.c \ $(MAC_OSX_DIR)/tclMacOSXNotify.c -DTRACE_HDR = tclDTrace.h +DTRACE_HDR = @DTRACE_HDR@ DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d -- cgit v0.12 From 77cc7b40aa68fe4c7ef545f76495ba18c4ace487 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 24 Mar 2016 21:21:42 +0000 Subject: No longer a need to keep around 'revert to 8.5' code. --- generic/tclStringObj.c | 83 ++------------------------------------------------ 1 file changed, 3 insertions(+), 80 deletions(-) diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 11a57e9..e718749 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -39,15 +39,6 @@ #include "tclStringRep.h" /* - * Set COMPAT to 1 to restore the shimmering patterns to those of Tcl 8.5. - * This is an escape hatch in case the changes have some unexpected unwelcome - * impact on performance. If things go well, this mechanism can go away when - * post-8.6 development begins. - */ - -#define COMPAT 0 - -/* * Prototypes for functions defined later in this file: */ @@ -445,18 +436,6 @@ Tcl_GetCharLength( if (numChars == -1) { TclNumUtfChars(numChars, objPtr->bytes, objPtr->length); stringPtr->numChars = numChars; - -#if COMPAT - if (numChars < objPtr->length) { - /* - * Since we've just computed the number of chars, and not all UTF - * chars are 1-byte long, go ahead and populate the unicode - * string. - */ - - FillUnicodeRep(objPtr); - } -#endif } return numChars; } @@ -1173,11 +1152,7 @@ Tcl_AppendUnicodeToObj( * objPtr's string rep. */ - if (stringPtr->hasUnicode -#if COMPAT - && stringPtr->numChars > 0 -#endif - ) { + if (stringPtr->hasUnicode) { AppendUnicodeToUnicodeRep(objPtr, unicode, length); } else { AppendUnicodeToUtfRep(objPtr, unicode, length); @@ -1281,11 +1256,7 @@ Tcl_AppendObjToObj( * appendObjPtr and append it. */ - if (stringPtr->hasUnicode -#if COMPAT - && stringPtr->numChars > 0 -#endif - ) { + if (stringPtr->hasUnicode) { /* * If appendObjPtr is not of the "String" type, don't convert it. */ @@ -1318,11 +1289,7 @@ Tcl_AppendObjToObj( AppendUtfToUtfRep(objPtr, bytes, length); - if (numChars >= 0 && appendNumChars >= 0 -#if COMPAT - && appendNumChars == length -#endif - ) { + if (numChars >= 0 && appendNumChars >= 0) { stringPtr->numChars = numChars + appendNumChars; } } @@ -1446,14 +1413,6 @@ AppendUnicodeToUtfRep( if (stringPtr->numChars != -1) { stringPtr->numChars += numChars; } - -#if COMPAT - /* - * Invalidate the unicode rep. - */ - - stringPtr->hasUnicode = 0; -#endif } /* @@ -2871,7 +2830,6 @@ DupStringInternalRep( String *srcStringPtr = GET_STRING(srcPtr); String *copyStringPtr = NULL; -#if COMPAT==0 if (srcStringPtr->numChars == -1) { /* * The String struct in the source value holds zero useful data. Don't @@ -2914,41 +2872,6 @@ DupStringInternalRep( */ copyStringPtr->allocated = copyPtr->bytes ? copyPtr->length : 0; -#else /* COMPAT!=0 */ - /* - * If the src obj is a string of 1-byte Utf chars, then copy the string - * rep of the source object and create an "empty" Unicode internal rep for - * the new object. Otherwise, copy Unicode internal rep, and invalidate - * the string rep of the new object. - */ - - if (srcStringPtr->hasUnicode && srcStringPtr->numChars > 0) { - /* - * Copy the full allocation for the Unicode buffer. - */ - - copyStringPtr = stringAlloc(srcStringPtr->maxChars); - copyStringPtr->maxChars = srcStringPtr->maxChars; - memcpy(copyStringPtr->unicode, srcStringPtr->unicode, - srcStringPtr->numChars * sizeof(Tcl_UniChar)); - copyStringPtr->unicode[srcStringPtr->numChars] = 0; - copyStringPtr->allocated = 0; - } else { - copyStringPtr = stringAlloc(0); - copyStringPtr->unicode[0] = 0; - copyStringPtr->maxChars = 0; - - /* - * Tricky point: the string value was copied by generic object - * management code, so it doesn't contain any extra bytes that might - * exist in the source object. - */ - - copyStringPtr->allocated = copyPtr->length; - } - copyStringPtr->numChars = srcStringPtr->numChars; - copyStringPtr->hasUnicode = srcStringPtr->hasUnicode; -#endif /* COMPAT==0 */ SET_STRING(copyPtr, copyStringPtr); copyPtr->typePtr = &tclStringType; -- cgit v0.12 From cd945198884b9249ee89c47775c2eb9f725a750d Mon Sep 17 00:00:00 2001 From: venkat Date: Sat, 26 Mar 2016 18:10:48 +0000 Subject: Update to tzdata 2016c from ietf.org --- library/tzdata/America/Santiago | 169 +++++++++++++++++++++++++++++++++++++- library/tzdata/Antarctica/Palmer | 169 +++++++++++++++++++++++++++++++++++++- library/tzdata/Asia/Baku | 168 ------------------------------------- library/tzdata/Asia/Barnaul | 6 +- library/tzdata/Europe/Kaliningrad | 10 +-- library/tzdata/Europe/Vilnius | 11 +-- library/tzdata/Europe/Volgograd | 6 +- library/tzdata/Pacific/Easter | 169 +++++++++++++++++++++++++++++++++++++- 8 files changed, 522 insertions(+), 186 deletions(-) diff --git a/library/tzdata/America/Santiago b/library/tzdata/America/Santiago index b6d9b38..3a5c0fd 100644 --- a/library/tzdata/America/Santiago +++ b/library/tzdata/America/Santiago @@ -118,5 +118,172 @@ set TZData(:America/Santiago) { {1378612800 -10800 1 CLST} {1398567600 -14400 0 CLT} {1410062400 -10800 1 CLST} - {1430017200 -10800 0 CLT} + {1463281200 -14400 0 CLT} + {1471147200 -10800 1 CLST} + {1494730800 -14400 0 CLT} + {1502596800 -10800 1 CLST} + {1526180400 -14400 0 CLT} + {1534046400 -10800 1 CLST} + {1557630000 -14400 0 CLT} + {1565496000 -10800 1 CLST} + {1589079600 -14400 0 CLT} + {1596945600 -10800 1 CLST} + {1620529200 -14400 0 CLT} + {1629000000 -10800 1 CLST} + {1652583600 -14400 0 CLT} + {1660449600 -10800 1 CLST} + {1684033200 -14400 0 CLT} + {1691899200 -10800 1 CLST} + {1715482800 -14400 0 CLT} + {1723348800 -10800 1 CLST} + {1746932400 -14400 0 CLT} + {1754798400 -10800 1 CLST} + {1778382000 -14400 0 CLT} + {1786248000 -10800 1 CLST} + {1809831600 -14400 0 CLT} + {1818302400 -10800 1 CLST} + {1841886000 -14400 0 CLT} + {1849752000 -10800 1 CLST} + {1873335600 -14400 0 CLT} + {1881201600 -10800 1 CLST} + {1904785200 -14400 0 CLT} + {1912651200 -10800 1 CLST} + {1936234800 -14400 0 CLT} + {1944100800 -10800 1 CLST} + {1967684400 -14400 0 CLT} + {1976155200 -10800 1 CLST} + {1999738800 -14400 0 CLT} + {2007604800 -10800 1 CLST} + {2031188400 -14400 0 CLT} + {2039054400 -10800 1 CLST} + {2062638000 -14400 0 CLT} + {2070504000 -10800 1 CLST} + {2094087600 -14400 0 CLT} + {2101953600 -10800 1 CLST} + {2125537200 -14400 0 CLT} + {2133403200 -10800 1 CLST} + {2156986800 -14400 0 CLT} + {2165457600 -10800 1 CLST} + {2189041200 -14400 0 CLT} + {2196907200 -10800 1 CLST} + {2220490800 -14400 0 CLT} + {2228356800 -10800 1 CLST} + {2251940400 -14400 0 CLT} + {2259806400 -10800 1 CLST} + {2283390000 -14400 0 CLT} + {2291256000 -10800 1 CLST} + {2314839600 -14400 0 CLT} + {2322705600 -10800 1 CLST} + {2346894000 -14400 0 CLT} + {2354760000 -10800 1 CLST} + {2378343600 -14400 0 CLT} + {2386209600 -10800 1 CLST} + {2409793200 -14400 0 CLT} + {2417659200 -10800 1 CLST} + {2441242800 -14400 0 CLT} + {2449108800 -10800 1 CLST} + {2472692400 -14400 0 CLT} + {2480558400 -10800 1 CLST} + {2504142000 -14400 0 CLT} + {2512612800 -10800 1 CLST} + {2536196400 -14400 0 CLT} + {2544062400 -10800 1 CLST} + {2567646000 -14400 0 CLT} + {2575512000 -10800 1 CLST} + {2599095600 -14400 0 CLT} + {2606961600 -10800 1 CLST} + {2630545200 -14400 0 CLT} + {2638411200 -10800 1 CLST} + {2661994800 -14400 0 CLT} + {2669860800 -10800 1 CLST} + {2693444400 -14400 0 CLT} + {2701915200 -10800 1 CLST} + {2725498800 -14400 0 CLT} + {2733364800 -10800 1 CLST} + {2756948400 -14400 0 CLT} + {2764814400 -10800 1 CLST} + {2788398000 -14400 0 CLT} + {2796264000 -10800 1 CLST} + {2819847600 -14400 0 CLT} + {2827713600 -10800 1 CLST} + {2851297200 -14400 0 CLT} + {2859768000 -10800 1 CLST} + {2883351600 -14400 0 CLT} + {2891217600 -10800 1 CLST} + {2914801200 -14400 0 CLT} + {2922667200 -10800 1 CLST} + {2946250800 -14400 0 CLT} + {2954116800 -10800 1 CLST} + {2977700400 -14400 0 CLT} + {2985566400 -10800 1 CLST} + {3009150000 -14400 0 CLT} + {3017016000 -10800 1 CLST} + {3040599600 -14400 0 CLT} + {3049070400 -10800 1 CLST} + {3072654000 -14400 0 CLT} + {3080520000 -10800 1 CLST} + {3104103600 -14400 0 CLT} + {3111969600 -10800 1 CLST} + {3135553200 -14400 0 CLT} + {3143419200 -10800 1 CLST} + {3167002800 -14400 0 CLT} + {3174868800 -10800 1 CLST} + {3198452400 -14400 0 CLT} + {3206318400 -10800 1 CLST} + {3230506800 -14400 0 CLT} + {3238372800 -10800 1 CLST} + {3261956400 -14400 0 CLT} + {3269822400 -10800 1 CLST} + {3293406000 -14400 0 CLT} + {3301272000 -10800 1 CLST} + {3324855600 -14400 0 CLT} + {3332721600 -10800 1 CLST} + {3356305200 -14400 0 CLT} + {3364171200 -10800 1 CLST} + {3387754800 -14400 0 CLT} + {3396225600 -10800 1 CLST} + {3419809200 -14400 0 CLT} + {3427675200 -10800 1 CLST} + {3451258800 -14400 0 CLT} + {3459124800 -10800 1 CLST} + {3482708400 -14400 0 CLT} + {3490574400 -10800 1 CLST} + {3514158000 -14400 0 CLT} + {3522024000 -10800 1 CLST} + {3545607600 -14400 0 CLT} + {3553473600 -10800 1 CLST} + {3577057200 -14400 0 CLT} + {3585528000 -10800 1 CLST} + {3609111600 -14400 0 CLT} + {3616977600 -10800 1 CLST} + {3640561200 -14400 0 CLT} + {3648427200 -10800 1 CLST} + {3672010800 -14400 0 CLT} + {3679876800 -10800 1 CLST} + {3703460400 -14400 0 CLT} + {3711326400 -10800 1 CLST} + {3734910000 -14400 0 CLT} + {3743380800 -10800 1 CLST} + {3766964400 -14400 0 CLT} + {3774830400 -10800 1 CLST} + {3798414000 -14400 0 CLT} + {3806280000 -10800 1 CLST} + {3829863600 -14400 0 CLT} + {3837729600 -10800 1 CLST} + {3861313200 -14400 0 CLT} + {3869179200 -10800 1 CLST} + {3892762800 -14400 0 CLT} + {3900628800 -10800 1 CLST} + {3924212400 -14400 0 CLT} + {3932683200 -10800 1 CLST} + {3956266800 -14400 0 CLT} + {3964132800 -10800 1 CLST} + {3987716400 -14400 0 CLT} + {3995582400 -10800 1 CLST} + {4019166000 -14400 0 CLT} + {4027032000 -10800 1 CLST} + {4050615600 -14400 0 CLT} + {4058481600 -10800 1 CLST} + {4082065200 -14400 0 CLT} + {4089931200 -10800 1 CLST} } diff --git a/library/tzdata/Antarctica/Palmer b/library/tzdata/Antarctica/Palmer index 2c43861..5767985 100644 --- a/library/tzdata/Antarctica/Palmer +++ b/library/tzdata/Antarctica/Palmer @@ -81,5 +81,172 @@ set TZData(:Antarctica/Palmer) { {1378612800 -10800 1 CLST} {1398567600 -14400 0 CLT} {1410062400 -10800 1 CLST} - {1430017200 -10800 0 CLT} + {1463281200 -14400 0 CLT} + {1471147200 -10800 1 CLST} + {1494730800 -14400 0 CLT} + {1502596800 -10800 1 CLST} + {1526180400 -14400 0 CLT} + {1534046400 -10800 1 CLST} + {1557630000 -14400 0 CLT} + {1565496000 -10800 1 CLST} + {1589079600 -14400 0 CLT} + {1596945600 -10800 1 CLST} + {1620529200 -14400 0 CLT} + {1629000000 -10800 1 CLST} + {1652583600 -14400 0 CLT} + {1660449600 -10800 1 CLST} + {1684033200 -14400 0 CLT} + {1691899200 -10800 1 CLST} + {1715482800 -14400 0 CLT} + {1723348800 -10800 1 CLST} + {1746932400 -14400 0 CLT} + {1754798400 -10800 1 CLST} + {1778382000 -14400 0 CLT} + {1786248000 -10800 1 CLST} + {1809831600 -14400 0 CLT} + {1818302400 -10800 1 CLST} + {1841886000 -14400 0 CLT} + {1849752000 -10800 1 CLST} + {1873335600 -14400 0 CLT} + {1881201600 -10800 1 CLST} + {1904785200 -14400 0 CLT} + {1912651200 -10800 1 CLST} + {1936234800 -14400 0 CLT} + {1944100800 -10800 1 CLST} + {1967684400 -14400 0 CLT} + {1976155200 -10800 1 CLST} + {1999738800 -14400 0 CLT} + {2007604800 -10800 1 CLST} + {2031188400 -14400 0 CLT} + {2039054400 -10800 1 CLST} + {2062638000 -14400 0 CLT} + {2070504000 -10800 1 CLST} + {2094087600 -14400 0 CLT} + {2101953600 -10800 1 CLST} + {2125537200 -14400 0 CLT} + {2133403200 -10800 1 CLST} + {2156986800 -14400 0 CLT} + {2165457600 -10800 1 CLST} + {2189041200 -14400 0 CLT} + {2196907200 -10800 1 CLST} + {2220490800 -14400 0 CLT} + {2228356800 -10800 1 CLST} + {2251940400 -14400 0 CLT} + {2259806400 -10800 1 CLST} + {2283390000 -14400 0 CLT} + {2291256000 -10800 1 CLST} + {2314839600 -14400 0 CLT} + {2322705600 -10800 1 CLST} + {2346894000 -14400 0 CLT} + {2354760000 -10800 1 CLST} + {2378343600 -14400 0 CLT} + {2386209600 -10800 1 CLST} + {2409793200 -14400 0 CLT} + {2417659200 -10800 1 CLST} + {2441242800 -14400 0 CLT} + {2449108800 -10800 1 CLST} + {2472692400 -14400 0 CLT} + {2480558400 -10800 1 CLST} + {2504142000 -14400 0 CLT} + {2512612800 -10800 1 CLST} + {2536196400 -14400 0 CLT} + {2544062400 -10800 1 CLST} + {2567646000 -14400 0 CLT} + {2575512000 -10800 1 CLST} + {2599095600 -14400 0 CLT} + {2606961600 -10800 1 CLST} + {2630545200 -14400 0 CLT} + {2638411200 -10800 1 CLST} + {2661994800 -14400 0 CLT} + {2669860800 -10800 1 CLST} + {2693444400 -14400 0 CLT} + {2701915200 -10800 1 CLST} + {2725498800 -14400 0 CLT} + {2733364800 -10800 1 CLST} + {2756948400 -14400 0 CLT} + {2764814400 -10800 1 CLST} + {2788398000 -14400 0 CLT} + {2796264000 -10800 1 CLST} + {2819847600 -14400 0 CLT} + {2827713600 -10800 1 CLST} + {2851297200 -14400 0 CLT} + {2859768000 -10800 1 CLST} + {2883351600 -14400 0 CLT} + {2891217600 -10800 1 CLST} + {2914801200 -14400 0 CLT} + {2922667200 -10800 1 CLST} + {2946250800 -14400 0 CLT} + {2954116800 -10800 1 CLST} + {2977700400 -14400 0 CLT} + {2985566400 -10800 1 CLST} + {3009150000 -14400 0 CLT} + {3017016000 -10800 1 CLST} + {3040599600 -14400 0 CLT} + {3049070400 -10800 1 CLST} + {3072654000 -14400 0 CLT} + {3080520000 -10800 1 CLST} + {3104103600 -14400 0 CLT} + {3111969600 -10800 1 CLST} + {3135553200 -14400 0 CLT} + {3143419200 -10800 1 CLST} + {3167002800 -14400 0 CLT} + {3174868800 -10800 1 CLST} + {3198452400 -14400 0 CLT} + {3206318400 -10800 1 CLST} + {3230506800 -14400 0 CLT} + {3238372800 -10800 1 CLST} + {3261956400 -14400 0 CLT} + {3269822400 -10800 1 CLST} + {3293406000 -14400 0 CLT} + {3301272000 -10800 1 CLST} + {3324855600 -14400 0 CLT} + {3332721600 -10800 1 CLST} + {3356305200 -14400 0 CLT} + {3364171200 -10800 1 CLST} + {3387754800 -14400 0 CLT} + {3396225600 -10800 1 CLST} + {3419809200 -14400 0 CLT} + {3427675200 -10800 1 CLST} + {3451258800 -14400 0 CLT} + {3459124800 -10800 1 CLST} + {3482708400 -14400 0 CLT} + {3490574400 -10800 1 CLST} + {3514158000 -14400 0 CLT} + {3522024000 -10800 1 CLST} + {3545607600 -14400 0 CLT} + {3553473600 -10800 1 CLST} + {3577057200 -14400 0 CLT} + {3585528000 -10800 1 CLST} + {3609111600 -14400 0 CLT} + {3616977600 -10800 1 CLST} + {3640561200 -14400 0 CLT} + {3648427200 -10800 1 CLST} + {3672010800 -14400 0 CLT} + {3679876800 -10800 1 CLST} + {3703460400 -14400 0 CLT} + {3711326400 -10800 1 CLST} + {3734910000 -14400 0 CLT} + {3743380800 -10800 1 CLST} + {3766964400 -14400 0 CLT} + {3774830400 -10800 1 CLST} + {3798414000 -14400 0 CLT} + {3806280000 -10800 1 CLST} + {3829863600 -14400 0 CLT} + {3837729600 -10800 1 CLST} + {3861313200 -14400 0 CLT} + {3869179200 -10800 1 CLST} + {3892762800 -14400 0 CLT} + {3900628800 -10800 1 CLST} + {3924212400 -14400 0 CLT} + {3932683200 -10800 1 CLST} + {3956266800 -14400 0 CLT} + {3964132800 -10800 1 CLST} + {3987716400 -14400 0 CLT} + {3995582400 -10800 1 CLST} + {4019166000 -14400 0 CLT} + {4027032000 -10800 1 CLST} + {4050615600 -14400 0 CLT} + {4058481600 -10800 1 CLST} + {4082065200 -14400 0 CLT} + {4089931200 -10800 1 CLST} } diff --git a/library/tzdata/Asia/Baku b/library/tzdata/Asia/Baku index e50071b..c26a2f5 100644 --- a/library/tzdata/Asia/Baku +++ b/library/tzdata/Asia/Baku @@ -71,172 +71,4 @@ set TZData(:Asia/Baku) { {1414281600 14400 0 AZT} {1427587200 18000 1 AZST} {1445731200 14400 0 AZT} - {1459036800 18000 1 AZST} - {1477785600 14400 0 AZT} - {1490486400 18000 1 AZST} - {1509235200 14400 0 AZT} - {1521936000 18000 1 AZST} - {1540684800 14400 0 AZT} - {1553990400 18000 1 AZST} - {1572134400 14400 0 AZT} - {1585440000 18000 1 AZST} - {1603584000 14400 0 AZT} - {1616889600 18000 1 AZST} - {1635638400 14400 0 AZT} - {1648339200 18000 1 AZST} - {1667088000 14400 0 AZT} - {1679788800 18000 1 AZST} - {1698537600 14400 0 AZT} - {1711843200 18000 1 AZST} - {1729987200 14400 0 AZT} - {1743292800 18000 1 AZST} - {1761436800 14400 0 AZT} - {1774742400 18000 1 AZST} - {1792886400 14400 0 AZT} - {1806192000 18000 1 AZST} - {1824940800 14400 0 AZT} - {1837641600 18000 1 AZST} - {1856390400 14400 0 AZT} - {1869091200 18000 1 AZST} - {1887840000 14400 0 AZT} - {1901145600 18000 1 AZST} - {1919289600 14400 0 AZT} - {1932595200 18000 1 AZST} - {1950739200 14400 0 AZT} - {1964044800 18000 1 AZST} - {1982793600 14400 0 AZT} - {1995494400 18000 1 AZST} - {2014243200 14400 0 AZT} - {2026944000 18000 1 AZST} - {2045692800 14400 0 AZT} - {2058393600 18000 1 AZST} - {2077142400 14400 0 AZT} - {2090448000 18000 1 AZST} - {2108592000 14400 0 AZT} - {2121897600 18000 1 AZST} - {2140041600 14400 0 AZT} - {2153347200 18000 1 AZST} - {2172096000 14400 0 AZT} - {2184796800 18000 1 AZST} - {2203545600 14400 0 AZT} - {2216246400 18000 1 AZST} - {2234995200 14400 0 AZT} - {2248300800 18000 1 AZST} - {2266444800 14400 0 AZT} - {2279750400 18000 1 AZST} - {2297894400 14400 0 AZT} - {2311200000 18000 1 AZST} - {2329344000 14400 0 AZT} - {2342649600 18000 1 AZST} - {2361398400 14400 0 AZT} - {2374099200 18000 1 AZST} - {2392848000 14400 0 AZT} - {2405548800 18000 1 AZST} - {2424297600 14400 0 AZT} - {2437603200 18000 1 AZST} - {2455747200 14400 0 AZT} - {2469052800 18000 1 AZST} - {2487196800 14400 0 AZT} - {2500502400 18000 1 AZST} - {2519251200 14400 0 AZT} - {2531952000 18000 1 AZST} - {2550700800 14400 0 AZT} - {2563401600 18000 1 AZST} - {2582150400 14400 0 AZT} - {2595456000 18000 1 AZST} - {2613600000 14400 0 AZT} - {2626905600 18000 1 AZST} - {2645049600 14400 0 AZT} - {2658355200 18000 1 AZST} - {2676499200 14400 0 AZT} - {2689804800 18000 1 AZST} - {2708553600 14400 0 AZT} - {2721254400 18000 1 AZST} - {2740003200 14400 0 AZT} - {2752704000 18000 1 AZST} - {2771452800 14400 0 AZT} - {2784758400 18000 1 AZST} - {2802902400 14400 0 AZT} - {2816208000 18000 1 AZST} - {2834352000 14400 0 AZT} - {2847657600 18000 1 AZST} - {2866406400 14400 0 AZT} - {2879107200 18000 1 AZST} - {2897856000 14400 0 AZT} - {2910556800 18000 1 AZST} - {2929305600 14400 0 AZT} - {2942006400 18000 1 AZST} - {2960755200 14400 0 AZT} - {2974060800 18000 1 AZST} - {2992204800 14400 0 AZT} - {3005510400 18000 1 AZST} - {3023654400 14400 0 AZT} - {3036960000 18000 1 AZST} - {3055708800 14400 0 AZT} - {3068409600 18000 1 AZST} - {3087158400 14400 0 AZT} - {3099859200 18000 1 AZST} - {3118608000 14400 0 AZT} - {3131913600 18000 1 AZST} - {3150057600 14400 0 AZT} - {3163363200 18000 1 AZST} - {3181507200 14400 0 AZT} - {3194812800 18000 1 AZST} - {3212956800 14400 0 AZT} - {3226262400 18000 1 AZST} - {3245011200 14400 0 AZT} - {3257712000 18000 1 AZST} - {3276460800 14400 0 AZT} - {3289161600 18000 1 AZST} - {3307910400 14400 0 AZT} - {3321216000 18000 1 AZST} - {3339360000 14400 0 AZT} - {3352665600 18000 1 AZST} - {3370809600 14400 0 AZT} - {3384115200 18000 1 AZST} - {3402864000 14400 0 AZT} - {3415564800 18000 1 AZST} - {3434313600 14400 0 AZT} - {3447014400 18000 1 AZST} - {3465763200 14400 0 AZT} - {3479068800 18000 1 AZST} - {3497212800 14400 0 AZT} - {3510518400 18000 1 AZST} - {3528662400 14400 0 AZT} - {3541968000 18000 1 AZST} - {3560112000 14400 0 AZT} - {3573417600 18000 1 AZST} - {3592166400 14400 0 AZT} - {3604867200 18000 1 AZST} - {3623616000 14400 0 AZT} - {3636316800 18000 1 AZST} - {3655065600 14400 0 AZT} - {3668371200 18000 1 AZST} - {3686515200 14400 0 AZT} - {3699820800 18000 1 AZST} - {3717964800 14400 0 AZT} - {3731270400 18000 1 AZST} - {3750019200 14400 0 AZT} - {3762720000 18000 1 AZST} - {3781468800 14400 0 AZT} - {3794169600 18000 1 AZST} - {3812918400 14400 0 AZT} - {3825619200 18000 1 AZST} - {3844368000 14400 0 AZT} - {3857673600 18000 1 AZST} - {3875817600 14400 0 AZT} - {3889123200 18000 1 AZST} - {3907267200 14400 0 AZT} - {3920572800 18000 1 AZST} - {3939321600 14400 0 AZT} - {3952022400 18000 1 AZST} - {3970771200 14400 0 AZT} - {3983472000 18000 1 AZST} - {4002220800 14400 0 AZT} - {4015526400 18000 1 AZST} - {4033670400 14400 0 AZT} - {4046976000 18000 1 AZST} - {4065120000 14400 0 AZT} - {4078425600 18000 1 AZST} - {4096569600 14400 0 AZT} } diff --git a/library/tzdata/Asia/Barnaul b/library/tzdata/Asia/Barnaul index 8072e34..f6a45da 100644 --- a/library/tzdata/Asia/Barnaul +++ b/library/tzdata/Asia/Barnaul @@ -24,8 +24,10 @@ set TZData(:Asia/Barnaul) { {622580400 25200 0 +07} {638305200 28800 1 +08} {654634800 25200 0 +07} - {670359600 28800 1 +08} - {686084400 25200 0 +07} + {670359600 21600 0 +07} + {670363200 25200 1 +07} + {686088000 21600 0 +06} + {695764800 25200 0 +08} {701798400 28800 1 +08} {717519600 25200 0 +07} {733258800 28800 1 +08} diff --git a/library/tzdata/Europe/Kaliningrad b/library/tzdata/Europe/Kaliningrad index d03f7d0..32d7aaa 100644 --- a/library/tzdata/Europe/Kaliningrad +++ b/library/tzdata/Europe/Kaliningrad @@ -35,11 +35,11 @@ set TZData(:Europe/Kaliningrad) { {559695600 10800 0 MSK} {575420400 14400 1 MSD} {591145200 10800 0 MSK} - {606870000 14400 1 MSD} - {622594800 10800 0 MSK} - {638319600 14400 1 MSD} - {654649200 10800 0 MSK} - {670374000 7200 0 EEMMTT} + {606870000 7200 0 EEMMTT} + {606873600 10800 1 EEST} + {622598400 7200 0 EET} + {638323200 10800 1 EEST} + {654652800 7200 0 EET} {670377600 10800 1 EEST} {686102400 7200 0 EET} {701816400 10800 1 EEST} diff --git a/library/tzdata/Europe/Vilnius b/library/tzdata/Europe/Vilnius index 62d5d87..5e73150 100644 --- a/library/tzdata/Europe/Vilnius +++ b/library/tzdata/Europe/Vilnius @@ -30,11 +30,12 @@ set TZData(:Europe/Vilnius) { {559695600 10800 0 MSK} {575420400 14400 1 MSD} {591145200 10800 0 MSK} - {606870000 14400 1 MSD} - {622594800 10800 0 MSK} - {638319600 14400 1 MSD} - {654649200 10800 0 MSK} - {670374000 10800 1 EEST} + {606870000 7200 0 EEMMTT} + {606873600 10800 1 EEST} + {622598400 7200 0 EET} + {638323200 10800 1 EEST} + {654652800 7200 0 EET} + {670377600 10800 1 EEST} {686102400 7200 0 EET} {701827200 10800 1 EEST} {717552000 7200 0 EET} diff --git a/library/tzdata/Europe/Volgograd b/library/tzdata/Europe/Volgograd index d71fb0b..ef33d4b 100644 --- a/library/tzdata/Europe/Volgograd +++ b/library/tzdata/Europe/Volgograd @@ -20,9 +20,9 @@ set TZData(:Europe/Volgograd) { {528242400 14400 0 VOLT} {543967200 18000 1 VOLST} {559692000 14400 0 VOLT} - {575416800 18000 1 VOLST} - {591141600 14400 0 VOLT} - {606866400 10800 0 VOLMMTT} + {575416800 10800 0 VOLMMTT} + {575420400 14400 1 VOLST} + {591145200 10800 0 VOLT} {606870000 14400 1 VOLST} {622594800 10800 0 VOLT} {638319600 14400 1 VOLST} diff --git a/library/tzdata/Pacific/Easter b/library/tzdata/Pacific/Easter index 4b45ba2..ef0f2d5 100644 --- a/library/tzdata/Pacific/Easter +++ b/library/tzdata/Pacific/Easter @@ -97,5 +97,172 @@ set TZData(:Pacific/Easter) { {1378612800 -18000 1 EASST} {1398567600 -21600 0 EAST} {1410062400 -18000 1 EASST} - {1430017200 -18000 0 EAST} + {1463281200 -21600 0 EAST} + {1471147200 -18000 1 EASST} + {1494730800 -21600 0 EAST} + {1502596800 -18000 1 EASST} + {1526180400 -21600 0 EAST} + {1534046400 -18000 1 EASST} + {1557630000 -21600 0 EAST} + {1565496000 -18000 1 EASST} + {1589079600 -21600 0 EAST} + {1596945600 -18000 1 EASST} + {1620529200 -21600 0 EAST} + {1629000000 -18000 1 EASST} + {1652583600 -21600 0 EAST} + {1660449600 -18000 1 EASST} + {1684033200 -21600 0 EAST} + {1691899200 -18000 1 EASST} + {1715482800 -21600 0 EAST} + {1723348800 -18000 1 EASST} + {1746932400 -21600 0 EAST} + {1754798400 -18000 1 EASST} + {1778382000 -21600 0 EAST} + {1786248000 -18000 1 EASST} + {1809831600 -21600 0 EAST} + {1818302400 -18000 1 EASST} + {1841886000 -21600 0 EAST} + {1849752000 -18000 1 EASST} + {1873335600 -21600 0 EAST} + {1881201600 -18000 1 EASST} + {1904785200 -21600 0 EAST} + {1912651200 -18000 1 EASST} + {1936234800 -21600 0 EAST} + {1944100800 -18000 1 EASST} + {1967684400 -21600 0 EAST} + {1976155200 -18000 1 EASST} + {1999738800 -21600 0 EAST} + {2007604800 -18000 1 EASST} + {2031188400 -21600 0 EAST} + {2039054400 -18000 1 EASST} + {2062638000 -21600 0 EAST} + {2070504000 -18000 1 EASST} + {2094087600 -21600 0 EAST} + {2101953600 -18000 1 EASST} + {2125537200 -21600 0 EAST} + {2133403200 -18000 1 EASST} + {2156986800 -21600 0 EAST} + {2165457600 -18000 1 EASST} + {2189041200 -21600 0 EAST} + {2196907200 -18000 1 EASST} + {2220490800 -21600 0 EAST} + {2228356800 -18000 1 EASST} + {2251940400 -21600 0 EAST} + {2259806400 -18000 1 EASST} + {2283390000 -21600 0 EAST} + {2291256000 -18000 1 EASST} + {2314839600 -21600 0 EAST} + {2322705600 -18000 1 EASST} + {2346894000 -21600 0 EAST} + {2354760000 -18000 1 EASST} + {2378343600 -21600 0 EAST} + {2386209600 -18000 1 EASST} + {2409793200 -21600 0 EAST} + {2417659200 -18000 1 EASST} + {2441242800 -21600 0 EAST} + {2449108800 -18000 1 EASST} + {2472692400 -21600 0 EAST} + {2480558400 -18000 1 EASST} + {2504142000 -21600 0 EAST} + {2512612800 -18000 1 EASST} + {2536196400 -21600 0 EAST} + {2544062400 -18000 1 EASST} + {2567646000 -21600 0 EAST} + {2575512000 -18000 1 EASST} + {2599095600 -21600 0 EAST} + {2606961600 -18000 1 EASST} + {2630545200 -21600 0 EAST} + {2638411200 -18000 1 EASST} + {2661994800 -21600 0 EAST} + {2669860800 -18000 1 EASST} + {2693444400 -21600 0 EAST} + {2701915200 -18000 1 EASST} + {2725498800 -21600 0 EAST} + {2733364800 -18000 1 EASST} + {2756948400 -21600 0 EAST} + {2764814400 -18000 1 EASST} + {2788398000 -21600 0 EAST} + {2796264000 -18000 1 EASST} + {2819847600 -21600 0 EAST} + {2827713600 -18000 1 EASST} + {2851297200 -21600 0 EAST} + {2859768000 -18000 1 EASST} + {2883351600 -21600 0 EAST} + {2891217600 -18000 1 EASST} + {2914801200 -21600 0 EAST} + {2922667200 -18000 1 EASST} + {2946250800 -21600 0 EAST} + {2954116800 -18000 1 EASST} + {2977700400 -21600 0 EAST} + {2985566400 -18000 1 EASST} + {3009150000 -21600 0 EAST} + {3017016000 -18000 1 EASST} + {3040599600 -21600 0 EAST} + {3049070400 -18000 1 EASST} + {3072654000 -21600 0 EAST} + {3080520000 -18000 1 EASST} + {3104103600 -21600 0 EAST} + {3111969600 -18000 1 EASST} + {3135553200 -21600 0 EAST} + {3143419200 -18000 1 EASST} + {3167002800 -21600 0 EAST} + {3174868800 -18000 1 EASST} + {3198452400 -21600 0 EAST} + {3206318400 -18000 1 EASST} + {3230506800 -21600 0 EAST} + {3238372800 -18000 1 EASST} + {3261956400 -21600 0 EAST} + {3269822400 -18000 1 EASST} + {3293406000 -21600 0 EAST} + {3301272000 -18000 1 EASST} + {3324855600 -21600 0 EAST} + {3332721600 -18000 1 EASST} + {3356305200 -21600 0 EAST} + {3364171200 -18000 1 EASST} + {3387754800 -21600 0 EAST} + {3396225600 -18000 1 EASST} + {3419809200 -21600 0 EAST} + {3427675200 -18000 1 EASST} + {3451258800 -21600 0 EAST} + {3459124800 -18000 1 EASST} + {3482708400 -21600 0 EAST} + {3490574400 -18000 1 EASST} + {3514158000 -21600 0 EAST} + {3522024000 -18000 1 EASST} + {3545607600 -21600 0 EAST} + {3553473600 -18000 1 EASST} + {3577057200 -21600 0 EAST} + {3585528000 -18000 1 EASST} + {3609111600 -21600 0 EAST} + {3616977600 -18000 1 EASST} + {3640561200 -21600 0 EAST} + {3648427200 -18000 1 EASST} + {3672010800 -21600 0 EAST} + {3679876800 -18000 1 EASST} + {3703460400 -21600 0 EAST} + {3711326400 -18000 1 EASST} + {3734910000 -21600 0 EAST} + {3743380800 -18000 1 EASST} + {3766964400 -21600 0 EAST} + {3774830400 -18000 1 EASST} + {3798414000 -21600 0 EAST} + {3806280000 -18000 1 EASST} + {3829863600 -21600 0 EAST} + {3837729600 -18000 1 EASST} + {3861313200 -21600 0 EAST} + {3869179200 -18000 1 EASST} + {3892762800 -21600 0 EAST} + {3900628800 -18000 1 EASST} + {3924212400 -21600 0 EAST} + {3932683200 -18000 1 EASST} + {3956266800 -21600 0 EAST} + {3964132800 -18000 1 EASST} + {3987716400 -21600 0 EAST} + {3995582400 -18000 1 EASST} + {4019166000 -21600 0 EAST} + {4027032000 -18000 1 EASST} + {4050615600 -21600 0 EAST} + {4058481600 -18000 1 EASST} + {4082065200 -21600 0 EAST} + {4089931200 -18000 1 EASST} } -- cgit v0.12 From b8cacee84f43fc8f72c924e0c0fcc7c2f53f5a04 Mon Sep 17 00:00:00 2001 From: dkf Date: Sun, 27 Mar 2016 15:43:07 +0000 Subject: Some OSX symbols builds create libtcl8.6.dylib.dSYM which is a directory. --- unix/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 7604bc7..233584e 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -657,7 +657,7 @@ Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in # $(SHELL) config.status clean: clean-packages - rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \ + rm -rf *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \ errors ${TCL_EXE} ${TCLTEST_EXE} lib.exp Tcl @DTRACE_HDR@ cd dltest ; $(MAKE) clean -- cgit v0.12 From 365eefedf170cdc365c5d948509ffb6d12b5ce23 Mon Sep 17 00:00:00 2001 From: dkf Date: Sun, 27 Mar 2016 16:37:11 +0000 Subject: [47ac84309b] Fix problems with [lreplace] compilation. --- generic/tclCompCmdsGR.c | 14 ++++++++++++-- tests/lreplace.test | 11 +++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c index 87ed745..9f430ea 100644 --- a/generic/tclCompCmdsGR.c +++ b/generic/tclCompCmdsGR.c @@ -1488,8 +1488,18 @@ TclCompileLreplaceCmd( return TCL_ERROR; } - if(idx2 != INDEX_END && idx2 >= 0 && idx2 < idx1) { - idx2 = idx1-1; + /* + * Compilation fails when one index is end-based but the other isn't. + * Fixing this will require more bytecodes, but this is a workaround for + * now. [Bug 47ac84309b] + */ + + if ((idx1 <= INDEX_END) != (idx2 <= INDEX_END)) { + return TCL_ERROR; + } + + if (idx2 != INDEX_END && idx2 >= 0 && idx2 < idx1) { + idx2 = idx1 - 1; } /* diff --git a/tests/lreplace.test b/tests/lreplace.test index e66a331..55a36a8 100644 --- a/tests/lreplace.test +++ b/tests/lreplace.test @@ -181,6 +181,17 @@ test lreplace-4.11 {lreplace end index first} { test lreplace-4.12 {lreplace end index first} { lreplace {0 1 2 3 4} end-2 2 a b c } {0 1 a b c 3 4} + +test lreplace-5.1 {compiled lreplace: Bug 47ac84309b} { + apply {x { + lreplace $x end 0 + }} {a b c} +} {a b c} +test lreplace-5.2 {compiled lreplace: Bug 47ac84309b} { + apply {x { + lreplace $x end 0 A + }} {a b c} +} {a b A c} # cleanup catch {unset foo} -- cgit v0.12 From 43308bf3c516fbe56b41a2d8e4ea948c63603b3e Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sun, 27 Mar 2016 21:28:15 +0000 Subject: Better fix for [7d0db7c388f52de81]: In stead of adding dependencies to multiple Makefile lines, combine them --- unix/Makefile.in | 132 +++++++++++++++++++++++++++---------------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 16cfad7..d9f8bbc 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -584,7 +584,7 @@ MAC_OSX_SRCS = \ CYGWIN_SRCS = \ $(TOP_DIR)/win/tclWinError.c -DTRACE_HDR = @DTRACE_HDR@ +DTRACE_HDR = tclDTrace.h DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d @@ -1351,196 +1351,196 @@ tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c -bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(DTRACE_HDR) +bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c -bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(DTRACE_HDR) +bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c -bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) +bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c -bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c -bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c -bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c -bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c -bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c -bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c -bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c -bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c -bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c -bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c -bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cnt_lsb.c -bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c -bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c -bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c -bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c -bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c -bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c -bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c -bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c -bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c -bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c -bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c -bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c -bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c -bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c -bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set_int.c -bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c -bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c -bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c -bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c -bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c -bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c -bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c -bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c -bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c -bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c -bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c -bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c -bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c -bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c -bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c -bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c -bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c -bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set_int.c -bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c -bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c -bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c -bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c -bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c -bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c -bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c -bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c -bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c -bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c -bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c -bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c -bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c -bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c -bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c -bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c -bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR) @@ -1596,7 +1596,7 @@ tclWinError.o: $(TOP_DIR)/win/tclWinError.c # DTrace support -$(TCL_OBJS) $(STUB_LIB_OBJS) $(TCLSH_OBJS) $(TCLTEST_OBJS) $(XTTEST_OBJS): @DTRACE_HDR@ +$(TCL_OBJS) $(STUB_LIB_OBJS) $(TCLSH_OBJS) $(TCLTEST_OBJS) $(XTTEST_OBJS) $(TOMMATH_OBJS): @DTRACE_HDR@ $(DTRACE_HDR): $(DTRACE_SRC) $(DTRACE) -h $(DTRACE_SWITCHES) -o $@ -s $(DTRACE_SRC) -- cgit v0.12 From d5ff54059dda1b7a925361e016193915d3e1cccd Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 28 Mar 2016 19:03:14 +0000 Subject: There's a "parsedVarName" Tcl_ObjType that remembers how a variable name breaks down into the name of an array and the name of an element. It has been storing them in an intrep as a Tcl_Obj holding the array name and an allocated string holding the element name. This branch revises the intrep strategy to use Tcl_Obj's to hold both parts. This reduces copying and seems to simplify the code. Also "nulled out" the UpdateStringProc for the type which can never be called. I think this is a better answer, but I'd like any other informed opinions. --- generic/tclVar.c | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/generic/tclVar.c b/generic/tclVar.c index 5574f30..3c1b01f 100644 --- a/generic/tclVar.c +++ b/generic/tclVar.c @@ -206,7 +206,9 @@ static Tcl_UpdateStringProc PanicOnUpdateVarName; static Tcl_FreeInternalRepProc FreeParsedVarName; static Tcl_DupInternalRepProc DupParsedVarName; +#if 0 static Tcl_UpdateStringProc UpdateParsedVarName; +#endif static Tcl_UpdateStringProc PanicOnUpdateVarName; static Tcl_SetFromAnyProc PanicOnSetVarName; @@ -237,7 +239,13 @@ static const Tcl_ObjType localVarNameType = { static const Tcl_ObjType tclParsedVarNameType = { "parsedVarName", - FreeParsedVarName, DupParsedVarName, UpdateParsedVarName, PanicOnSetVarName + FreeParsedVarName, DupParsedVarName, +#if 0 +UpdateParsedVarName, +#else +PanicOnUpdateVarName, +#endif + PanicOnSetVarName }; /* @@ -536,7 +544,9 @@ TclObjLookupVarEx( const char *errMsg = NULL; CallFrame *varFramePtr = iPtr->varFramePtr; const char *part2 = part2Ptr? TclGetString(part2Ptr):NULL; +#if 0 char *newPart2 = NULL; +#endif *arrayPtrPtr = NULL; if (typePtr == &localVarNameType) { @@ -583,9 +593,13 @@ TclObjLookupVarEx( } return NULL; } +#if 0 part2 = newPart2 = part1Ptr->internalRep.twoPtrValue.ptr2; if (newPart2) { part2Ptr = Tcl_NewStringObj(newPart2, -1); +#else + if ((part2Ptr = part1Ptr->internalRep.twoPtrValue.ptr2)) { +#endif if (createPart2) { Tcl_IncrRefCount(part2Ptr); } @@ -629,11 +643,15 @@ TclObjLookupVarEx( len2 = len1 - i - 2; len1 = i; +#if 0 newPart2 = ckalloc(len2 + 1); memcpy(newPart2, part2, (unsigned) len2); *(newPart2+len2) = '\0'; part2 = newPart2; part2Ptr = Tcl_NewStringObj(newPart2, -1); +#else + part2Ptr = Tcl_NewStringObj(part2, len2); +#endif if (createPart2) { Tcl_IncrRefCount(part2Ptr); } @@ -658,7 +676,12 @@ TclObjLookupVarEx( Tcl_IncrRefCount(part1Ptr); objPtr->internalRep.twoPtrValue.ptr1 = part1Ptr; +#if 0 objPtr->internalRep.twoPtrValue.ptr2 = (void *) part2; +#else + Tcl_IncrRefCount(part2Ptr); + objPtr->internalRep.twoPtrValue.ptr2 = part2Ptr; +#endif typePtr = part1Ptr->typePtr; part1 = TclGetString(part1Ptr); @@ -683,9 +706,11 @@ TclObjLookupVarEx( Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "VARNAME", TclGetString(part1Ptr), NULL); } +#if 0 if (newPart2) { Tcl_DecrRefCount(part2Ptr); } +#endif return NULL; } @@ -734,9 +759,11 @@ TclObjLookupVarEx( *arrayPtrPtr = varPtr; varPtr = TclLookupArrayElement(interp, part1Ptr, part2Ptr, flags, msg, createPart1, createPart2, varPtr, -1); +#if 0 if (newPart2) { Tcl_DecrRefCount(part2Ptr); } +#endif } return varPtr; } @@ -5592,11 +5619,11 @@ FreeParsedVarName( Tcl_Obj *objPtr) { register Tcl_Obj *arrayPtr = objPtr->internalRep.twoPtrValue.ptr1; - register char *elem = objPtr->internalRep.twoPtrValue.ptr2; + register Tcl_Obj *elem = objPtr->internalRep.twoPtrValue.ptr2; if (arrayPtr != NULL) { TclDecrRefCount(arrayPtr); - ckfree(elem); + TclDecrRefCount(elem); } objPtr->typePtr = NULL; } @@ -5607,17 +5634,11 @@ DupParsedVarName( Tcl_Obj *dupPtr) { register Tcl_Obj *arrayPtr = srcPtr->internalRep.twoPtrValue.ptr1; - register char *elem = srcPtr->internalRep.twoPtrValue.ptr2; - char *elemCopy; - unsigned elemLen; + register Tcl_Obj *elem = srcPtr->internalRep.twoPtrValue.ptr2; if (arrayPtr != NULL) { Tcl_IncrRefCount(arrayPtr); - elemLen = strlen(elem); - elemCopy = ckalloc(elemLen + 1); - memcpy(elemCopy, elem, elemLen); - *(elemCopy + elemLen) = '\0'; - elem = elemCopy; + Tcl_IncrRefCount(elem); } dupPtr->internalRep.twoPtrValue.ptr1 = arrayPtr; @@ -5625,6 +5646,7 @@ DupParsedVarName( dupPtr->typePtr = &tclParsedVarNameType; } +#if 0 static void UpdateParsedVarName( Tcl_Obj *objPtr) @@ -5659,6 +5681,7 @@ UpdateParsedVarName( *p++ = ')'; *p = '\0'; } +#endif /* *---------------------------------------------------------------------- -- cgit v0.12 From 20baf86d1e03655bb6d7fae562091e95fe52db15 Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 28 Mar 2016 21:24:22 +0000 Subject: The DupEncodingIntRep() routine is broken. It fails to set the typePtr field of the duplicated Tcl_Obj to indicate that the intrep is that of the &encodingType. The impact must be that refcounting of Tcl_Encodings are out of balance, at least in the (unusual?) case where "encoding" values need duplication. I hesitate to actually commit this fix until I have a test demonstrating the need for it, and a chance to see the impact on actual encoding operations. The lifetime management of encodings has a history of being tricky and raising controversy. More work required. --- generic/tclEncoding.c | 1 + 1 file changed, 1 insertion(+) diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index 4edebcf..32055a3 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -355,6 +355,7 @@ DupEncodingIntRep( Tcl_Obj *dupPtr) { dupPtr->internalRep.twoPtrValue.ptr1 = Tcl_GetEncoding(NULL, srcPtr->bytes); + dupPtr->typePtr = &encodingType; } /* -- cgit v0.12 From e586c259bcbae989eca56b696377488dfe656b20 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 29 Mar 2016 08:34:38 +0000 Subject: (cherry-pick): Better fix for [7d0db7c388f52de81]: In stead of adding dependencies to multiple Makefile lines, combine them --- unix/Makefile.in | 132 +++++++++++++++++++++++++++---------------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 233584e..b336074 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -584,7 +584,7 @@ MAC_OSX_SRCS = \ CYGWIN_SRCS = \ $(TOP_DIR)/win/tclWinError.c -DTRACE_HDR = @DTRACE_HDR@ +DTRACE_HDR = tclDTrace.h DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d @@ -1351,196 +1351,196 @@ tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c -bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(DTRACE_HDR) +bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c -bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(DTRACE_HDR) +bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c -bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) +bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c -bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c -bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c -bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c -bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c -bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c -bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c -bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c -bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c -bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c -bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c -bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cnt_lsb.c -bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c -bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c -bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c -bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c -bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c -bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c -bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c -bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c -bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c -bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c -bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c -bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c -bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c -bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c -bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set_int.c -bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c -bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c -bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c -bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c -bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c -bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c -bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c -bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c -bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c -bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c -bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c -bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c -bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c -bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c -bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c -bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c -bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c -bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set_int.c -bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c -bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c -bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c -bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c -bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c -bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c -bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c -bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c -bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c -bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c -bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c -bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c -bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c -bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c -bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c -bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c -bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR) @@ -1596,7 +1596,7 @@ tclWinError.o: $(TOP_DIR)/win/tclWinError.c # DTrace support -$(TCL_OBJS) $(STUB_LIB_OBJS) $(TCLSH_OBJS) $(TCLTEST_OBJS) $(XTTEST_OBJS): @DTRACE_HDR@ +$(TCL_OBJS) $(STUB_LIB_OBJS) $(TCLSH_OBJS) $(TCLTEST_OBJS) $(XTTEST_OBJS) $(TOMMATH_OBJS): @DTRACE_HDR@ $(DTRACE_HDR): $(DTRACE_SRC) $(DTRACE) -h $(DTRACE_SWITCHES) -o $@ -s $(DTRACE_SRC) -- cgit v0.12 From 75cbe0aa43accb4642e041fee2c68a893130a53a Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 29 Mar 2016 08:36:15 +0000 Subject: (cherry-pick): Better fix for [7d0db7c388f52de81]: In stead of adding dependencies to multiple Makefile lines, combine them --- unix/Makefile.in | 132 +++++++++++++++++++++++++++---------------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index 722f85d..fc5b03f 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -529,7 +529,7 @@ MAC_OSX_SRCS = \ $(MAC_OSX_DIR)/tclMacOSXFCmd.c \ $(MAC_OSX_DIR)/tclMacOSXNotify.c -DTRACE_HDR = @DTRACE_HDR@ +DTRACE_HDR = tclDTrace.h DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d @@ -1238,196 +1238,196 @@ tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c -bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(DTRACE_HDR) +bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c -bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(DTRACE_HDR) +bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c -bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) +bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c -bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c -bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c -bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c -bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c -bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c -bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c -bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c -bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c -bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c -bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c -bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_cnt_lsb.o: $(TOMMATH_DIR)/bn_mp_cnt_lsb.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cnt_lsb.c -bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c -bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c -bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c -bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c -bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c -bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c -bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c -bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c -bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c -bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c -bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c -bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c -bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c -bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c -bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_set_int.o: $(TOMMATH_DIR)/bn_mp_init_set_int.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set_int.c -bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c -bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c -bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c -bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c -bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c -bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c -bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c -bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c -bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c -bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c -bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c -bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c -bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c -bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c -bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c -bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c -bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c -bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_set_int.o: $(TOMMATH_DIR)/bn_mp_set_int.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set_int.c -bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c -bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c -bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c -bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c -bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c -bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c -bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c -bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c -bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c -bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c -bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c -bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c -bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(DTRACE_HDR) +bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c -bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c -bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c -bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c -bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(DTRACE_HDR) +bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS) $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR) @@ -1484,7 +1484,7 @@ tclWinError.o: $(TOP_DIR)/win/tclWinError.c # DTrace support -$(TCL_OBJS) $(STUB_LIB_OBJS) $(TCLSH_OBJS) $(TCLTEST_OBJS) $(XTTEST_OBJS): @DTRACE_HDR@ +$(TCL_OBJS) $(STUB_LIB_OBJS) $(TCLSH_OBJS) $(TCLTEST_OBJS) $(XTTEST_OBJS) $(TOMMATH_OBJS): @DTRACE_HDR@ $(DTRACE_HDR): $(DTRACE_SRC) $(DTRACE) -h $(DTRACE_SWITCHES) -o $@ -s $(DTRACE_SRC) -- cgit v0.12 From 77ccaefbb1482145de9b9276979318e88b9e542e Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 29 Mar 2016 10:17:02 +0000 Subject: Eliminate AT_FORK_INIT_VALUE/RESET_ATFORK_MUTEX macro's, since other values than the default are not supported anyway. This results in the elimination of (empty functions anyway) AtForkPrepare/AtForkParent. Also improve consistancy in some variable names. No change of functionality. --- unix/tclUnixNotfy.c | 70 ++++++----------------------------------------------- win/tclWinNotify.c | 8 +++--- win/tclWinSock.c | 17 +++---------- 3 files changed, 15 insertions(+), 80 deletions(-) diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c index 1457890..3422089 100644 --- a/unix/tclUnixNotfy.c +++ b/unix/tclUnixNotfy.c @@ -1,7 +1,5 @@ -#define AT_FORK_INIT_VALUE 0 -#define RESET_ATFORK_MUTEX 1 /* - * tclUnixNotify.c -- + * tclUnixNotfy.c -- * * This file contains the implementation of the select()-based * Unix-specific notifier, which is the lowest-level part of the Tcl @@ -197,9 +195,7 @@ static Tcl_ThreadId notifierThread; #ifdef TCL_THREADS static void NotifierThreadProc(ClientData clientData); #if defined(HAVE_PTHREAD_ATFORK) -static int atForkInit = AT_FORK_INIT_VALUE; -static void AtForkPrepare(void); -static void AtForkParent(void); +static int atForkInit = 0; static void AtForkChild(void); #endif /* HAVE_PTHREAD_ATFORK */ #endif /* TCL_THREADS */ @@ -256,7 +252,7 @@ extern unsigned char __stdcall TranslateMessage(const MSG *); * Threaded-cygwin specific constants and functions in this file: */ -static const WCHAR NotfyClassName[] = L"TclNotifier"; +static const WCHAR className[] = L"TclNotifier"; static DWORD __stdcall NotifierProc(void *hwnd, unsigned int message, void *wParam, void *lParam); #endif /* TCL_THREADS && __CYGWIN__ */ @@ -345,7 +341,7 @@ Tcl_InitNotifier(void) class.hInstance = TclWinGetTclInstance(); class.hbrBackground = NULL; class.lpszMenuName = NULL; - class.lpszClassName = NotfyClassName; + class.lpszClassName = className; class.lpfnWndProc = NotifierProc; class.hIcon = NULL; class.hCursor = NULL; @@ -370,7 +366,7 @@ Tcl_InitNotifier(void) */ if (!atForkInit) { - int result = pthread_atfork(AtForkPrepare, AtForkParent, AtForkChild); + int result = pthread_atfork(NULL, NULL, AtForkChild); if (result) { Tcl_Panic("Tcl_InitNotifier: pthread_atfork failed"); @@ -1351,54 +1347,6 @@ NotifierThreadProc( /* *---------------------------------------------------------------------- * - * AtForkPrepare -- - * - * Lock the notifier in preparation for a fork. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -AtForkPrepare(void) -{ -#if RESET_ATFORK_MUTEX == 0 - pthread_mutex_lock(¬ifierInitMutex); -#endif -} - -/* - *---------------------------------------------------------------------- - * - * AtForkParent -- - * - * Unlock the notifier in the parent after a fork. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -AtForkParent(void) -{ -#if RESET_ATFORK_MUTEX == 0 - pthread_mutex_unlock(¬ifierInitMutex); -#endif -} - -/* - *---------------------------------------------------------------------- - * * AtForkChild -- * * Unlock and reinstall the notifier in the child after a fork. @@ -1418,12 +1366,8 @@ AtForkChild(void) if (notifierThreadRunning == 1) { pthread_cond_destroy(¬ifierCV); } -#if RESET_ATFORK_MUTEX == 0 - pthread_mutex_unlock(¬ifierInitMutex); -#else pthread_mutex_init(¬ifierInitMutex, NULL); pthread_mutex_init(¬ifierMutex, NULL); -#endif pthread_cond_init(¬ifierCV, NULL); /* @@ -1455,8 +1399,8 @@ AtForkChild(void) */ #ifdef __CYGWIN__ DestroyWindow(tsdPtr->hwnd); - tsdPtr->hwnd = CreateWindowExW(NULL, NotfyClassName, - NotfyClassName, 0, 0, 0, 0, 0, NULL, NULL, + tsdPtr->hwnd = CreateWindowExW(NULL, className, + className, 0, 0, 0, 0, 0, NULL, NULL, TclWinGetTclInstance(), NULL); ResetEvent(tsdPtr->event); #else diff --git a/win/tclWinNotify.c b/win/tclWinNotify.c index 4543b02..ea4035b 100644 --- a/win/tclWinNotify.c +++ b/win/tclWinNotify.c @@ -50,7 +50,7 @@ static Tcl_ThreadDataKey dataKey; */ static int notifierCount = 0; -static const TCHAR classname[] = TEXT("TclNotifier"); +static const TCHAR className[] = TEXT("TclNotifier"); TCL_DECLARE_MUTEX(notifierMutex) /* @@ -98,7 +98,7 @@ Tcl_InitNotifier(void) class.hInstance = TclWinGetTclInstance(); class.hbrBackground = NULL; class.lpszMenuName = NULL; - class.lpszClassName = classname; + class.lpszClassName = className; class.lpfnWndProc = NotifierProc; class.hIcon = NULL; class.hCursor = NULL; @@ -186,7 +186,7 @@ Tcl_FinalizeNotifier( Tcl_MutexLock(¬ifierMutex); notifierCount--; if (notifierCount == 0) { - UnregisterClass(classname, TclWinGetTclInstance()); + UnregisterClass(className, TclWinGetTclInstance()); } Tcl_MutexUnlock(¬ifierMutex); } @@ -350,7 +350,7 @@ Tcl_ServiceModeHook( */ if (mode == TCL_SERVICE_ALL && !tsdPtr->hwnd) { - tsdPtr->hwnd = CreateWindow(classname, classname, + tsdPtr->hwnd = CreateWindow(className, className, WS_TILED, 0, 0, 0, 0, NULL, NULL, TclWinGetTclInstance(), NULL); diff --git a/win/tclWinSock.c b/win/tclWinSock.c index a022ed5..c71aa96 100644 --- a/win/tclWinSock.c +++ b/win/tclWinSock.c @@ -62,15 +62,6 @@ #undef TCL_FEATURE_KEEPALIVE_NAGLE /* - * Make sure to remove the redirection defines set in tclWinPort.h that is in - * use in other sections of the core, except for us. - */ - -#undef getservbyname -#undef getsockopt -#undef setsockopt - -/* * Helper macros to make parts of this file clearer. The macros do exactly * what they say on the tin. :-) They also only ever refer to their arguments * once, and so can be used without regard to side effects. @@ -90,7 +81,7 @@ */ static int initialized = 0; -static const TCHAR classname[] = TEXT("TclSocket"); +static const TCHAR className[] = TEXT("TclSocket"); TCL_DECLARE_MUTEX(socketMutex) /* @@ -2336,7 +2327,7 @@ InitSockets(void) windowClass.hInstance = TclWinGetTclInstance(); windowClass.hbrBackground = NULL; windowClass.lpszMenuName = NULL; - windowClass.lpszClassName = classname; + windowClass.lpszClassName = className; windowClass.lpfnWndProc = SocketProc; windowClass.hIcon = NULL; windowClass.hCursor = NULL; @@ -2466,7 +2457,7 @@ SocketExitHandler( */ TclpFinalizeSockets(); - UnregisterClass(classname, TclWinGetTclInstance()); + UnregisterClass(className, TclWinGetTclInstance()); initialized = 0; Tcl_MutexUnlock(&socketMutex); } @@ -2992,7 +2983,7 @@ SocketThread( * Create a dummy window receiving socket events. */ - tsdPtr->hwnd = CreateWindow(classname, classname, WS_TILED, 0, 0, 0, 0, + tsdPtr->hwnd = CreateWindow(className, className, WS_TILED, 0, 0, 0, 0, NULL, NULL, windowClass.hInstance, arg); /* -- cgit v0.12 From dedc1d86a28c562377215bc2d0bf10e75ed00f1d Mon Sep 17 00:00:00 2001 From: dkf Date: Wed, 30 Mar 2016 08:46:43 +0000 Subject: [47ac84309b] Import of aspect's branch from his personal repository on chiselapp. --- generic/tclCmdIL.c | 2 +- generic/tclCompCmdsGR.c | 47 ++++++++++++++++++++++++++++++++++++++++------- tests/lreplace.test | 43 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 81 insertions(+), 11 deletions(-) diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index 739dca9..0d35397 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -2755,7 +2755,7 @@ Tcl_LreplaceObjCmd( * (to allow for replacing the last elem). */ - if ((first >= listLen) && (listLen > 0)) { + if ((first > listLen) && (listLen > 0)) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "list doesn't contain element %s", TclGetString(objv[2]))); Tcl_SetErrorCode(interp, "TCL", "OPERATION", "LREPLACE", "BADIDX", diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c index 9f430ea..ffe39ba 100644 --- a/generic/tclCompCmdsGR.c +++ b/generic/tclCompCmdsGR.c @@ -1489,6 +1489,15 @@ TclCompileLreplaceCmd( } /* + * idx1, idx2 are now in canonical form: + * + * - integer: [0,len+1] + * - end index: INDEX_END + * - -ive offset: INDEX_END-[len-1,0] + * - +ive offset: INDEX_END+1 + */ + + /* * Compilation fails when one index is end-based but the other isn't. * Fixing this will require more bytecodes, but this is a workaround for * now. [Bug 47ac84309b] @@ -1521,6 +1530,9 @@ TclCompileLreplaceCmd( idx1 = 0; goto dropEnd; } else { + if (idx2 < idx1) { + idx2 = idx1 - 1; + } if (idx1 > 0) { tmpObj = Tcl_NewIntObj(idx1); Tcl_IncrRefCount(tmpObj); @@ -1548,9 +1560,7 @@ TclCompileLreplaceCmd( idx1 = 0; goto replaceTail; } else { - if (idx1 > 0 && idx2 > 0 && idx2 < idx1) { - idx2 = idx1 - 1; - } else if (idx1 < 0 && idx2 < 0 && idx2 < idx1) { + if (idx2 < idx1) { idx2 = idx1 - 1; } if (idx1 > 0) { @@ -1566,7 +1576,7 @@ TclCompileLreplaceCmd( * operate on. */ - dropAll: + dropAll: /* This just ensures the arg is a list. */ TclEmitOpcode( INST_LIST_LENGTH, envPtr); TclEmitOpcode( INST_POP, envPtr); PushStringLiteral(envPtr, ""); @@ -1579,12 +1589,21 @@ TclCompileLreplaceCmd( dropRange: if (tmpObj != NULL) { + /* + * Emit bytecode to check the list length. + */ + TclEmitOpcode( INST_DUP, envPtr); TclEmitOpcode( INST_LIST_LENGTH, envPtr); TclEmitPush(TclAddLiteralObj(envPtr, tmpObj, NULL), envPtr); - TclEmitOpcode( INST_GT, envPtr); + TclEmitOpcode( INST_GE, envPtr); offset = CurrentOffset(envPtr); TclEmitInstInt1( INST_JUMP_TRUE1, 0, envPtr); + + /* + * Emit an error if we've been given an empty list. + */ + TclEmitOpcode( INST_DUP, envPtr); TclEmitOpcode( INST_LIST_LENGTH, envPtr); offset2 = CurrentOffset(envPtr); @@ -1635,16 +1654,30 @@ TclCompileLreplaceCmd( replaceRange: if (tmpObj != NULL) { + /* + * Emit bytecode to check the list length. + */ + TclEmitOpcode( INST_DUP, envPtr); TclEmitOpcode( INST_LIST_LENGTH, envPtr); + + /* + * Check the list length vs idx1. + */ + TclEmitPush(TclAddLiteralObj(envPtr, tmpObj, NULL), envPtr); - TclEmitOpcode( INST_GT, envPtr); + TclEmitOpcode( INST_GE, envPtr); offset = CurrentOffset(envPtr); TclEmitInstInt1( INST_JUMP_TRUE1, 0, envPtr); + + /* + * Emit an error if we've been given an empty list. + */ + TclEmitOpcode( INST_DUP, envPtr); TclEmitOpcode( INST_LIST_LENGTH, envPtr); offset2 = CurrentOffset(envPtr); - TclEmitInstInt1( INST_JUMP_TRUE1, 0, envPtr); + TclEmitInstInt1( INST_JUMP_FALSE1, 0, envPtr); TclEmitPush(TclAddLiteralObj(envPtr, Tcl_ObjPrintf( "list doesn't contain element %d", idx1), NULL), envPtr); CompileReturnInternal(envPtr, INST_RETURN_IMM, TCL_ERROR, 0, diff --git a/tests/lreplace.test b/tests/lreplace.test index 55a36a8..d7f8226 100644 --- a/tests/lreplace.test +++ b/tests/lreplace.test @@ -98,7 +98,12 @@ test lreplace-1.26 {lreplace command} { [set foo [lreplace $foo end end]] \ [set foo [lreplace $foo end end]] } {a {} {}} - +test lreplace-1.27 {lreplace command} { + lreplace x 1 1 +} x +test lreplace-1.28 {lreplace command} { + lreplace x 1 1 y +} {x y} test lreplace-2.1 {lreplace errors} { list [catch lreplace msg] $msg @@ -119,8 +124,8 @@ test lreplace-2.6 {lreplace errors} { list [catch {lreplace x 3 2} msg] $msg } {1 {list doesn't contain element 3}} test lreplace-2.7 {lreplace errors} { - list [catch {lreplace x 1 1} msg] $msg -} {1 {list doesn't contain element 1}} + list [catch {lreplace x 2 2} msg] $msg +} {1 {list doesn't contain element 2}} test lreplace-3.1 {lreplace won't modify shared argument objects} { proc p {} { @@ -181,6 +186,12 @@ test lreplace-4.11 {lreplace end index first} { test lreplace-4.12 {lreplace end index first} { lreplace {0 1 2 3 4} end-2 2 a b c } {0 1 a b c 3 4} +test lreplace-4.13 {lreplace empty list} { + lreplace {} 1 1 1 +} 1 +test lreplace-4.14 {lreplace empty list} { + lreplace {} 2 2 2 +} 2 test lreplace-5.1 {compiled lreplace: Bug 47ac84309b} { apply {x { @@ -192,6 +203,32 @@ test lreplace-5.2 {compiled lreplace: Bug 47ac84309b} { lreplace $x end 0 A }} {a b c} } {a b A c} + +# Testing for compiled behaviour. Far too many variations to check with +# spelt-out tests. Note that this *just* checks whether the compiled version +# and the interpreted version are the same, not whether the interpreted +# version is correct. +apply {{} { + set lss {{} {a} {a b c} {a b c d}} + set ins {{} A {A B}} + set idxs {-2 -1 0 1 2 3 end-3 end-2 end-1 end end+1 end+2} + set lreplace lreplace + + foreach ls $lss { + foreach a $idxs { + foreach b $idxs { + foreach i $ins { + set expected [list [catch {$lreplace $ls $a $b {*}$i} m] $m] + set tester [list lreplace $ls $a $b {*}$i] + set script [list catch $tester m] + set script "list \[$script\] \$m" + test lreplace-6.[incr n] {lreplace battery} \ + [list apply [list {} $script]] $expected + } + } + } + } +}} # cleanup catch {unset foo} -- cgit v0.12 From d1d3c40c1a9a1ee762a59b4f429bd05315440914 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 1 Apr 2016 13:00:25 +0000 Subject: RFE [0ef5e653ff4caf5f896ec1182e0aac38ab9a0c46|0ef5e653]: Add nsf to coffbase.txt --- win/coffbase.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/win/coffbase.txt b/win/coffbase.txt index 0ebe18a..3314f26 100644 --- a/win/coffbase.txt +++ b/win/coffbase.txt @@ -34,6 +34,7 @@ tclsdl 0x10B20000 0x00080000 vqtcl 0x10C00000 0x00010000 tdbc 0x10C40000 0x00010000 thread 0x10C80000 0x00020000 +nsf 0x10ca0000 0x00080000 ; ; insert new packages here ; -- cgit v0.12 From 514885892ef31d0ce71e8b1740b7ef838f459d99 Mon Sep 17 00:00:00 2001 From: dkf Date: Sun, 3 Apr 2016 11:04:23 +0000 Subject: Working on fixing problem with short reads from compressing streams that breaks PNG creation in Tk. --- tests/zlib.test | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/zlib.test b/tests/zlib.test index 7a486ba..93c00f1 100644 --- a/tests/zlib.test +++ b/tests/zlib.test @@ -875,6 +875,24 @@ test zlib-11.3 {Bug 3595576 variant} -setup { } -cleanup { removeFile $file } -returnCodes error -result {can't set "noSuchNs::foo": parent namespace doesn't exist} + +test zlib-12.1 {Tk Bug 9eb55debc5} -constraints zlib -setup { + set stream [zlib stream compress] +} -body { + set opts {} + for {set y 0} {$y < 60} {incr y} { + for {set line {};set x 0} {$x < 100} {incr x} { + append line [binary format ccc $x $y 128] + } + if {$y == 59} { + set opts -finalize + } + $stream put {*}$opts $line + } + string length [$stream get] +} -cleanup { + $stream close +} -result 12026 ::tcltest::cleanupTests return -- cgit v0.12 From 082197d5c8f618d1cf78dffd199915806079b7de Mon Sep 17 00:00:00 2001 From: dkf Date: Mon, 4 Apr 2016 10:03:40 +0000 Subject: Was handling the flushing at the end of the stream wrongly. --- generic/tclZlib.c | 9 +++++---- tests/zlib.test | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/generic/tclZlib.c b/generic/tclZlib.c index 50d9a30..691d57a 100644 --- a/generic/tclZlib.c +++ b/generic/tclZlib.c @@ -1194,11 +1194,12 @@ Tcl_ZlibStreamPut( zshPtr->stream.next_out = (Bytef *) dataTmp; e = deflate(&zshPtr->stream, flush); - while (e == Z_BUF_ERROR) { + while (e == Z_BUF_ERROR || (flush == Z_FINISH && e == Z_OK)) { /* - * Output buffer too small to hold the data being generated; so - * put a new buffer into place after saving the old generated - * data to the outData list. + * Output buffer too small to hold the data being generated or we + * are doing the end-of-stream flush (which can spit out masses of + * data). This means we need to put a new buffer into place after + * saving the old generated data to the outData list. */ obj = Tcl_NewByteArrayObj((unsigned char *) dataTmp, outSize); diff --git a/tests/zlib.test b/tests/zlib.test index 93c00f1..968469d 100644 --- a/tests/zlib.test +++ b/tests/zlib.test @@ -879,8 +879,7 @@ test zlib-11.3 {Bug 3595576 variant} -setup { test zlib-12.1 {Tk Bug 9eb55debc5} -constraints zlib -setup { set stream [zlib stream compress] } -body { - set opts {} - for {set y 0} {$y < 60} {incr y} { + for {set opts {};set y 0} {$y < 60} {incr y} { for {set line {};set x 0} {$x < 100} {incr x} { append line [binary format ccc $x $y 128] } @@ -889,10 +888,11 @@ test zlib-12.1 {Tk Bug 9eb55debc5} -constraints zlib -setup { } $stream put {*}$opts $line } - string length [$stream get] + set data [$stream get] + list [string length $data] [string length [zlib decompress $data]] } -cleanup { $stream close -} -result 12026 +} -result {12026 18000} ::tcltest::cleanupTests return -- cgit v0.12 From 5b2c3db492538b64ee77ef4873492a9a101f55bc Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 4 Apr 2016 15:43:49 +0000 Subject: Merge *both* commits to get the TclAsyncReady optimization. Without both parts, the test interp-34.3.1 hangs. --- generic/tclExecute.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/generic/tclExecute.c b/generic/tclExecute.c index d4077f5..823f619 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -35,14 +35,14 @@ #endif /* - * A mask (should be 2**n-1) that is used to work out when the bytecode engine - * should call Tcl_AsyncReady() to see whether there is a signal that needs - * handling. + * A counter that is used to work out when the bytecode engine should call + * Tcl_AsyncReady() to see whether there is a signal that needs handling, and + * other expensive periodic operations. */ -#ifndef ASYNC_CHECK_COUNT_MASK -# define ASYNC_CHECK_COUNT_MASK 63 -#endif /* !ASYNC_CHECK_COUNT_MASK */ +#ifndef ASYNC_CHECK_COUNT +# define ASYNC_CHECK_COUNT 64 +#endif /* !ASYNC_CHECK_COUNT */ /* * Boolean flag indicating whether the Tcl bytecode interpreter has been @@ -2115,8 +2115,14 @@ TEBCresume( * sporadically: no special need for speed. */ - int instructionCount = 0; /* Counter that is used to work out when to - * call Tcl_AsyncReady() */ + unsigned interruptCounter = 1; + /* Counter that is used to work out when to + * call Tcl_AsyncReady(). This must be 1 + * initially so that we call the async-check + * stanza early, otherwise there are command + * sequences that can make the interpreter + * busy-loop without an opportunity to + * recognise an interrupt. */ const char *curInstName; #ifdef TCL_COMPILE_DEBUG int traceInstructions; /* Whether we are doing instruction-level @@ -2314,10 +2320,11 @@ TEBCresume( /* * Check for asynchronous handlers [Bug 746722]; we do the check every - * ASYNC_CHECK_COUNT_MASK instruction, of the form (2**n-1). + * ASYNC_CHECK_COUNT instructions. */ - if ((instructionCount++ & ASYNC_CHECK_COUNT_MASK) == 0) { + if ((--interruptCounter) == 0) { + interruptCounter = ASYNC_CHECK_COUNT; DECACHE_STACK_INFO(); if (TclAsyncReady(iPtr)) { result = Tcl_AsyncInvoke(interp, result); -- cgit v0.12 From 7032562591b12990b1b45ad8815bb30513a4d8e1 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 5 Apr 2016 09:32:43 +0000 Subject: Rename UtfCount() to TclUtfCount() and use it in more places. Suggested by pspjuth here: [e99a79a32650e7e5] --- generic/tclInt.h | 1 + generic/tclStringObj.c | 4 ++-- generic/tclUtf.c | 22 ++++++++-------------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/generic/tclInt.h b/generic/tclInt.h index 34430c8..1dab0cb 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -3133,6 +3133,7 @@ MODULE_SCOPE int TclTrimLeft(const char *bytes, int numBytes, MODULE_SCOPE int TclTrimRight(const char *bytes, int numBytes, const char *trim, int numTrim); MODULE_SCOPE int TclUtfCasecmp(const char *cs, const char *ct); +MODULE_SCOPE int TclUtfCount(int ch); MODULE_SCOPE Tcl_Obj * TclpNativeToNormalized(ClientData clientData); MODULE_SCOPE Tcl_Obj * TclpFilesystemPathType(Tcl_Obj *pathPtr); MODULE_SCOPE int TclpDlopen(Tcl_Interp *interp, Tcl_Obj *pathPtr, diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index e718749..b480735 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -2967,7 +2967,7 @@ ExtendStringRepWithUnicode( */ int i, origLength, size = 0; - char *dst, buf[TCL_UTF_MAX]; + char *dst; String *stringPtr = GET_STRING(objPtr); if (numChars < 0) { @@ -2993,7 +2993,7 @@ ExtendStringRepWithUnicode( } for (i = 0; i < numChars && size >= 0; i++) { - size += Tcl_UniCharToUtf((int) unicode[i], buf); + size += TclUtfCount(unicode[i]); } if (size < 0) { Tcl_Panic("max size for a Tcl value (%d bytes) exceeded", INT_MAX); diff --git a/generic/tclUtf.c b/generic/tclUtf.c index b878149..6c4cb7f 100644 --- a/generic/tclUtf.c +++ b/generic/tclUtf.c @@ -84,17 +84,11 @@ static const unsigned char totalBytes[256] = { 1,1,1,1 #endif }; - -/* - * Functions used only in this module. - */ - -static int UtfCount(int ch); /* *--------------------------------------------------------------------------- * - * UtfCount -- + * TclUtfCount -- * * Find the number of bytes in the Utf character "ch". * @@ -107,8 +101,8 @@ static int UtfCount(int ch); *--------------------------------------------------------------------------- */ -INLINE static int -UtfCount( +int +TclUtfCount( int ch) /* The Tcl_UniChar whose size is returned. */ { if ((ch > 0) && (ch < UNICODE_SELF)) { @@ -143,7 +137,7 @@ UtfCount( *--------------------------------------------------------------------------- */ -INLINE int +int Tcl_UniCharToUtf( int ch, /* The Tcl_UniChar to be stored in the * buffer. */ @@ -829,7 +823,7 @@ Tcl_UtfToUpper( * char to dst if its size is <= the original char. */ - if (bytes < UtfCount(upChar)) { + if (bytes < TclUtfCount(upChar)) { memcpy(dst, src, (size_t) bytes); dst += bytes; } else { @@ -882,7 +876,7 @@ Tcl_UtfToLower( * char to dst if its size is <= the original char. */ - if (bytes < UtfCount(lowChar)) { + if (bytes < TclUtfCount(lowChar)) { memcpy(dst, src, (size_t) bytes); dst += bytes; } else { @@ -932,7 +926,7 @@ Tcl_UtfToTitle( bytes = TclUtfToUniChar(src, &ch); titleChar = Tcl_UniCharToTitle(ch); - if (bytes < UtfCount(titleChar)) { + if (bytes < TclUtfCount(titleChar)) { memcpy(dst, src, (size_t) bytes); dst += bytes; } else { @@ -944,7 +938,7 @@ Tcl_UtfToTitle( bytes = TclUtfToUniChar(src, &ch); lowChar = Tcl_UniCharToLower(ch); - if (bytes < UtfCount(lowChar)) { + if (bytes < TclUtfCount(lowChar)) { memcpy(dst, src, (size_t) bytes); dst += bytes; } else { -- cgit v0.12 From 365f647c5fa50a235d51f440e9ecc29ecb014607 Mon Sep 17 00:00:00 2001 From: dgp Date: Wed, 6 Apr 2016 18:24:05 +0000 Subject: [213b6a2b9d] Make level parsing honor EIAS. --- generic/tclProc.c | 118 +++++++++++++++++++++-------------------------------- tests/uplevel.test | 99 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+), 72 deletions(-) diff --git a/generic/tclProc.c b/generic/tclProc.c index ac65bde..9770d26 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -808,94 +808,68 @@ TclObjGetFrame( register Interp *iPtr = (Interp *) interp; int curLevel, level, result; CallFrame *framePtr; - const char *name; + const char *name = NULL; /* * Parse object to figure out which level number to go to. */ - result = 1; + result = 0; curLevel = iPtr->varFramePtr->level; - if (objPtr == NULL) { - name = "1"; - goto haveLevel1; - } - name = TclGetString(objPtr); - if (objPtr->typePtr == &levelReferenceType) { - if (objPtr->internalRep.twoPtrValue.ptr1) { - level = curLevel - PTR2INT(objPtr->internalRep.twoPtrValue.ptr2); - } else { - level = PTR2INT(objPtr->internalRep.twoPtrValue.ptr2); - } - if (level < 0) { - goto levelError; - } - /* TODO: Consider skipping the typePtr checks */ - } else if (objPtr->typePtr == &tclIntType -#ifndef TCL_WIDE_INT_IS_LONG - || objPtr->typePtr == &tclWideIntType -#endif - ) { - if (TclGetIntFromObj(NULL, objPtr, &level) != TCL_OK || level < 0) { - goto levelError; - } - level = curLevel - level; - } else if (*name == '#') { - if (Tcl_GetInt(interp, name+1, &level) != TCL_OK || level < 0) { - goto levelError; - } - - /* - * Cache for future reference. - */ - - TclFreeIntRep(objPtr); - objPtr->typePtr = &levelReferenceType; - objPtr->internalRep.twoPtrValue.ptr1 = (void *) 0; - objPtr->internalRep.twoPtrValue.ptr2 = INT2PTR(level); - } else if (isdigit(UCHAR(*name))) { /* INTL: digit */ - if (Tcl_GetInt(interp, name, &level) != TCL_OK) { - return -1; - } - - /* - * Cache for future reference. - */ + /* + * Check for integer first, since that has potential to spare us + * a generation of a stringrep. + */ - TclFreeIntRep(objPtr); - objPtr->typePtr = &levelReferenceType; - objPtr->internalRep.twoPtrValue.ptr1 = (void *) 1; - objPtr->internalRep.twoPtrValue.ptr2 = INT2PTR(level); + if (objPtr == NULL) { + /* Do nothing */ + } else if (TCL_OK == Tcl_GetIntFromObj(NULL, objPtr, &level) + && (level >= 0)) { level = curLevel - level; + result = 1; + } else if (objPtr->typePtr == &levelReferenceType) { + level = PTR2INT(objPtr->internalRep.twoPtrValue.ptr1); + result = 1; } else { - /* - * Don't cache as the object *isn't* a level reference (might even be - * NULL...) - */ + name = TclGetString(objPtr); + if (name[0] == '#') { + if (TCL_OK == Tcl_GetInt(NULL, name+1, &level) && level >= 0) { + TclFreeIntRep(objPtr); + objPtr->typePtr = &levelReferenceType; + objPtr->internalRep.twoPtrValue.ptr1 = INT2PTR(level); + result = 1; + } else { + result = -1; + } + } else if (isdigit(UCHAR(name[0]))) { /* INTL: digit */ + /* + * If this were an integer, we'd have succeeded already. + * Docs say we have to treat this as a 'bad level' error. + */ + result = -1; + } + } - haveLevel1: + if (result == 0) { level = curLevel - 1; - result = 0; + name = "1"; } - - /* - * Figure out which frame to use, and return it to the caller. - */ - - for (framePtr = iPtr->varFramePtr; framePtr != NULL; - framePtr = framePtr->callerVarPtr) { - if (framePtr->level == level) { - break; + if (result != -1) { + if (level >= 0) { + for (framePtr = iPtr->varFramePtr; framePtr != NULL; + framePtr = framePtr->callerVarPtr) { + if (framePtr->level == level) { + *framePtrPtr = framePtr; + return result; + } + } + } + if (name == NULL) { + name = TclGetString(objPtr); } } - if (framePtr == NULL) { - goto levelError; - } - *framePtrPtr = framePtr; - return result; - levelError: Tcl_SetObjResult(interp, Tcl_ObjPrintf("bad level \"%s\"", name)); Tcl_SetErrorCode(interp, "TCL", "VALUE", "STACKLEVEL", NULL); return -1; diff --git a/tests/uplevel.test b/tests/uplevel.test index 0410469..9ecc0d5 100644 --- a/tests/uplevel.test +++ b/tests/uplevel.test @@ -101,6 +101,105 @@ test uplevel-4.4 {error: not enough args} -returnCodes error -body { uplevel 1 }} } -result {wrong # args: should be "uplevel ?level? command ?arg ...?"} +test uplevel-4.5 {level parsing} { + apply {{} {uplevel 0 {}}} +} {} +test uplevel-4.6 {level parsing} { + apply {{} {uplevel #0 {}}} +} {} +test uplevel-4.7 {level parsing} { + apply {{} {uplevel [expr 0] {}}} +} {} +test uplevel-4.8 {level parsing} { + apply {{} {uplevel #[expr 0] {}}} +} {} +test uplevel-4.9 {level parsing} { + apply {{} {uplevel -0 {}}} +} {} +test uplevel-4.10 {level parsing} { + apply {{} {uplevel #-0 {}}} +} {} +test uplevel-4.11 {level parsing} { + apply {{} {uplevel [expr -0] {}}} +} {} +test uplevel-4.12 {level parsing} { + apply {{} {uplevel #[expr -0] {}}} +} {} +test uplevel-4.13 {level parsing} { + apply {{} {uplevel 1 {}}} +} {} +test uplevel-4.14 {level parsing} { + apply {{} {uplevel #1 {}}} +} {} +test uplevel-4.15 {level parsing} { + apply {{} {uplevel [expr 1] {}}} +} {} +test uplevel-4.16 {level parsing} { + apply {{} {uplevel #[expr 1] {}}} +} {} +test uplevel-4.17 {level parsing} { + apply {{} {uplevel -0xffffffff {}}} +} {} +test uplevel-4.18 {level parsing} { + apply {{} {uplevel #-0xffffffff {}}} +} {} +test uplevel-4.19 {level parsing} { + apply {{} {uplevel [expr -0xffffffff] {}}} +} {} +test uplevel-4.20 {level parsing} { + apply {{} {uplevel #[expr -0xffffffff] {}}} +} {} +test uplevel-4.21 {level parsing} -body { + apply {{} {uplevel -1 {}}} +} -returnCodes error -result {invalid command name "-1"} +test uplevel-4.22 {level parsing} -body { + apply {{} {uplevel #-1 {}}} +} -returnCodes error -result {bad level "#-1"} +test uplevel-4.23 {level parsing} -body { + apply {{} {uplevel [expr -1] {}}} +} -returnCodes error -result {invalid command name "-1"} +test uplevel-4.24 {level parsing} -body { + apply {{} {uplevel #[expr -1] {}}} +} -returnCodes error -result {bad level "#-1"} +test uplevel-4.25 {level parsing} -body { + apply {{} {uplevel 0xffffffff {}}} +} -returnCodes error -result {bad level "0xffffffff"} +test uplevel-4.26 {level parsing} -body { + apply {{} {uplevel #0xffffffff {}}} +} -returnCodes error -result {bad level "#0xffffffff"} +test uplevel-4.27 {level parsing} -body { + apply {{} {uplevel [expr 0xffffffff] {}}} +} -returnCodes error -result {bad level "4294967295"} +test uplevel-4.28 {level parsing} -body { + apply {{} {uplevel #[expr 0xffffffff] {}}} +} -returnCodes error -result {bad level "#4294967295"} +test uplevel-4.29 {level parsing} -body { + apply {{} {uplevel 0.2 {}}} +} -returnCodes error -result {bad level "0.2"} +test uplevel-4.30 {level parsing} -body { + apply {{} {uplevel #0.2 {}}} +} -returnCodes error -result {bad level "#0.2"} +test uplevel-4.31 {level parsing} -body { + apply {{} {uplevel [expr 0.2] {}}} +} -returnCodes error -result {bad level "0.2"} +test uplevel-4.32 {level parsing} -body { + apply {{} {uplevel #[expr 0.2] {}}} +} -returnCodes error -result {bad level "#0.2"} +test uplevel-4.33 {level parsing} -body { + apply {{} {uplevel .2 {}}} +} -returnCodes error -result {invalid command name ".2"} +test uplevel-4.34 {level parsing} -body { + apply {{} {uplevel #.2 {}}} +} -returnCodes error -result {bad level "#.2"} +test uplevel-4.35 {level parsing} -body { + apply {{} {uplevel [expr .2] {}}} +} -returnCodes error -result {bad level "0.2"} +test uplevel-4.36 {level parsing} -body { + apply {{} {uplevel #[expr .2] {}}} +} -returnCodes error -result {bad level "#0.2"} + + + proc a2 {} { uplevel a3 -- cgit v0.12 From b6e7e4e4283f3809245d72b487eb5cc65cc6e95b Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 7 Apr 2016 14:54:39 +0000 Subject: Tidy up the last commit. --- generic/tclProc.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/generic/tclProc.c b/generic/tclProc.c index 9770d26..172b860 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -69,9 +69,8 @@ const Tcl_ObjType tclProcBodyType = { }; /* - * The [upvar]/[uplevel] level reference type. Uses the twoPtrValue field, - * encoding the type of level reference in ptr and the actual parsed out - * offset in ptr2. + * The [upvar]/[uplevel] level reference type. Uses the longValue field + * to remember the integer value of a parsed # format. * * Uses the default behaviour throughout, and never disposes of the string * rep; it's just a cache type. @@ -785,7 +784,7 @@ TclGetFrame( * Results: * The return value is -1 if an error occurred in finding the frame (in * this case an error message is left in the interp's result). 1 is - * returned if objPtr was either a number or a number preceded by "#" and + * returned if objPtr was either an int or an int preceded by "#" and * it specified a valid frame. 0 is returned if objPtr isn't one of the * two things above (in this case, the lookup acts as if objPtr were * "1"). The variable pointed to by framePtrPtr is filled in with the @@ -807,7 +806,6 @@ TclObjGetFrame( { register Interp *iPtr = (Interp *) interp; int curLevel, level, result; - CallFrame *framePtr; const char *name = NULL; /* @@ -829,7 +827,7 @@ TclObjGetFrame( level = curLevel - level; result = 1; } else if (objPtr->typePtr == &levelReferenceType) { - level = PTR2INT(objPtr->internalRep.twoPtrValue.ptr1); + level = (int) objPtr->internalRep.longValue; result = 1; } else { name = TclGetString(objPtr); @@ -837,7 +835,7 @@ TclObjGetFrame( if (TCL_OK == Tcl_GetInt(NULL, name+1, &level) && level >= 0) { TclFreeIntRep(objPtr); objPtr->typePtr = &levelReferenceType; - objPtr->internalRep.twoPtrValue.ptr1 = INT2PTR(level); + objPtr->internalRep.longValue = level; result = 1; } else { result = -1; @@ -857,6 +855,7 @@ TclObjGetFrame( } if (result != -1) { if (level >= 0) { + CallFrame *framePtr; for (framePtr = iPtr->varFramePtr; framePtr != NULL; framePtr = framePtr->callerVarPtr) { if (framePtr->level == level) { -- cgit v0.12 From 78b187fe71dba0f3710be978050e08fde81efd85 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 8 Apr 2016 12:23:50 +0000 Subject: Fix [8663689908d3304a74fee525cd04aa4162e86391|8663689908d3]: regexp \\w missing characters --- generic/regc_lex.c | 19 ++++++++++++++++--- tests/utf.test | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/generic/regc_lex.c b/generic/regc_lex.c index 8d07c59..51cf8a4 100644 --- a/generic/regc_lex.c +++ b/generic/regc_lex.c @@ -256,20 +256,33 @@ static const chr brbacks[] = { /* \s within brackets */ CHR('s'), CHR('p'), CHR('a'), CHR('c'), CHR('e'), CHR(':'), CHR(']') }; + +#define PUNCT_CONN \ + CHR('_'), \ + 0x203f /* UNDERTIE */, \ + 0x2040 /* CHARACTER TIE */,\ + 0x2054 /* INVERTED UNDERTIE */,\ + 0xfe33 /* PRESENTATION FORM FOR VERTICAL LOW LINE */, \ + 0xfe34 /* PRESENTATION FORM FOR VERTICAL WAVY LOW LINE */, \ + 0xfe4d /* DASHED LOW LINE */, \ + 0xfe4e /* CENTRELINE LOW LINE */, \ + 0xfe4f /* WAVY LOW LINE */, \ + 0xff3f /* FULLWIDTH LOW LINE */ + static const chr backw[] = { /* \w */ CHR('['), CHR('['), CHR(':'), CHR('a'), CHR('l'), CHR('n'), CHR('u'), CHR('m'), - CHR(':'), CHR(']'), CHR('_'), CHR(']') + CHR(':'), CHR(']'), PUNCT_CONN, CHR(']') }; static const chr backW[] = { /* \W */ CHR('['), CHR('^'), CHR('['), CHR(':'), CHR('a'), CHR('l'), CHR('n'), CHR('u'), CHR('m'), - CHR(':'), CHR(']'), CHR('_'), CHR(']') + CHR(':'), CHR(']'), PUNCT_CONN, CHR(']') }; static const chr brbackw[] = { /* \w within brackets */ CHR('['), CHR(':'), CHR('a'), CHR('l'), CHR('n'), CHR('u'), CHR('m'), - CHR(':'), CHR(']'), CHR('_') + CHR(':'), CHR(']'), PUNCT_CONN }; /* diff --git a/tests/utf.test b/tests/utf.test index 30200c1..e8ee374 100644 --- a/tests/utf.test +++ b/tests/utf.test @@ -283,7 +283,7 @@ test utf-21.1 {TclUniCharIsAlnum} { } {1} test utf-21.2 {unicode alnum char in regc_locale.c} { # this returns 1 with Unicode 7 compliance - list [regexp {^[[:alnum:]]+$} \u1040\u021f\u0220] [regexp {^\w+$} \u1040\u021f\u0220] + list [regexp {^[[:alnum:]]+$} \u1040\u021f\u0220] [regexp {^\w+$} \u1040\u021f\u0220_\u203f\u2040\u2054\ufe33\ufe34\ufe4d\ufe4e\ufe4f\uff3f] } {1 1} test utf-21.3 {unicode print char in regc_locale.c} { # this returns 1 with Unicode 7 compliance -- cgit v0.12 From daaf750d95e22d23e47f846f89b0d7033b4eb0bd Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 8 Apr 2016 13:27:57 +0000 Subject: Fix [2538f373ffc78d6dba9c3d973c147a84fdd9bbd8|2538f373ffc78d6d]: crash in Tcl_OpenTcpServer() on Windows --- win/tclWinSock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/tclWinSock.c b/win/tclWinSock.c index a022ed5..da2e60a 100644 --- a/win/tclWinSock.c +++ b/win/tclWinSock.c @@ -2061,7 +2061,6 @@ Tcl_OpenTcpServer( char channelName[SOCK_CHAN_LENGTH]; u_long flag = 1; /* Indicates nonblocking mode. */ const char *errorMsg = NULL; - ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey); if (TclpHasSockets(interp) != TCL_OK) { return NULL; @@ -2177,6 +2176,7 @@ error: } if (statePtr != NULL) { + ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey); statePtr->acceptProc = acceptProc; statePtr->acceptProcData = acceptProcData; -- cgit v0.12 From 63b9112f89a2f6938b767af98c7747fcbc167f2a Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sun, 10 Apr 2016 15:58:19 +0000 Subject: Fix [07d13d99b0a9]: Who broke TCL 8.6 and Tclblend ? --- generic/tclObj.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/generic/tclObj.c b/generic/tclObj.c index c641152..628c3a7 100644 --- a/generic/tclObj.c +++ b/generic/tclObj.c @@ -320,7 +320,7 @@ const Tcl_HashKeyType tclObjHashKeyType = { * does allow them to delete a command when references to it are gone, which * is fragile but useful given their somewhat-OO style. Because of this, this * structure MUST NOT be const so that the C compiler puts the data in - * writable memory. [Bug 2558422] + * writable memory. [Bug 2558422] [Bug 07d13d99b0a9] * TODO: Provide a better API for those extensions so that they can coexist... */ @@ -4176,7 +4176,8 @@ Tcl_GetCommandFromObj( * had is invalid one way or another. */ - if (SetCmdNameFromAny(interp, objPtr) != TCL_OK) { + /* See [] why we cannot call SetCmdNameFromAny() directly here. */ + if (tclCmdNameType.setFromAnyProc(interp, objPtr) != TCL_OK) { return NULL; } resPtr = objPtr->internalRep.twoPtrValue.ptr1; -- cgit v0.12 From 5f08f4b52618056de417f6d543d5bd596d9197eb Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 11 Apr 2016 17:29:47 +0000 Subject: [d1f55451c6] Remove unnecessary panic routines. --- generic/tclVar.c | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/generic/tclVar.c b/generic/tclVar.c index be035f7..b5b5b10 100644 --- a/generic/tclVar.c +++ b/generic/tclVar.c @@ -202,14 +202,10 @@ MODULE_SCOPE Var * TclLookupSimpleVar(Tcl_Interp *interp, static Tcl_DupInternalRepProc DupLocalVarName; static Tcl_FreeInternalRepProc FreeLocalVarName; -static Tcl_UpdateStringProc PanicOnUpdateVarName; static Tcl_FreeInternalRepProc FreeParsedVarName; static Tcl_DupInternalRepProc DupParsedVarName; -static Tcl_UpdateStringProc PanicOnUpdateVarName; -static Tcl_SetFromAnyProc PanicOnSetVarName; - /* * Types of Tcl_Objs used to cache variable lookups. * @@ -231,12 +227,12 @@ static Tcl_SetFromAnyProc PanicOnSetVarName; static const Tcl_ObjType localVarNameType = { "localVarName", - FreeLocalVarName, DupLocalVarName, PanicOnUpdateVarName, PanicOnSetVarName + FreeLocalVarName, DupLocalVarName, NULL, NULL }; static const Tcl_ObjType tclParsedVarNameType = { "parsedVarName", - FreeParsedVarName, DupParsedVarName, PanicOnUpdateVarName, PanicOnSetVarName + FreeParsedVarName, DupParsedVarName, NULL, NULL }; /* @@ -5505,28 +5501,6 @@ TclObjVarErrMsg( */ /* - * Panic functions that should never be called in normal operation. - */ - -static void -PanicOnUpdateVarName( - Tcl_Obj *objPtr) -{ - Tcl_Panic("%s of type %s should not be called", "updateStringProc", - objPtr->typePtr->name); -} - -static int -PanicOnSetVarName( - Tcl_Interp *interp, - Tcl_Obj *objPtr) -{ - Tcl_Panic("%s of type %s should not be called", "setFromAnyProc", - objPtr->typePtr->name); - return TCL_ERROR; -} - -/* * localVarName - * * INTERNALREP DEFINITION: -- cgit v0.12 From 9a625d23f10c30494d1e132eb1bb57bf7486d26b Mon Sep 17 00:00:00 2001 From: gahr Date: Wed, 20 Apr 2016 19:27:31 +0000 Subject: Implement msec and usec verbosity levels in tcltest::configure --- doc/tcltest.n | 8 ++++++-- library/tcltest/tcltest.tcl | 36 ++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/doc/tcltest.n b/doc/tcltest.n index cedc763..ac8b73b 100644 --- a/doc/tcltest.n +++ b/doc/tcltest.n @@ -872,8 +872,8 @@ harness are doing. . Sets the type of output verbosity desired to \fIlevel\fR, a list of zero or more of the elements \fBbody\fR, \fBpass\fR, -\fBskip\fR, \fBstart\fR, \fBerror\fR and \fBline\fR. Default value -is +\fBskip\fR, \fBstart\fR, \fBerror\fR, \fBline\fR, \fBmsec\fR and \fBusec\fR. +Default value is .QW "\fBbody error\fR" . Levels are defined as: .RS @@ -890,6 +890,10 @@ Print errorInfo and errorCode, if they exist, when a test return code does not match its expected return code .IP "line (\fBl\fR)" Print source file line information of failed tests +.IP "msec (\fBm\fR)" +Print each test's execution time in milliseconds +.IP "usec (\fBu\fR)" +Print each test's execution time in microseconds .PP The single letter abbreviations noted above are also recognized so that diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl index 29ef778..30965b8 100644 --- a/library/tcltest/tcltest.tcl +++ b/library/tcltest/tcltest.tcl @@ -611,16 +611,27 @@ namespace eval tcltest { proc AcceptVerbose { level } { set level [AcceptList $level] + set levelMap { + l list + p pass + b body + s skip + t start + e error + l line + m msec + u usec + } + set levelRegexp "^([join [dict values $levelMap] |])\$" if {[llength $level] == 1} { - if {![regexp {^(pass|body|skip|start|error|line)$} $level]} { + if {![regexp $levelRegexp $level]} { # translate single characters abbreviations to expanded list - set level [string map {p pass b body s skip t start e error l line} \ - [split $level {}]] + set level [string map $levelMap [split $level {}]] } } set valid [list] foreach v $level { - if {[regexp {^(pass|body|skip|start|error|line)$} $v]} { + if {[regexp $levelRegexp $v]} { lappend valid $v } } @@ -1972,6 +1983,14 @@ proc tcltest::test {name description args} { # Only run the test body if the setup was successful if {!$setupFailure} { + # Register startup time + if {[IsVerbose msec]} { + set msStart [clock milliseconds] + } + if {[IsVerbose usec]} { + set usStart [clock microseconds] + } + # Verbose notification of $body start if {[IsVerbose start]} { puts [outputChannel] "---- $name start" @@ -2076,6 +2095,15 @@ proc tcltest::test {name description args} { } } + if {[IsVerbose msec]} { + set elapsed [expr {[clock milliseconds] - $msStart}] + puts [outputChannel] "++++ $name took $elapsed ms" + } + if {[IsVerbose usec]} { + set elapsed [expr {[clock microseconds] - $usStart}] + puts [outputChannel] "++++ $name took $elapsed μs" + } + # if we didn't experience any failures, then we passed variable numTests if {!($setupFailure || $cleanupFailure || $coreFailure -- cgit v0.12 From 46069c41c59226ee28c31faca3a66afc9582bc31 Mon Sep 17 00:00:00 2001 From: gahr Date: Wed, 20 Apr 2016 19:37:31 +0000 Subject: Bump tcltest version to 2.3.9 --- library/tcltest/pkgIndex.tcl | 2 +- library/tcltest/tcltest.tcl | 2 +- unix/Makefile.in | 4 ++-- win/Makefile.in | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library/tcltest/pkgIndex.tcl b/library/tcltest/pkgIndex.tcl index 987725f..06097fd 100644 --- a/library/tcltest/pkgIndex.tcl +++ b/library/tcltest/pkgIndex.tcl @@ -9,4 +9,4 @@ # full path name of this file's directory. if {![package vsatisfies [package provide Tcl] 8.5]} {return} -package ifneeded tcltest 2.3.8 [list source [file join $dir tcltest.tcl]] +package ifneeded tcltest 2.3.9 [list source [file join $dir tcltest.tcl]] diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl index 30965b8..3d8ae5f 100644 --- a/library/tcltest/tcltest.tcl +++ b/library/tcltest/tcltest.tcl @@ -22,7 +22,7 @@ namespace eval tcltest { # When the version number changes, be sure to update the pkgIndex.tcl file, # and the install directory in the Makefiles. When the minor version # changes (new feature) be sure to update the man page as well. - variable Version 2.3.8 + variable Version 2.3.9 # Compatibility support for dumb variables defined in tcltest 1 # Do not use these. Call [package provide Tcl] and [info patchlevel] diff --git a/unix/Makefile.in b/unix/Makefile.in index d9f8bbc..2c96973 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -849,8 +849,8 @@ install-libraries: libraries done; @echo "Installing package msgcat 1.6.0 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/msgcat-1.6.0.tm; - @echo "Installing package tcltest 2.3.8 as a Tcl Module"; - @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.8.tm; + @echo "Installing package tcltest 2.3.9 as a Tcl Module"; + @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.9.tm; @echo "Installing package platform 1.0.14 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.14.tm; diff --git a/win/Makefile.in b/win/Makefile.in index 2d27a41..1368671 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -660,8 +660,8 @@ install-libraries: libraries install-tzdata install-msgs done; @echo "Installing package msgcat 1.6.0 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/msgcat-1.6.0.tm; - @echo "Installing package tcltest 2.3.8 as a Tcl Module"; - @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.3.8.tm; + @echo "Installing package tcltest 2.3.9 as a Tcl Module"; + @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.3.9.tm; @echo "Installing package platform 1.0.14 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.14.tm; @echo "Installing package platform::shell 1.1.4 as a Tcl Module"; -- cgit v0.12 From b46c53fec03b48c96092ef01990c03a00891fb8c Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 22 Apr 2016 18:13:17 +0000 Subject: Refactor bytecode cleanup. --- generic/tclAssembly.c | 8 ++------ generic/tclCompile.c | 41 +++++++++++++++++++++++++++-------------- generic/tclCompile.h | 3 ++- generic/tclExecute.c | 17 +++++------------ 4 files changed, 36 insertions(+), 33 deletions(-) diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c index 6d5676b..7db5d69 100644 --- a/generic/tclAssembly.c +++ b/generic/tclAssembly.c @@ -866,7 +866,7 @@ CompileAssembleObj( * Not valid, so free it and regenerate. */ - FreeAssembleCodeInternalRep(objPtr); + TclFreeIntRep(objPtr); } /* @@ -4313,11 +4313,7 @@ FreeAssembleCodeInternalRep( { ByteCode *codePtr = objPtr->internalRep.twoPtrValue.ptr1; - codePtr->refCount--; - if (codePtr->refCount <= 0) { - TclCleanupByteCode(codePtr); - } - objPtr->typePtr = NULL; + TclReleaseByteCode(codePtr); } /* diff --git a/generic/tclCompile.c b/generic/tclCompile.c index c0b5dcc..002b551 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -661,6 +661,7 @@ InstructionDesc const tclInstructionTable[] = { * Prototypes for procedures defined later in this file: */ +static void CleanupByteCode(ByteCode *codePtr); static ByteCode * CompileSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); static void DupByteCodeInternalRep(Tcl_Obj *srcPtr, @@ -967,16 +968,13 @@ FreeByteCodeInternalRep( { register ByteCode *codePtr = objPtr->internalRep.twoPtrValue.ptr1; - objPtr->typePtr = NULL; - if (codePtr->refCount-- <= 1) { - TclCleanupByteCode(codePtr); - } + TclReleaseByteCode(codePtr); } /* *---------------------------------------------------------------------- * - * TclCleanupByteCode -- + * TclReleaseByteCode -- * * This procedure does all the real work of freeing up a bytecode * object's ByteCode structure. It's called only when the structure's @@ -993,7 +991,26 @@ FreeByteCodeInternalRep( */ void -TclCleanupByteCode( +TclPreserveByteCode( + register ByteCode *codePtr) +{ + codePtr->refCount++; +} + +void +TclReleaseByteCode( + register ByteCode *codePtr) +{ + if (--codePtr->refCount) { + return; + } + + /* Just dropped to refcount==0. Clean up. */ + CleanupByteCode(codePtr); +} + +static void +CleanupByteCode( register ByteCode *codePtr) /* Points to the ByteCode to free. */ { Tcl_Interp *interp = (Tcl_Interp *) *codePtr->interpHandle; @@ -1260,8 +1277,6 @@ Tcl_NRSubstObj( * * Results: * A (ByteCode *) is returned pointing to the resulting ByteCode. - * The caller must manage its refCount and arrange for a call to - * TclCleanupByteCode() when the last reference disappears. * * Side effects: * The Tcl_ObjType of objPtr is changed to the "substcode" type, and the @@ -1292,7 +1307,7 @@ CompileSubstObj( || (codePtr->nsEpoch != nsPtr->resolverEpoch) || (codePtr->localCachePtr != iPtr->varFramePtr->localCachePtr)) { - FreeSubstCodeInternalRep(objPtr); + TclFreeIntRep(objPtr); } } if (objPtr->typePtr != &substCodeType) { @@ -1353,10 +1368,7 @@ FreeSubstCodeInternalRep( { register ByteCode *codePtr = objPtr->internalRep.twoPtrValue.ptr1; - objPtr->typePtr = NULL; - if (codePtr->refCount-- <= 1) { - TclCleanupByteCode(codePtr); - } + TclReleaseByteCode(codePtr); } static void @@ -2752,7 +2764,8 @@ TclInitByteCodeObj( codePtr->compileEpoch = iPtr->compileEpoch; codePtr->nsPtr = namespacePtr; codePtr->nsEpoch = namespacePtr->resolverEpoch; - codePtr->refCount = 1; + codePtr->refCount = 0; + TclPreserveByteCode(codePtr); if (namespacePtr->compiledVarResProc || iPtr->resolverPtr) { codePtr->flags = TCL_BYTECODE_RESOLVE_VARS; } else { diff --git a/generic/tclCompile.h b/generic/tclCompile.h index d5bc86b..86a9db0 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -1067,7 +1067,6 @@ MODULE_SCOPE ByteCode * TclCompileObj(Tcl_Interp *interp, Tcl_Obj *objPtr, MODULE_SCOPE int TclAttemptCompileProc(Tcl_Interp *interp, Tcl_Parse *parsePtr, int depth, Command *cmdPtr, CompileEnv *envPtr); -MODULE_SCOPE void TclCleanupByteCode(ByteCode *codePtr); MODULE_SCOPE void TclCleanupStackForBreakContinue(CompileEnv *envPtr, ExceptionAux *auxPtr); MODULE_SCOPE void TclCompileCmdWord(Tcl_Interp *interp, @@ -1157,6 +1156,8 @@ MODULE_SCOPE void TclPushVarName(Tcl_Interp *interp, Tcl_Token *varTokenPtr, CompileEnv *envPtr, int flags, int *localIndexPtr, int *isScalarPtr); +MODULE_SCOPE void TclPreserveByteCode(ByteCode *codePtr); +MODULE_SCOPE void TclReleaseByteCode(ByteCode *codePtr); MODULE_SCOPE void TclReleaseLiteral(Tcl_Interp *interp, Tcl_Obj *objPtr); MODULE_SCOPE void TclInvalidateCmdLiteral(Tcl_Interp *interp, const char *name, Namespace *nsPtr); diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 823f619..2a2b951 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -1499,11 +1499,9 @@ ExprObjCallback( * * Results: * A (ByteCode *) is returned pointing to the resulting ByteCode. - * The caller must manage its refCount and arrange for a call to - * TclCleanupByteCode() when the last reference disappears. * * Side effects: - * The Tcl_ObjType of objPtr is changed to the "bytecode" type, + * The Tcl_ObjType of objPtr is changed to the "exprcode" type, * and the ByteCode is kept in the internal rep (along with context * data for checking validity) for faster operations the next time * CompileExprObj is called on the same value. @@ -1536,7 +1534,7 @@ CompileExprObj( || (codePtr->nsPtr != namespacePtr) || (codePtr->nsEpoch != namespacePtr->resolverEpoch) || (codePtr->localCachePtr != iPtr->varFramePtr->localCachePtr)) { - FreeExprCodeInternalRep(objPtr); + TclFreeIntRep(objPtr); } } if (objPtr->typePtr != &exprCodeType) { @@ -1644,10 +1642,7 @@ FreeExprCodeInternalRep( { ByteCode *codePtr = objPtr->internalRep.twoPtrValue.ptr1; - objPtr->typePtr = NULL; - if (codePtr->refCount-- <= 1) { - TclCleanupByteCode(codePtr); - } + TclReleaseByteCode(codePtr); } /* @@ -2033,7 +2028,7 @@ TclNRExecuteByteCode( * sizeof(void *); int numWords = (size + sizeof(Tcl_Obj *) - 1) / sizeof(Tcl_Obj *); - codePtr->refCount++; + TclPreserveByteCode(codePtr); /* * Reserve the stack, setup the TEBCdataPtr (TD) and CallFrame @@ -8189,9 +8184,7 @@ TEBCresume( } iPtr->cmdFramePtr = bcFramePtr->nextPtr; - if (codePtr->refCount-- <= 1) { - TclCleanupByteCode(codePtr); - } + TclReleaseByteCode(codePtr); TclStackFree(interp, TD); /* free my stack */ return result; -- cgit v0.12 From 3f9f0e85ff34afdd6cfbc82c66b5e670d0deb4bb Mon Sep 17 00:00:00 2001 From: venkat Date: Fri, 22 Apr 2016 19:43:59 +0000 Subject: Update to tzdata2016d from IETF --- library/tzdata/America/Caracas | 1 + library/tzdata/Asia/Almaty | 103 ++++++++++++++++++------------------ library/tzdata/Asia/Anadyr | 4 +- library/tzdata/Asia/Aqtau | 107 +++++++++++++++++++------------------- library/tzdata/Asia/Aqtobe | 105 +++++++++++++++++++------------------ library/tzdata/Asia/Baku | 2 +- library/tzdata/Asia/Barnaul | 4 +- library/tzdata/Asia/Chita | 4 +- library/tzdata/Asia/Irkutsk | 4 +- library/tzdata/Asia/Kamchatka | 4 +- library/tzdata/Asia/Khandyga | 4 +- library/tzdata/Asia/Krasnoyarsk | 4 +- library/tzdata/Asia/Magadan | 5 +- library/tzdata/Asia/Novokuznetsk | 4 +- library/tzdata/Asia/Novosibirsk | 4 +- library/tzdata/Asia/Omsk | 4 +- library/tzdata/Asia/Oral | 106 ++++++++++++++++++------------------- library/tzdata/Asia/Qyzylorda | 105 ++++++++++++++++++------------------- library/tzdata/Asia/Sakhalin | 4 +- library/tzdata/Asia/Srednekolymsk | 4 +- library/tzdata/Asia/Tomsk | 73 ++++++++++++++++++++++++++ library/tzdata/Asia/Ust-Nera | 4 +- library/tzdata/Asia/Vladivostok | 4 +- library/tzdata/Asia/Yakutsk | 4 +- library/tzdata/Asia/Yekaterinburg | 4 +- library/tzdata/Asia/Yerevan | 6 +-- library/tzdata/Europe/Astrakhan | 5 +- library/tzdata/Europe/Kaliningrad | 4 +- library/tzdata/Europe/Kirov | 70 +++++++++++++++++++++++++ library/tzdata/Europe/Minsk | 3 +- library/tzdata/Europe/Moscow | 4 +- library/tzdata/Europe/Samara | 4 +- library/tzdata/Europe/Ulyanovsk | 4 +- library/tzdata/Europe/Volgograd | 5 +- 34 files changed, 463 insertions(+), 313 deletions(-) create mode 100644 library/tzdata/Asia/Tomsk create mode 100644 library/tzdata/Europe/Kirov diff --git a/library/tzdata/America/Caracas b/library/tzdata/America/Caracas index 2ba87ae..253c4ce 100644 --- a/library/tzdata/America/Caracas +++ b/library/tzdata/America/Caracas @@ -6,4 +6,5 @@ set TZData(:America/Caracas) { {-1826739140 -16200 0 VET} {-157750200 -14400 0 VET} {1197183600 -16200 0 VET} + {1462086000 -14400 0 VET} } diff --git a/library/tzdata/Asia/Almaty b/library/tzdata/Asia/Almaty index 68dee29..2b83197 100644 --- a/library/tzdata/Asia/Almaty +++ b/library/tzdata/Asia/Almaty @@ -2,55 +2,56 @@ set TZData(:Asia/Almaty) { {-9223372036854775808 18468 0 LMT} - {-1441170468 18000 0 ALMT} - {-1247547600 21600 0 ALMT} - {354909600 25200 1 ALMST} - {370717200 21600 0 ALMT} - {386445600 25200 1 ALMST} - {402253200 21600 0 ALMT} - {417981600 25200 1 ALMST} - {433789200 21600 0 ALMT} - {449604000 25200 1 ALMST} - {465336000 21600 0 ALMT} - {481060800 25200 1 ALMST} - {496785600 21600 0 ALMT} - {512510400 25200 1 ALMST} - {528235200 21600 0 ALMT} - {543960000 25200 1 ALMST} - {559684800 21600 0 ALMT} - {575409600 25200 1 ALMST} - {591134400 21600 0 ALMT} - {606859200 25200 1 ALMST} - {622584000 21600 0 ALMT} - {638308800 25200 1 ALMST} - {654638400 21600 0 ALMT} - {662666400 21600 0 ALMT} - {694202400 21600 0 ALMT} - {701802000 25200 1 ALMST} - {717523200 21600 0 ALMT} - {733262400 25200 1 ALMST} - {748987200 21600 0 ALMT} - {764712000 25200 1 ALMST} - {780436800 21600 0 ALMT} - {796161600 25200 1 ALMST} - {811886400 21600 0 ALMT} - {828216000 25200 1 ALMST} - {846360000 21600 0 ALMT} - {859665600 25200 1 ALMST} - {877809600 21600 0 ALMT} - {891115200 25200 1 ALMST} - {909259200 21600 0 ALMT} - {922564800 25200 1 ALMST} - {941313600 21600 0 ALMT} - {954014400 25200 1 ALMST} - {972763200 21600 0 ALMT} - {985464000 25200 1 ALMST} - {1004212800 21600 0 ALMT} - {1017518400 25200 1 ALMST} - {1035662400 21600 0 ALMT} - {1048968000 25200 1 ALMST} - {1067112000 21600 0 ALMT} - {1080417600 25200 1 ALMST} - {1099166400 21600 0 ALMT} - {1110823200 21600 0 ALMT} + {-1441170468 18000 0 +05} + {-1247547600 21600 0 +06} + {354909600 25200 1 +07} + {370717200 21600 0 +06} + {386445600 25200 1 +07} + {402253200 21600 0 +06} + {417981600 25200 1 +07} + {433789200 21600 0 +06} + {449604000 25200 1 +07} + {465336000 21600 0 +06} + {481060800 25200 1 +07} + {496785600 21600 0 +06} + {512510400 25200 1 +07} + {528235200 21600 0 +06} + {543960000 25200 1 +07} + {559684800 21600 0 +06} + {575409600 25200 1 +07} + {591134400 21600 0 +06} + {606859200 25200 1 +07} + {622584000 21600 0 +06} + {638308800 25200 1 +07} + {654638400 21600 0 +06} + {670363200 18000 0 +05} + {670366800 21600 1 +06} + {686091600 18000 0 +05} + {695768400 21600 0 +06} + {701812800 25200 1 +07} + {717537600 21600 0 +06} + {733262400 25200 1 +07} + {748987200 21600 0 +06} + {764712000 25200 1 +07} + {780436800 21600 0 +06} + {796161600 25200 1 +07} + {811886400 21600 0 +06} + {828216000 25200 1 +07} + {846360000 21600 0 +06} + {859665600 25200 1 +07} + {877809600 21600 0 +06} + {891115200 25200 1 +07} + {909259200 21600 0 +06} + {922564800 25200 1 +07} + {941313600 21600 0 +06} + {954014400 25200 1 +07} + {972763200 21600 0 +06} + {985464000 25200 1 +07} + {1004212800 21600 0 +06} + {1017518400 25200 1 +07} + {1035662400 21600 0 +06} + {1048968000 25200 1 +07} + {1067112000 21600 0 +06} + {1080417600 25200 1 +07} + {1099166400 21600 0 +06} } diff --git a/library/tzdata/Asia/Anadyr b/library/tzdata/Asia/Anadyr index 50ace50..2e8ffc7 100644 --- a/library/tzdata/Asia/Anadyr +++ b/library/tzdata/Asia/Anadyr @@ -29,8 +29,8 @@ set TZData(:Asia/Anadyr) { {670345200 43200 1 ANAST} {686070000 39600 0 ANAT} {695746800 43200 0 ANAMMTT} - {701780400 46800 1 ANAST} - {717501600 43200 0 ANAT} + {701791200 46800 1 ANAST} + {717516000 43200 0 ANAT} {733240800 46800 1 ANAST} {748965600 43200 0 ANAT} {764690400 46800 1 ANAST} diff --git a/library/tzdata/Asia/Aqtau b/library/tzdata/Asia/Aqtau index 11e89a2..90cc94d 100644 --- a/library/tzdata/Asia/Aqtau +++ b/library/tzdata/Asia/Aqtau @@ -2,57 +2,58 @@ set TZData(:Asia/Aqtau) { {-9223372036854775808 12064 0 LMT} - {-1441164064 14400 0 FORT} - {-1247544000 18000 0 FORT} - {-220942800 18000 0 SHET} - {370724400 21600 0 SHET} - {386445600 18000 0 SHET} - {386449200 21600 1 SHEST} - {402256800 18000 0 SHET} - {417985200 21600 1 SHEST} - {433792800 18000 0 SHET} - {449607600 21600 1 SHEST} - {465339600 18000 0 SHET} - {481064400 21600 1 SHEST} - {496789200 18000 0 SHET} - {512514000 21600 1 SHEST} - {528238800 18000 0 SHET} - {543963600 21600 1 SHEST} - {559688400 18000 0 SHET} - {575413200 21600 1 SHEST} - {591138000 18000 0 SHET} - {606862800 21600 1 SHEST} - {622587600 18000 0 SHET} - {638312400 21600 1 SHEST} - {654642000 18000 0 SHET} - {662670000 18000 0 SHET} - {692823600 18000 0 AQTT} - {701805600 21600 1 AQTST} - {717526800 18000 0 AQTT} - {733266000 21600 1 AQTST} - {748990800 18000 0 AQTT} - {764715600 21600 1 AQTST} - {780440400 18000 0 AQTT} - {796165200 14400 0 AQTT} - {796168800 18000 1 AQTST} - {811893600 14400 0 AQTT} - {828223200 18000 1 AQTST} - {846367200 14400 0 AQTT} - {859672800 18000 1 AQTST} - {877816800 14400 0 AQTT} - {891122400 18000 1 AQTST} - {909266400 14400 0 AQTT} - {922572000 18000 1 AQTST} - {941320800 14400 0 AQTT} - {954021600 18000 1 AQTST} - {972770400 14400 0 AQTT} - {985471200 18000 1 AQTST} - {1004220000 14400 0 AQTT} - {1017525600 18000 1 AQTST} - {1035669600 14400 0 AQTT} - {1048975200 18000 1 AQTST} - {1067119200 14400 0 AQTT} - {1080424800 18000 1 AQTST} - {1099173600 14400 0 AQTT} - {1110830400 18000 0 AQTT} + {-1441164064 14400 0 +04} + {-1247544000 18000 0 +05} + {-220942800 18000 0 +05} + {370724400 21600 0 +06} + {386445600 18000 0 +05} + {386449200 21600 1 +06} + {402256800 18000 0 +05} + {417985200 21600 1 +06} + {433792800 18000 0 +05} + {449607600 21600 1 +06} + {465339600 18000 0 +05} + {481064400 21600 1 +06} + {496789200 18000 0 +05} + {512514000 21600 1 +06} + {528238800 18000 0 +05} + {543963600 21600 1 +06} + {559688400 18000 0 +05} + {575413200 21600 1 +06} + {591138000 18000 0 +05} + {606862800 21600 1 +06} + {622587600 18000 0 +05} + {638312400 21600 1 +06} + {654642000 18000 0 +05} + {670366800 14400 0 +04} + {670370400 18000 1 +05} + {686095200 14400 0 +04} + {695772000 18000 0 +05} + {701816400 21600 1 +06} + {717541200 18000 0 +05} + {733266000 21600 1 +06} + {748990800 18000 0 +05} + {764715600 21600 1 +06} + {780440400 18000 0 +05} + {780444000 14400 0 +04} + {796168800 18000 1 +05} + {811893600 14400 0 +04} + {828223200 18000 1 +05} + {846367200 14400 0 +04} + {859672800 18000 1 +05} + {877816800 14400 0 +04} + {891122400 18000 1 +05} + {909266400 14400 0 +04} + {922572000 18000 1 +05} + {941320800 14400 0 +04} + {954021600 18000 1 +05} + {972770400 14400 0 +04} + {985471200 18000 1 +05} + {1004220000 14400 0 +04} + {1017525600 18000 1 +05} + {1035669600 14400 0 +04} + {1048975200 18000 1 +05} + {1067119200 14400 0 +04} + {1080424800 18000 1 +05} + {1099173600 18000 0 +05} } diff --git a/library/tzdata/Asia/Aqtobe b/library/tzdata/Asia/Aqtobe index c857491..55ef556 100644 --- a/library/tzdata/Asia/Aqtobe +++ b/library/tzdata/Asia/Aqtobe @@ -2,56 +2,57 @@ set TZData(:Asia/Aqtobe) { {-9223372036854775808 13720 0 LMT} - {-1441165720 14400 0 AKTT} - {-1247544000 18000 0 AKTT} - {354913200 21600 1 AKTST} - {370720800 21600 0 AKTT} - {386445600 18000 0 AKTT} - {386449200 21600 1 AKTST} - {402256800 18000 0 AKTT} - {417985200 21600 1 AKTST} - {433792800 18000 0 AKTT} - {449607600 21600 1 AKTST} - {465339600 18000 0 AKTT} - {481064400 21600 1 AKTST} - {496789200 18000 0 AKTT} - {512514000 21600 1 AKTST} - {528238800 18000 0 AKTT} - {543963600 21600 1 AKTST} - {559688400 18000 0 AKTT} - {575413200 21600 1 AKTST} - {591138000 18000 0 AKTT} - {606862800 21600 1 AKTST} - {622587600 18000 0 AKTT} - {638312400 21600 1 AKTST} - {654642000 18000 0 AKTT} - {662670000 18000 0 AKTT} - {692823600 18000 0 AQTT} - {701805600 21600 1 AQTST} - {717526800 18000 0 AQTT} - {733266000 21600 1 AQTST} - {748990800 18000 0 AQTT} - {764715600 21600 1 AQTST} - {780440400 18000 0 AQTT} - {796165200 21600 1 AQTST} - {811890000 18000 0 AQTT} - {828219600 21600 1 AQTST} - {846363600 18000 0 AQTT} - {859669200 21600 1 AQTST} - {877813200 18000 0 AQTT} - {891118800 21600 1 AQTST} - {909262800 18000 0 AQTT} - {922568400 21600 1 AQTST} - {941317200 18000 0 AQTT} - {954018000 21600 1 AQTST} - {972766800 18000 0 AQTT} - {985467600 21600 1 AQTST} - {1004216400 18000 0 AQTT} - {1017522000 21600 1 AQTST} - {1035666000 18000 0 AQTT} - {1048971600 21600 1 AQTST} - {1067115600 18000 0 AQTT} - {1080421200 21600 1 AQTST} - {1099170000 18000 0 AQTT} - {1110826800 18000 0 AQTT} + {-1441165720 14400 0 +04} + {-1247544000 18000 0 +05} + {354913200 21600 1 +06} + {370720800 21600 0 +06} + {386445600 18000 0 +05} + {386449200 21600 1 +06} + {402256800 18000 0 +05} + {417985200 21600 1 +06} + {433792800 18000 0 +05} + {449607600 21600 1 +06} + {465339600 18000 0 +05} + {481064400 21600 1 +06} + {496789200 18000 0 +05} + {512514000 21600 1 +06} + {528238800 18000 0 +05} + {543963600 21600 1 +06} + {559688400 18000 0 +05} + {575413200 21600 1 +06} + {591138000 18000 0 +05} + {606862800 21600 1 +06} + {622587600 18000 0 +05} + {638312400 21600 1 +06} + {654642000 18000 0 +05} + {670366800 14400 0 +04} + {670370400 18000 1 +05} + {686095200 14400 0 +04} + {695772000 18000 0 +05} + {701816400 21600 1 +06} + {717541200 18000 0 +05} + {733266000 21600 1 +06} + {748990800 18000 0 +05} + {764715600 21600 1 +06} + {780440400 18000 0 +05} + {796165200 21600 1 +06} + {811890000 18000 0 +05} + {828219600 21600 1 +06} + {846363600 18000 0 +05} + {859669200 21600 1 +06} + {877813200 18000 0 +05} + {891118800 21600 1 +06} + {909262800 18000 0 +05} + {922568400 21600 1 +06} + {941317200 18000 0 +05} + {954018000 21600 1 +06} + {972766800 18000 0 +05} + {985467600 21600 1 +06} + {1004216400 18000 0 +05} + {1017522000 21600 1 +06} + {1035666000 18000 0 +05} + {1048971600 21600 1 +06} + {1067115600 18000 0 +05} + {1080421200 21600 1 +06} + {1099170000 18000 0 +05} } diff --git a/library/tzdata/Asia/Baku b/library/tzdata/Asia/Baku index c26a2f5..bc0701a 100644 --- a/library/tzdata/Asia/Baku +++ b/library/tzdata/Asia/Baku @@ -27,7 +27,7 @@ set TZData(:Asia/Baku) { {670370400 14400 1 BAKST} {683496000 14400 0 AZST} {686098800 10800 0 AZT} - {701812800 14400 1 AZST} + {701823600 14400 1 AZST} {717537600 14400 0 AZT} {820440000 14400 0 AZT} {828234000 18000 1 AZST} diff --git a/library/tzdata/Asia/Barnaul b/library/tzdata/Asia/Barnaul index f6a45da..bf6abbf 100644 --- a/library/tzdata/Asia/Barnaul +++ b/library/tzdata/Asia/Barnaul @@ -28,8 +28,8 @@ set TZData(:Asia/Barnaul) { {670363200 25200 1 +07} {686088000 21600 0 +06} {695764800 25200 0 +08} - {701798400 28800 1 +08} - {717519600 25200 0 +07} + {701809200 28800 1 +08} + {717534000 25200 0 +07} {733258800 28800 1 +08} {748983600 25200 0 +07} {764708400 28800 1 +08} diff --git a/library/tzdata/Asia/Chita b/library/tzdata/Asia/Chita index 6aef523..2517beb 100644 --- a/library/tzdata/Asia/Chita +++ b/library/tzdata/Asia/Chita @@ -28,8 +28,8 @@ set TZData(:Asia/Chita) { {670356000 32400 1 YAKST} {686080800 28800 0 YAKT} {695757600 32400 0 YAKMMTT} - {701791200 36000 1 YAKST} - {717512400 32400 0 YAKT} + {701802000 36000 1 YAKST} + {717526800 32400 0 YAKT} {733251600 36000 1 YAKST} {748976400 32400 0 YAKT} {764701200 36000 1 YAKST} diff --git a/library/tzdata/Asia/Irkutsk b/library/tzdata/Asia/Irkutsk index 08e5798..ebe00c3 100644 --- a/library/tzdata/Asia/Irkutsk +++ b/library/tzdata/Asia/Irkutsk @@ -29,8 +29,8 @@ set TZData(:Asia/Irkutsk) { {670359600 28800 1 IRKST} {686084400 25200 0 IRKT} {695761200 28800 0 IRKMMTT} - {701794800 32400 1 IRKST} - {717516000 28800 0 IRKT} + {701805600 32400 1 IRKST} + {717530400 28800 0 IRKT} {733255200 32400 1 IRKST} {748980000 28800 0 IRKT} {764704800 32400 1 IRKST} diff --git a/library/tzdata/Asia/Kamchatka b/library/tzdata/Asia/Kamchatka index 82abcfa..2b77154 100644 --- a/library/tzdata/Asia/Kamchatka +++ b/library/tzdata/Asia/Kamchatka @@ -28,8 +28,8 @@ set TZData(:Asia/Kamchatka) { {670345200 43200 1 PETST} {686070000 39600 0 PETT} {695746800 43200 0 PETMMTT} - {701780400 46800 1 PETST} - {717501600 43200 0 PETT} + {701791200 46800 1 PETST} + {717516000 43200 0 PETT} {733240800 46800 1 PETST} {748965600 43200 0 PETT} {764690400 46800 1 PETST} diff --git a/library/tzdata/Asia/Khandyga b/library/tzdata/Asia/Khandyga index b2dc97a..b898e0d 100644 --- a/library/tzdata/Asia/Khandyga +++ b/library/tzdata/Asia/Khandyga @@ -28,8 +28,8 @@ set TZData(:Asia/Khandyga) { {670356000 32400 1 YAKST} {686080800 28800 0 YAKT} {695757600 32400 0 YAKMMTT} - {701791200 36000 1 YAKST} - {717512400 32400 0 YAKT} + {701802000 36000 1 YAKST} + {717526800 32400 0 YAKT} {733251600 36000 1 YAKST} {748976400 32400 0 YAKT} {764701200 36000 1 YAKST} diff --git a/library/tzdata/Asia/Krasnoyarsk b/library/tzdata/Asia/Krasnoyarsk index 17ea6c0..3c6285e 100644 --- a/library/tzdata/Asia/Krasnoyarsk +++ b/library/tzdata/Asia/Krasnoyarsk @@ -28,8 +28,8 @@ set TZData(:Asia/Krasnoyarsk) { {670363200 25200 1 KRAST} {686088000 21600 0 KRAT} {695764800 25200 0 KRAMMTT} - {701798400 28800 1 KRAST} - {717519600 25200 0 KRAT} + {701809200 28800 1 KRAST} + {717534000 25200 0 KRAT} {733258800 28800 1 KRAST} {748983600 25200 0 KRAT} {764708400 28800 1 KRAST} diff --git a/library/tzdata/Asia/Magadan b/library/tzdata/Asia/Magadan index bf796a7..afe78da 100644 --- a/library/tzdata/Asia/Magadan +++ b/library/tzdata/Asia/Magadan @@ -28,8 +28,8 @@ set TZData(:Asia/Magadan) { {670348800 39600 1 MAGST} {686073600 36000 0 MAGT} {695750400 39600 0 MAGMMTT} - {701784000 43200 1 MAGST} - {717505200 39600 0 MAGT} + {701794800 43200 1 MAGST} + {717519600 39600 0 MAGT} {733244400 43200 1 MAGST} {748969200 39600 0 MAGT} {764694000 43200 1 MAGST} @@ -68,4 +68,5 @@ set TZData(:Asia/Magadan) { {1288450800 39600 0 MAGT} {1301151600 43200 0 MAGT} {1414245600 36000 0 MAGT} + {1461427200 39600 0 MAGT} } diff --git a/library/tzdata/Asia/Novokuznetsk b/library/tzdata/Asia/Novokuznetsk index ab3c2d5..f079faa 100644 --- a/library/tzdata/Asia/Novokuznetsk +++ b/library/tzdata/Asia/Novokuznetsk @@ -28,8 +28,8 @@ set TZData(:Asia/Novokuznetsk) { {670363200 25200 1 KRAST} {686088000 21600 0 KRAT} {695764800 25200 0 KRAMMTT} - {701798400 28800 1 KRAST} - {717519600 25200 0 KRAT} + {701809200 28800 1 KRAST} + {717534000 25200 0 KRAT} {733258800 28800 1 KRAST} {748983600 25200 0 KRAT} {764708400 28800 1 KRAST} diff --git a/library/tzdata/Asia/Novosibirsk b/library/tzdata/Asia/Novosibirsk index 7227780..54c83fa 100644 --- a/library/tzdata/Asia/Novosibirsk +++ b/library/tzdata/Asia/Novosibirsk @@ -28,8 +28,8 @@ set TZData(:Asia/Novosibirsk) { {670363200 25200 1 NOVST} {686088000 21600 0 NOVT} {695764800 25200 0 NOVMMTT} - {701798400 28800 1 NOVST} - {717519600 25200 0 NOVT} + {701809200 28800 1 NOVST} + {717534000 25200 0 NOVT} {733258800 28800 1 NOVST} {738090000 25200 0 NOVST} {748987200 21600 0 NOVT} diff --git a/library/tzdata/Asia/Omsk b/library/tzdata/Asia/Omsk index f25b8d4..a6fa180 100644 --- a/library/tzdata/Asia/Omsk +++ b/library/tzdata/Asia/Omsk @@ -28,8 +28,8 @@ set TZData(:Asia/Omsk) { {670366800 21600 1 OMSST} {686091600 18000 0 OMST} {695768400 21600 0 OMSMMTT} - {701802000 25200 1 OMSST} - {717523200 21600 0 OMST} + {701812800 25200 1 OMSST} + {717537600 21600 0 OMST} {733262400 25200 1 OMSST} {748987200 21600 0 OMST} {764712000 25200 1 OMSST} diff --git a/library/tzdata/Asia/Oral b/library/tzdata/Asia/Oral index 88b9a29..962111b 100644 --- a/library/tzdata/Asia/Oral +++ b/library/tzdata/Asia/Oral @@ -2,57 +2,57 @@ set TZData(:Asia/Oral) { {-9223372036854775808 12324 0 LMT} - {-1441164324 14400 0 URAT} - {-1247544000 18000 0 URAT} - {354913200 21600 1 URAST} - {370720800 21600 0 URAT} - {386445600 18000 0 URAT} - {386449200 21600 1 URAST} - {402256800 18000 0 URAT} - {417985200 21600 1 URAST} - {433792800 18000 0 URAT} - {449607600 21600 1 URAST} - {465339600 18000 0 URAT} - {481064400 21600 1 URAST} - {496789200 18000 0 URAT} - {512514000 21600 1 URAST} - {528238800 18000 0 URAT} - {543963600 21600 1 URAST} - {559688400 18000 0 URAT} - {575413200 21600 1 URAST} - {591138000 18000 0 URAT} - {606862800 14400 0 URAT} - {606866400 18000 1 URAST} - {622591200 14400 0 URAT} - {638316000 18000 1 URAST} - {654645600 14400 0 URAT} - {662673600 14400 0 URAT} - {692827200 14400 0 ORAT} - {701809200 18000 1 ORAST} - {717530400 14400 0 ORAT} - {733269600 18000 1 ORAST} - {748994400 14400 0 ORAT} - {764719200 18000 1 ORAST} - {780444000 14400 0 ORAT} - {796168800 18000 1 ORAST} - {811893600 14400 0 ORAT} - {828223200 18000 1 ORAST} - {846367200 14400 0 ORAT} - {859672800 18000 1 ORAST} - {877816800 14400 0 ORAT} - {891122400 18000 1 ORAST} - {909266400 14400 0 ORAT} - {922572000 18000 1 ORAST} - {941320800 14400 0 ORAT} - {954021600 18000 1 ORAST} - {972770400 14400 0 ORAT} - {985471200 18000 1 ORAST} - {1004220000 14400 0 ORAT} - {1017525600 18000 1 ORAST} - {1035669600 14400 0 ORAT} - {1048975200 18000 1 ORAST} - {1067119200 14400 0 ORAT} - {1080424800 18000 1 ORAST} - {1099173600 14400 0 ORAT} - {1110830400 18000 0 ORAT} + {-1441164324 14400 0 +04} + {-1247544000 18000 0 +05} + {354913200 21600 1 +06} + {370720800 21600 0 +06} + {386445600 18000 0 +05} + {386449200 21600 1 +06} + {402256800 18000 0 +05} + {417985200 21600 1 +06} + {433792800 18000 0 +05} + {449607600 21600 1 +06} + {465339600 18000 0 +05} + {481064400 21600 1 +06} + {496789200 18000 0 +05} + {512514000 21600 1 +06} + {528238800 18000 0 +05} + {543963600 21600 1 +06} + {559688400 18000 0 +05} + {575413200 21600 1 +06} + {591138000 18000 0 +05} + {606862800 14400 0 +04} + {606866400 18000 1 +05} + {622591200 14400 0 +04} + {638316000 18000 1 +05} + {654645600 14400 0 +04} + {670370400 18000 1 +05} + {686095200 14400 0 +04} + {701816400 14400 0 +04} + {701820000 18000 1 +05} + {717544800 14400 0 +04} + {733269600 18000 1 +05} + {748994400 14400 0 +04} + {764719200 18000 1 +05} + {780444000 14400 0 +04} + {796168800 18000 1 +05} + {811893600 14400 0 +04} + {828223200 18000 1 +05} + {846367200 14400 0 +04} + {859672800 18000 1 +05} + {877816800 14400 0 +04} + {891122400 18000 1 +05} + {909266400 14400 0 +04} + {922572000 18000 1 +05} + {941320800 14400 0 +04} + {954021600 18000 1 +05} + {972770400 14400 0 +04} + {985471200 18000 1 +05} + {1004220000 14400 0 +04} + {1017525600 18000 1 +05} + {1035669600 14400 0 +04} + {1048975200 18000 1 +05} + {1067119200 14400 0 +04} + {1080424800 18000 1 +05} + {1099173600 18000 0 +05} } diff --git a/library/tzdata/Asia/Qyzylorda b/library/tzdata/Asia/Qyzylorda index 16da574..b2e9472 100644 --- a/library/tzdata/Asia/Qyzylorda +++ b/library/tzdata/Asia/Qyzylorda @@ -2,57 +2,56 @@ set TZData(:Asia/Qyzylorda) { {-9223372036854775808 15712 0 LMT} - {-1441167712 14400 0 KIZT} - {-1247544000 18000 0 KIZT} - {354913200 21600 1 KIZST} - {370720800 21600 0 KIZT} - {386445600 18000 0 KIZT} - {386449200 21600 1 KIZST} - {402256800 18000 0 KIZT} - {417985200 21600 1 KIZST} - {433792800 18000 0 KIZT} - {449607600 21600 1 KIZST} - {465339600 18000 0 KIZT} - {481064400 21600 1 KIZST} - {496789200 18000 0 KIZT} - {512514000 21600 1 KIZST} - {528238800 18000 0 KIZT} - {543963600 21600 1 KIZST} - {559688400 18000 0 KIZT} - {575413200 21600 1 KIZST} - {591138000 18000 0 KIZT} - {606862800 21600 1 KIZST} - {622587600 18000 0 KIZT} - {638312400 21600 1 KIZST} - {654642000 18000 0 KIZT} - {662670000 18000 0 KIZT} - {692823600 18000 0 QYZT} - {695768400 21600 0 QYZT} - {701802000 25200 1 QYZST} - {717523200 21600 0 QYZT} - {733262400 25200 1 QYZST} - {748987200 21600 0 QYZT} - {764712000 25200 1 QYZST} - {780436800 21600 0 QYZT} - {796161600 25200 1 QYZST} - {811886400 21600 0 QYZT} - {828216000 25200 1 QYZST} - {846360000 21600 0 QYZT} - {859665600 25200 1 QYZST} - {877809600 21600 0 QYZT} - {891115200 25200 1 QYZST} - {909259200 21600 0 QYZT} - {922564800 25200 1 QYZST} - {941313600 21600 0 QYZT} - {954014400 25200 1 QYZST} - {972763200 21600 0 QYZT} - {985464000 25200 1 QYZST} - {1004212800 21600 0 QYZT} - {1017518400 25200 1 QYZST} - {1035662400 21600 0 QYZT} - {1048968000 25200 1 QYZST} - {1067112000 21600 0 QYZT} - {1080417600 25200 1 QYZST} - {1099166400 21600 0 QYZT} - {1110823200 21600 0 QYZT} + {-1441167712 14400 0 +04} + {-1247544000 18000 0 +05} + {354913200 21600 1 +06} + {370720800 21600 0 +06} + {386445600 18000 0 +05} + {386449200 21600 1 +06} + {402256800 18000 0 +05} + {417985200 21600 1 +06} + {433792800 18000 0 +05} + {449607600 21600 1 +06} + {465339600 18000 0 +05} + {481064400 21600 1 +06} + {496789200 18000 0 +05} + {512514000 21600 1 +06} + {528238800 18000 0 +05} + {543963600 21600 1 +06} + {559688400 18000 0 +05} + {575413200 21600 1 +06} + {591138000 18000 0 +05} + {606862800 21600 1 +06} + {622587600 18000 0 +05} + {638312400 21600 1 +06} + {654642000 18000 0 +05} + {670366800 14400 0 +04} + {670370400 18000 1 +05} + {701812800 18000 0 +05} + {701816400 21600 1 +06} + {717541200 18000 0 +05} + {733266000 21600 1 +06} + {748990800 18000 0 +05} + {764715600 21600 1 +06} + {780440400 18000 0 +05} + {796165200 21600 1 +06} + {811890000 18000 0 +05} + {828219600 21600 1 +06} + {846363600 18000 0 +05} + {859669200 21600 1 +06} + {877813200 18000 0 +05} + {891118800 21600 1 +06} + {909262800 18000 0 +05} + {922568400 21600 1 +06} + {941317200 18000 0 +05} + {954018000 21600 1 +06} + {972766800 18000 0 +05} + {985467600 21600 1 +06} + {1004216400 18000 0 +05} + {1017522000 21600 1 +06} + {1035666000 18000 0 +05} + {1048971600 21600 1 +06} + {1067115600 18000 0 +05} + {1080421200 21600 1 +06} + {1099170000 21600 0 +06} } diff --git a/library/tzdata/Asia/Sakhalin b/library/tzdata/Asia/Sakhalin index 9247046..1de22f4 100644 --- a/library/tzdata/Asia/Sakhalin +++ b/library/tzdata/Asia/Sakhalin @@ -29,8 +29,8 @@ set TZData(:Asia/Sakhalin) { {670348800 39600 1 SAKST} {686073600 36000 0 SAKT} {695750400 39600 0 SAKMMTT} - {701784000 43200 1 SAKST} - {717505200 39600 0 SAKT} + {701794800 43200 1 SAKST} + {717519600 39600 0 SAKT} {733244400 43200 1 SAKST} {748969200 39600 0 SAKT} {764694000 43200 1 SAKST} diff --git a/library/tzdata/Asia/Srednekolymsk b/library/tzdata/Asia/Srednekolymsk index d1dd879..a0586aa 100644 --- a/library/tzdata/Asia/Srednekolymsk +++ b/library/tzdata/Asia/Srednekolymsk @@ -28,8 +28,8 @@ set TZData(:Asia/Srednekolymsk) { {670348800 39600 1 MAGST} {686073600 36000 0 MAGT} {695750400 39600 0 MAGMMTT} - {701784000 43200 1 MAGST} - {717505200 39600 0 MAGT} + {701794800 43200 1 MAGST} + {717519600 39600 0 MAGT} {733244400 43200 1 MAGST} {748969200 39600 0 MAGT} {764694000 43200 1 MAGST} diff --git a/library/tzdata/Asia/Tomsk b/library/tzdata/Asia/Tomsk new file mode 100644 index 0000000..0694d01 --- /dev/null +++ b/library/tzdata/Asia/Tomsk @@ -0,0 +1,73 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Tomsk) { + {-9223372036854775808 20391 0 LMT} + {-1578807591 21600 0 +06} + {-1247551200 25200 0 +08} + {354906000 28800 1 +08} + {370713600 25200 0 +07} + {386442000 28800 1 +08} + {402249600 25200 0 +07} + {417978000 28800 1 +08} + {433785600 25200 0 +07} + {449600400 28800 1 +08} + {465332400 25200 0 +07} + {481057200 28800 1 +08} + {496782000 25200 0 +07} + {512506800 28800 1 +08} + {528231600 25200 0 +07} + {543956400 28800 1 +08} + {559681200 25200 0 +07} + {575406000 28800 1 +08} + {591130800 25200 0 +07} + {606855600 28800 1 +08} + {622580400 25200 0 +07} + {638305200 28800 1 +08} + {654634800 25200 0 +07} + {670359600 21600 0 +07} + {670363200 25200 1 +07} + {686088000 21600 0 +06} + {695764800 25200 0 +08} + {701809200 28800 1 +08} + {717534000 25200 0 +07} + {733258800 28800 1 +08} + {748983600 25200 0 +07} + {764708400 28800 1 +08} + {780433200 25200 0 +07} + {796158000 28800 1 +08} + {811882800 25200 0 +07} + {828212400 28800 1 +08} + {846356400 25200 0 +07} + {859662000 28800 1 +08} + {877806000 25200 0 +07} + {891111600 28800 1 +08} + {909255600 25200 0 +07} + {922561200 28800 1 +08} + {941310000 25200 0 +07} + {954010800 28800 1 +08} + {972759600 25200 0 +07} + {985460400 28800 1 +08} + {1004209200 25200 0 +07} + {1017514800 28800 1 +08} + {1020196800 25200 0 +07} + {1035662400 21600 0 +06} + {1048968000 25200 1 +07} + {1067112000 21600 0 +06} + {1080417600 25200 1 +07} + {1099166400 21600 0 +06} + {1111867200 25200 1 +07} + {1130616000 21600 0 +06} + {1143316800 25200 1 +07} + {1162065600 21600 0 +06} + {1174766400 25200 1 +07} + {1193515200 21600 0 +06} + {1206820800 25200 1 +07} + {1224964800 21600 0 +06} + {1238270400 25200 1 +07} + {1256414400 21600 0 +06} + {1269720000 25200 1 +07} + {1288468800 21600 0 +06} + {1301169600 25200 0 +07} + {1414263600 21600 0 +06} + {1464465600 25200 0 +07} +} diff --git a/library/tzdata/Asia/Ust-Nera b/library/tzdata/Asia/Ust-Nera index 90fa7d5..3380b7b 100644 --- a/library/tzdata/Asia/Ust-Nera +++ b/library/tzdata/Asia/Ust-Nera @@ -27,8 +27,8 @@ set TZData(:Asia/Ust-Nera) { {670348800 39600 1 MAGST} {686073600 36000 0 MAGT} {695750400 39600 0 MAGMMTT} - {701784000 43200 1 MAGST} - {717505200 39600 0 MAGT} + {701794800 43200 1 MAGST} + {717519600 39600 0 MAGT} {733244400 43200 1 MAGST} {748969200 39600 0 MAGT} {764694000 43200 1 MAGST} diff --git a/library/tzdata/Asia/Vladivostok b/library/tzdata/Asia/Vladivostok index 119ff57..b279d1c 100644 --- a/library/tzdata/Asia/Vladivostok +++ b/library/tzdata/Asia/Vladivostok @@ -28,8 +28,8 @@ set TZData(:Asia/Vladivostok) { {670352400 36000 1 VLAST} {686077200 32400 0 VLAT} {695754000 36000 0 VLAMMTT} - {701787600 39600 1 VLAST} - {717508800 36000 0 VLAT} + {701798400 39600 1 VLAST} + {717523200 36000 0 VLAT} {733248000 39600 1 VLAST} {748972800 36000 0 VLAT} {764697600 39600 1 VLAST} diff --git a/library/tzdata/Asia/Yakutsk b/library/tzdata/Asia/Yakutsk index 17493a6..0074379 100644 --- a/library/tzdata/Asia/Yakutsk +++ b/library/tzdata/Asia/Yakutsk @@ -28,8 +28,8 @@ set TZData(:Asia/Yakutsk) { {670356000 32400 1 YAKST} {686080800 28800 0 YAKT} {695757600 32400 0 YAKMMTT} - {701791200 36000 1 YAKST} - {717512400 32400 0 YAKT} + {701802000 36000 1 YAKST} + {717526800 32400 0 YAKT} {733251600 36000 1 YAKST} {748976400 32400 0 YAKT} {764701200 36000 1 YAKST} diff --git a/library/tzdata/Asia/Yekaterinburg b/library/tzdata/Asia/Yekaterinburg index 2678958..fdd89b0 100644 --- a/library/tzdata/Asia/Yekaterinburg +++ b/library/tzdata/Asia/Yekaterinburg @@ -29,8 +29,8 @@ set TZData(:Asia/Yekaterinburg) { {670370400 18000 1 SVEST} {686095200 14400 0 SVET} {695772000 18000 0 YEKMMTT} - {701805600 21600 1 YEKST} - {717526800 18000 0 YEKT} + {701816400 21600 1 YEKST} + {717541200 18000 0 YEKT} {733266000 21600 1 YEKST} {748990800 18000 0 YEKT} {764715600 21600 1 YEKST} diff --git a/library/tzdata/Asia/Yerevan b/library/tzdata/Asia/Yerevan index 22008ef..c552403 100644 --- a/library/tzdata/Asia/Yerevan +++ b/library/tzdata/Asia/Yerevan @@ -27,8 +27,8 @@ set TZData(:Asia/Yerevan) { {670370400 14400 1 YERST} {685569600 14400 0 AMST} {686098800 10800 0 AMT} - {701812800 14400 1 AMST} - {717534000 10800 0 AMT} + {701823600 14400 1 AMST} + {717548400 10800 0 AMT} {733273200 14400 1 AMST} {748998000 10800 0 AMT} {764722800 14400 1 AMST} @@ -66,5 +66,5 @@ set TZData(:Asia/Yerevan) { {1288476000 14400 0 AMT} {1301176800 18000 1 AMST} {1319925600 14400 0 AMT} - {1332626400 14400 0 AMT} + {1328731200 14400 0 AMT} } diff --git a/library/tzdata/Europe/Astrakhan b/library/tzdata/Europe/Astrakhan index e5e9c26..9881bb8 100644 --- a/library/tzdata/Europe/Astrakhan +++ b/library/tzdata/Europe/Astrakhan @@ -26,8 +26,9 @@ set TZData(:Europe/Astrakhan) { {638319600 14400 1 +04} {654649200 10800 0 +03} {670374000 14400 0 +04} - {701820000 14400 0 +04} - {717534000 10800 0 +03} + {701820000 10800 0 +04} + {701823600 14400 1 +04} + {717548400 10800 0 +03} {733273200 14400 1 +04} {748998000 10800 0 +03} {764722800 14400 1 +04} diff --git a/library/tzdata/Europe/Kaliningrad b/library/tzdata/Europe/Kaliningrad index 32d7aaa..85add82 100644 --- a/library/tzdata/Europe/Kaliningrad +++ b/library/tzdata/Europe/Kaliningrad @@ -42,8 +42,8 @@ set TZData(:Europe/Kaliningrad) { {654652800 7200 0 EET} {670377600 10800 1 EEST} {686102400 7200 0 EET} - {701816400 10800 1 EEST} - {717537600 7200 0 EET} + {701827200 10800 1 EEST} + {717552000 7200 0 EET} {733276800 10800 1 EEST} {749001600 7200 0 EET} {764726400 10800 1 EEST} diff --git a/library/tzdata/Europe/Kirov b/library/tzdata/Europe/Kirov new file mode 100644 index 0000000..82ffc9e --- /dev/null +++ b/library/tzdata/Europe/Kirov @@ -0,0 +1,70 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Kirov) { + {-9223372036854775808 11928 0 LMT} + {-1593825528 10800 0 +03} + {-1247540400 14400 0 +05} + {354916800 18000 1 +05} + {370724400 14400 0 +04} + {386452800 18000 1 +05} + {402260400 14400 0 +04} + {417988800 18000 1 +05} + {433796400 14400 0 +04} + {449611200 18000 1 +05} + {465343200 14400 0 +04} + {481068000 18000 1 +05} + {496792800 14400 0 +04} + {512517600 18000 1 +05} + {528242400 14400 0 +04} + {543967200 18000 1 +05} + {559692000 14400 0 +04} + {575416800 18000 1 +05} + {591141600 14400 0 +04} + {606866400 10800 0 +04} + {606870000 14400 1 +04} + {622594800 10800 0 +03} + {638319600 14400 1 +04} + {654649200 10800 0 +03} + {670374000 14400 0 +04} + {701820000 10800 0 +04} + {701823600 14400 1 +04} + {717548400 10800 0 +03} + {733273200 14400 1 +04} + {748998000 10800 0 +03} + {764722800 14400 1 +04} + {780447600 10800 0 +03} + {796172400 14400 1 +04} + {811897200 10800 0 +03} + {828226800 14400 1 +04} + {846370800 10800 0 +03} + {859676400 14400 1 +04} + {877820400 10800 0 +03} + {891126000 14400 1 +04} + {909270000 10800 0 +03} + {922575600 14400 1 +04} + {941324400 10800 0 +03} + {954025200 14400 1 +04} + {972774000 10800 0 +03} + {985474800 14400 1 +04} + {1004223600 10800 0 +03} + {1017529200 14400 1 +04} + {1035673200 10800 0 +03} + {1048978800 14400 1 +04} + {1067122800 10800 0 +03} + {1080428400 14400 1 +04} + {1099177200 10800 0 +03} + {1111878000 14400 1 +04} + {1130626800 10800 0 +03} + {1143327600 14400 1 +04} + {1162076400 10800 0 +03} + {1174777200 14400 1 +04} + {1193526000 10800 0 +03} + {1206831600 14400 1 +04} + {1224975600 10800 0 +03} + {1238281200 14400 1 +04} + {1256425200 10800 0 +03} + {1269730800 14400 1 +04} + {1288479600 10800 0 +03} + {1301180400 14400 0 +04} + {1414274400 10800 0 +03} +} diff --git a/library/tzdata/Europe/Minsk b/library/tzdata/Europe/Minsk index 0acb4aa..5e47063 100644 --- a/library/tzdata/Europe/Minsk +++ b/library/tzdata/Europe/Minsk @@ -33,7 +33,8 @@ set TZData(:Europe/Minsk) { {670374000 10800 1 EEST} {686102400 7200 0 EET} {701820000 10800 1 EEST} - {717544800 7200 0 EET} + {717544800 10800 0 EEST} + {717552000 7200 0 EET} {733276800 10800 1 EEST} {749001600 7200 0 EET} {764726400 10800 1 EEST} diff --git a/library/tzdata/Europe/Moscow b/library/tzdata/Europe/Moscow index 686b3d0..1e2f45b 100644 --- a/library/tzdata/Europe/Moscow +++ b/library/tzdata/Europe/Moscow @@ -40,8 +40,8 @@ set TZData(:Europe/Moscow) { {670377600 10800 1 EEST} {686102400 7200 0 EET} {695779200 10800 0 MSD} - {701812800 14400 1 MSD} - {717534000 10800 0 MSK} + {701823600 14400 1 MSD} + {717548400 10800 0 MSK} {733273200 14400 1 MSD} {748998000 10800 0 MSK} {764722800 14400 1 MSD} diff --git a/library/tzdata/Europe/Samara b/library/tzdata/Europe/Samara index 47615de..08203c0 100644 --- a/library/tzdata/Europe/Samara +++ b/library/tzdata/Europe/Samara @@ -30,8 +30,8 @@ set TZData(:Europe/Samara) { {670377600 10800 1 EEST} {686102400 10800 0 SAMT} {687916800 14400 0 SAMT} - {701809200 18000 1 SAMST} - {717530400 14400 0 SAMT} + {701820000 18000 1 SAMST} + {717544800 14400 0 SAMT} {733269600 18000 1 SAMST} {748994400 14400 0 SAMT} {764719200 18000 1 SAMST} diff --git a/library/tzdata/Europe/Ulyanovsk b/library/tzdata/Europe/Ulyanovsk index b975622..d5c33b5 100644 --- a/library/tzdata/Europe/Ulyanovsk +++ b/library/tzdata/Europe/Ulyanovsk @@ -29,8 +29,8 @@ set TZData(:Europe/Ulyanovsk) { {670377600 10800 1 +03} {686102400 7200 0 +02} {695779200 10800 0 +04} - {701812800 14400 1 +04} - {717534000 10800 0 +03} + {701823600 14400 1 +04} + {717548400 10800 0 +03} {733273200 14400 1 +04} {748998000 10800 0 +03} {764722800 14400 1 +04} diff --git a/library/tzdata/Europe/Volgograd b/library/tzdata/Europe/Volgograd index ef33d4b..83996b0 100644 --- a/library/tzdata/Europe/Volgograd +++ b/library/tzdata/Europe/Volgograd @@ -28,8 +28,9 @@ set TZData(:Europe/Volgograd) { {638319600 14400 1 VOLST} {654649200 10800 0 VOLT} {670374000 14400 0 VOLT} - {701820000 14400 0 MSD} - {717534000 10800 0 MSK} + {701820000 10800 0 MSD} + {701823600 14400 1 MSD} + {717548400 10800 0 MSK} {733273200 14400 1 MSD} {748998000 10800 0 MSK} {764722800 14400 1 MSD} -- cgit v0.12 From 8be766f938d6042a4a05a1ddd6dcb4ec3b99f27b Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 29 Apr 2016 17:34:14 +0000 Subject: Refactor bytecode initialization machinery. --- generic/tclCompile.c | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 002b551..8665187 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -2735,6 +2735,29 @@ TclInitByteCodeObj( iPtr = envPtr->iPtr; + for (i = 0; i < numLitObjects; i++) { + if (objPtr == TclFetchLiteral(envPtr, i)) { + /* + * Prevent circular reference where the bytecode intrep of + * a value contains a literal which is that same value. + * If this is allowed to happen, refcount decrements may not + * reach zero, and memory may leak. Bugs 467523, 3357771 + * + * NOTE: [Bugs 3392070, 3389764] We make a copy based completely + * on the string value, and do not call Tcl_DuplicateObj() so we + * can be sure we do not have any lingering cycles hiding in + * the intrep. + */ + int numBytes; + const char *bytes = Tcl_GetStringFromObj(objPtr, &numBytes); + Tcl_Obj *copyPtr = Tcl_NewStringObj(bytes, numBytes); + + Tcl_IncrRefCount(copyPtr); + TclReleaseLiteral((Tcl_Interp *)iPtr, objPtr); + + envPtr->literalArrayPtr[i].objPtr = copyPtr; + } + } codeBytes = envPtr->codeNext - envPtr->codeStart; objArrayBytes = envPtr->literalArrayNext * sizeof(Tcl_Obj *); exceptArrayBytes = envPtr->exceptArrayNext * sizeof(ExceptionRange); @@ -2791,29 +2814,7 @@ TclInitByteCodeObj( p += TCL_ALIGN(codeBytes); /* align object array */ codePtr->objArrayPtr = (Tcl_Obj **) p; for (i = 0; i < numLitObjects; i++) { - Tcl_Obj *fetched = TclFetchLiteral(envPtr, i); - - if (objPtr == fetched) { - /* - * Prevent circular reference where the bytecode intrep of - * a value contains a literal which is that same value. - * If this is allowed to happen, refcount decrements may not - * reach zero, and memory may leak. Bugs 467523, 3357771 - * - * NOTE: [Bugs 3392070, 3389764] We make a copy based completely - * on the string value, and do not call Tcl_DuplicateObj() so we - * can be sure we do not have any lingering cycles hiding in - * the intrep. - */ - int numBytes; - const char *bytes = Tcl_GetStringFromObj(objPtr, &numBytes); - - codePtr->objArrayPtr[i] = Tcl_NewStringObj(bytes, numBytes); - Tcl_IncrRefCount(codePtr->objArrayPtr[i]); - TclReleaseLiteral((Tcl_Interp *)iPtr, objPtr); - } else { - codePtr->objArrayPtr[i] = fetched; - } + codePtr->objArrayPtr[i] = TclFetchLiteral(envPtr, i); } p += TCL_ALIGN(objArrayBytes); /* align exception range array */ -- cgit v0.12 From 272c398b78060d7d8b575bb5aa652f37aa08d666 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 29 Apr 2016 17:52:30 +0000 Subject: Tease apart the bytecode creation machinery from the Tcl_Obj intrep machinery. --- generic/tclCompile.c | 92 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 35 deletions(-) diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 8665187..8837f06 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -2709,33 +2709,14 @@ TclCompileNoOp( *---------------------------------------------------------------------- */ -void -TclInitByteCodeObj( - Tcl_Obj *objPtr, /* Points object that should be initialized, - * and whose string rep contains the source - * code. */ - register CompileEnv *envPtr)/* Points to the CompileEnv structure from - * which to create a ByteCode structure. */ +static void +PreventCycle( + Tcl_Obj *objPtr, + CompileEnv *envPtr) { - register ByteCode *codePtr; - size_t codeBytes, objArrayBytes, exceptArrayBytes, cmdLocBytes; - size_t auxDataArrayBytes, structureSize; - register unsigned char *p; -#ifdef TCL_COMPILE_DEBUG - unsigned char *nextPtr; -#endif - int numLitObjects = envPtr->literalArrayNext; - Namespace *namespacePtr; - int i, isNew; - Interp *iPtr; - - if (envPtr->iPtr == NULL) { - Tcl_Panic("TclInitByteCodeObj() called on uninitialized CompileEnv"); - } - - iPtr = envPtr->iPtr; + int i; - for (i = 0; i < numLitObjects; i++) { + for (i = 0; i < envPtr->literalArrayNext; i++) { if (objPtr == TclFetchLiteral(envPtr, i)) { /* * Prevent circular reference where the bytecode intrep of @@ -2753,11 +2734,36 @@ TclInitByteCodeObj( Tcl_Obj *copyPtr = Tcl_NewStringObj(bytes, numBytes); Tcl_IncrRefCount(copyPtr); - TclReleaseLiteral((Tcl_Interp *)iPtr, objPtr); + TclReleaseLiteral((Tcl_Interp *)envPtr->iPtr, objPtr); envPtr->literalArrayPtr[i].objPtr = copyPtr; } } +} + +static ByteCode * +TclInitByteCode( + register CompileEnv *envPtr)/* Points to the CompileEnv structure from + * which to create a ByteCode structure. */ +{ + register ByteCode *codePtr; + size_t codeBytes, objArrayBytes, exceptArrayBytes, cmdLocBytes; + size_t auxDataArrayBytes, structureSize; + register unsigned char *p; +#ifdef TCL_COMPILE_DEBUG + unsigned char *nextPtr; +#endif + int numLitObjects = envPtr->literalArrayNext; + Namespace *namespacePtr; + int i, isNew; + Interp *iPtr; + + if (envPtr->iPtr == NULL) { + Tcl_Panic("TclInitByteCodeObj() called on uninitialized CompileEnv"); + } + + iPtr = envPtr->iPtr; + codeBytes = envPtr->codeNext - envPtr->codeStart; objArrayBytes = envPtr->literalArrayNext * sizeof(Tcl_Obj *); exceptArrayBytes = envPtr->exceptArrayNext * sizeof(ExceptionRange); @@ -2857,15 +2863,6 @@ TclInitByteCodeObj( #endif /* TCL_COMPILE_STATS */ /* - * Free the old internal rep then convert the object to a bytecode object - * by making its internal rep point to the just compiled ByteCode. - */ - - TclFreeIntRep(objPtr); - objPtr->internalRep.twoPtrValue.ptr1 = codePtr; - objPtr->typePtr = &tclByteCodeType; - - /* * TIP #280. Associate the extended per-word line information with the * byte code object (internal rep), for use with the bc compiler. */ @@ -2878,6 +2875,31 @@ TclInitByteCodeObj( envPtr->iPtr = NULL; codePtr->localCachePtr = NULL; + return codePtr; +} + +void +TclInitByteCodeObj( + Tcl_Obj *objPtr, /* Points object that should be initialized, + * and whose string rep contains the source + * code. */ + register CompileEnv *envPtr)/* Points to the CompileEnv structure from + * which to create a ByteCode structure. */ +{ + ByteCode *codePtr; + + PreventCycle(objPtr, envPtr); + + codePtr = TclInitByteCode(envPtr); + + /* + * Free the old internal rep then convert the object to a bytecode object + * by making its internal rep point to the just compiled ByteCode. + */ + + TclFreeIntRep(objPtr); + objPtr->internalRep.twoPtrValue.ptr1 = codePtr; + objPtr->typePtr = &tclByteCodeType; } /* -- cgit v0.12 From 44deb5c463cd7905f01f7cb74ac29d0e9d90972a Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 29 Apr 2016 17:58:33 +0000 Subject: Make obj-free bytecode maker available to rest of compile-related files. --- generic/tclCompile.c | 3 ++- generic/tclCompile.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 8837f06..32a09b2 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -677,6 +677,7 @@ static void FreeSubstCodeInternalRep(Tcl_Obj *objPtr); static int GetCmdLocEncodingSize(CompileEnv *envPtr); static int IsCompactibleCompileEnv(Tcl_Interp *interp, CompileEnv *envPtr); +static void PreventCycle(Tcl_Obj *objPtr, CompileEnv *envPtr); #ifdef TCL_COMPILE_STATS static void RecordByteCodeStats(ByteCode *codePtr); #endif /* TCL_COMPILE_STATS */ @@ -2741,7 +2742,7 @@ PreventCycle( } } -static ByteCode * +ByteCode * TclInitByteCode( register CompileEnv *envPtr)/* Points to the CompileEnv structure from * which to create a ByteCode structure. */ diff --git a/generic/tclCompile.h b/generic/tclCompile.h index 86a9db0..af8d60f 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -1118,6 +1118,7 @@ MODULE_SCOPE int TclFixupForwardJump(CompileEnv *envPtr, int distThreshold); MODULE_SCOPE void TclFreeCompileEnv(CompileEnv *envPtr); MODULE_SCOPE void TclFreeJumpFixupArray(JumpFixupArray *fixupArrayPtr); +MODULE_SCOPE ByteCode * TclInitByteCode(CompileEnv *envPtr); MODULE_SCOPE void TclInitByteCodeObj(Tcl_Obj *objPtr, CompileEnv *envPtr); MODULE_SCOPE void TclInitCompileEnv(Tcl_Interp *interp, -- cgit v0.12 From 100542f06740e0120d51ef844f61d47b10ce39ef Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 29 Apr 2016 18:02:55 +0000 Subject: No longer need to create Tcl_Obj just to make some bytecode. --- generic/tclCompExpr.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c index 4390282..654666a 100644 --- a/generic/tclCompExpr.c +++ b/generic/tclCompExpr.c @@ -2181,7 +2181,6 @@ ExecConstantExprTree( CompileEnv *envPtr; ByteCode *byteCodePtr; int code; - Tcl_Obj *byteCodeObj = Tcl_NewObj(); NRE_callback *rootPtr = TOP_CB(interp); /* @@ -2195,14 +2194,12 @@ ExecConstantExprTree( CompileExprTree(interp, nodes, index, litObjvPtr, NULL, NULL, envPtr, 0 /* optimize */); TclEmitOpcode(INST_DONE, envPtr); - Tcl_IncrRefCount(byteCodeObj); - TclInitByteCodeObj(byteCodeObj, envPtr); + byteCodePtr = TclInitByteCode(envPtr); TclFreeCompileEnv(envPtr); TclStackFree(interp, envPtr); - byteCodePtr = byteCodeObj->internalRep.twoPtrValue.ptr1; TclNRExecuteByteCode(interp, byteCodePtr); code = TclNRRunCallbacks(interp, TCL_OK, rootPtr); - Tcl_DecrRefCount(byteCodeObj); + TclReleaseByteCode(byteCodePtr); return code; } -- cgit v0.12 From d41d08e1111a2353e98c6814043b6441e6e71b64 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 29 Apr 2016 19:29:14 +0000 Subject: Parameterize TclInitByteCodeObj to callers sense of typePtr. --- generic/tclAssembly.c | 4 +--- generic/tclCompile.c | 12 ++++++------ generic/tclCompile.h | 4 ++-- generic/tclExecute.c | 4 +--- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c index 7db5d69..4ad31d2 100644 --- a/generic/tclAssembly.c +++ b/generic/tclAssembly.c @@ -891,15 +891,13 @@ CompileAssembleObj( */ TclEmitOpcode(INST_DONE, &compEnv); - TclInitByteCodeObj(objPtr, &compEnv); - objPtr->typePtr = &assembleCodeType; + codePtr = TclInitByteCodeObj(objPtr, &assembleCodeType, &compEnv); TclFreeCompileEnv(&compEnv); /* * Record the local variable context to which the bytecode pertains */ - codePtr = objPtr->internalRep.twoPtrValue.ptr1; if (iPtr->varFramePtr->localCachePtr) { codePtr->localCachePtr = iPtr->varFramePtr->localCachePtr; codePtr->localCachePtr->refCount++; diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 32a09b2..96b418c 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -868,7 +868,7 @@ TclSetByteCodeFromAny( #endif /*TCL_COMPILE_DEBUG*/ if (result == TCL_OK) { - TclInitByteCodeObj(objPtr, &compEnv); + (void) TclInitByteCodeObj(objPtr, &tclByteCodeType, &compEnv); #ifdef TCL_COMPILE_DEBUG if (tclTraceCompile >= 2) { TclPrintByteCodeObj(interp, objPtr); @@ -1322,11 +1322,9 @@ CompileSubstObj( TclSubstCompile(interp, bytes, numBytes, flags, 1, &compEnv); TclEmitOpcode(INST_DONE, &compEnv); - TclInitByteCodeObj(objPtr, &compEnv); - objPtr->typePtr = &substCodeType; + codePtr = TclInitByteCodeObj(objPtr, &substCodeType, &compEnv); TclFreeCompileEnv(&compEnv); - codePtr = objPtr->internalRep.twoPtrValue.ptr1; objPtr->internalRep.twoPtrValue.ptr1 = codePtr; objPtr->internalRep.twoPtrValue.ptr2 = INT2PTR(flags); if (iPtr->varFramePtr->localCachePtr) { @@ -2879,11 +2877,12 @@ TclInitByteCode( return codePtr; } -void +ByteCode * TclInitByteCodeObj( Tcl_Obj *objPtr, /* Points object that should be initialized, * and whose string rep contains the source * code. */ + const Tcl_ObjType *typePtr, register CompileEnv *envPtr)/* Points to the CompileEnv structure from * which to create a ByteCode structure. */ { @@ -2900,7 +2899,8 @@ TclInitByteCodeObj( TclFreeIntRep(objPtr); objPtr->internalRep.twoPtrValue.ptr1 = codePtr; - objPtr->typePtr = &tclByteCodeType; + objPtr->typePtr = typePtr; + return codePtr; } /* diff --git a/generic/tclCompile.h b/generic/tclCompile.h index af8d60f..f99c07c 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -1119,8 +1119,8 @@ MODULE_SCOPE int TclFixupForwardJump(CompileEnv *envPtr, MODULE_SCOPE void TclFreeCompileEnv(CompileEnv *envPtr); MODULE_SCOPE void TclFreeJumpFixupArray(JumpFixupArray *fixupArrayPtr); MODULE_SCOPE ByteCode * TclInitByteCode(CompileEnv *envPtr); -MODULE_SCOPE void TclInitByteCodeObj(Tcl_Obj *objPtr, - CompileEnv *envPtr); +MODULE_SCOPE ByteCode * TclInitByteCodeObj(Tcl_Obj *objPtr, + const Tcl_ObjType *typePtr, CompileEnv *envPtr); MODULE_SCOPE void TclInitCompileEnv(Tcl_Interp *interp, CompileEnv *envPtr, const char *string, int numBytes, const CmdFrame *invoker, int word); diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 2a2b951..cd28a92 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -1565,10 +1565,8 @@ CompileExprObj( */ TclEmitOpcode(INST_DONE, &compEnv); - TclInitByteCodeObj(objPtr, &compEnv); - objPtr->typePtr = &exprCodeType; + codePtr = TclInitByteCodeObj(objPtr, &exprCodeType, &compEnv); TclFreeCompileEnv(&compEnv); - codePtr = objPtr->internalRep.twoPtrValue.ptr1; if (iPtr->varFramePtr->localCachePtr) { codePtr->localCachePtr = iPtr->varFramePtr->localCachePtr; codePtr->localCachePtr->refCount++; -- cgit v0.12 From df18ecdce0832c7722af0396d30c814d1cebe3a3 Mon Sep 17 00:00:00 2001 From: gahr Date: Tue, 3 May 2016 19:50:15 +0000 Subject: =?UTF-8?q?Approximate=20ms=20by=20=CE=BCs/1000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/tcltest/tcltest.tcl | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl index 3d8ae5f..1ba3c41 100644 --- a/library/tcltest/tcltest.tcl +++ b/library/tcltest/tcltest.tcl @@ -1984,11 +1984,8 @@ proc tcltest::test {name description args} { if {!$setupFailure} { # Register startup time - if {[IsVerbose msec]} { - set msStart [clock milliseconds] - } - if {[IsVerbose usec]} { - set usStart [clock microseconds] + if {[IsVerbose msec] || [IsVerbose usec]} { + set timeStart [clock microseconds] } # Verbose notification of $body start @@ -2095,13 +2092,14 @@ proc tcltest::test {name description args} { } } - if {[IsVerbose msec]} { - set elapsed [expr {[clock milliseconds] - $msStart}] - puts [outputChannel] "++++ $name took $elapsed ms" - } - if {[IsVerbose usec]} { - set elapsed [expr {[clock microseconds] - $usStart}] - puts [outputChannel] "++++ $name took $elapsed μs" + if {[IsVerbose msec] || [IsVerbose usec]} { + set t [expr {[clock microseconds] - $timeStart}] + if {[IsVerbose usec]} { + puts [outputChannel] "++++ $name took $t μs" + } + if {[IsVerbose msec]} { + puts [outputChannel] "++++ $name took [expr {round($t/1000.)}] ms" + } } # if we didn't experience any failures, then we passed -- cgit v0.12 From bcaca1bf7b9159ba02add2f07ddff74fc872093f Mon Sep 17 00:00:00 2001 From: gahr Date: Wed, 4 May 2016 12:23:40 +0000 Subject: Add a note in tcltest manual page to betray false expectations on msec and usec. --- doc/tcltest.n | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/tcltest.n b/doc/tcltest.n index ac8b73b..05c1922 100644 --- a/doc/tcltest.n +++ b/doc/tcltest.n @@ -895,6 +895,12 @@ Print each test's execution time in milliseconds .IP "usec (\fBu\fR)" Print each test's execution time in microseconds .PP +Note that the \fBmsec\fR and \fBusec\fR verbosity levels are provided as +indicative measures only. They do not tackle the problem of repeatibility which +should be considered in performance tests or benchmarks. To use these verbosity +levels to thoroughly track performance degradations, consider wrapping your +test bodies with \fBtime\fR commands. +.PP The single letter abbreviations noted above are also recognized so that .QW "\fBconfigure \-verbose pt\fR" -- cgit v0.12 From b87ec263c780440f2e79ab29f3dea7a4bf02ba1d Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 6 May 2016 16:03:15 +0000 Subject: Bug fix. Have to arrange to only close a catch once. After the space has been returned to placeholder values, closing with them as data leads to memory corruption. There's probably a better fix available because the error here feels like it's rooted somewhere else, having us continue to check values we ought to know have already been closed. --- generic/tclAssembly.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c index 6d5676b..d02721d 100644 --- a/generic/tclAssembly.c +++ b/generic/tclAssembly.c @@ -3984,6 +3984,9 @@ UnstackExpiredCatches( while (catchDepth > bbPtr->catchDepth) { --catchDepth; + if (catches[catchDepth] == NULL) { + continue; + } range = envPtr->exceptArrayPtr + catchIndices[catchDepth]; range->numCodeBytes = bbPtr->startOffset - range->codeOffset; catches[catchDepth] = NULL; -- cgit v0.12 From 88a98003bf03a290ae31656870efb11b2588d0cd Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 13 May 2016 07:49:50 +0000 Subject: Make tclreg13.dll work in any Unicode environment (either with 32-bit or 64-bit characters). Adopted from Androwish. Thanks to Christian Werner. version -> 1.3.2 --- library/reg/pkgIndex.tcl | 4 ++-- tests/registry.test | 4 ++-- win/Makefile.in | 4 ++-- win/makefile.vc | 4 ++-- win/tclWinReg.c | 28 ++++++++++++++++------------ 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/library/reg/pkgIndex.tcl b/library/reg/pkgIndex.tcl index 49fd1ac..b1fe234 100755 --- a/library/reg/pkgIndex.tcl +++ b/library/reg/pkgIndex.tcl @@ -1,9 +1,9 @@ if {([info commands ::tcl::pkgconfig] eq "") || ([info sharedlibextension] ne ".dll")} return if {[::tcl::pkgconfig get debug]} { - package ifneeded registry 1.3.1 \ + package ifneeded registry 1.3.2 \ [list load [file join $dir tclreg13g.dll] registry] } else { - package ifneeded registry 1.3.1 \ + package ifneeded registry 1.3.2 \ [list load [file join $dir tclreg13.dll] registry] } diff --git a/tests/registry.test b/tests/registry.test index 0f78212..2072559 100644 --- a/tests/registry.test +++ b/tests/registry.test @@ -19,7 +19,7 @@ testConstraint reg 0 if {[testConstraint win]} { if {![catch { ::tcltest::loadTestedCommands - set ::regver [package require registry 1.3.1] + set ::regver [package require registry 1.3.2] }]} { testConstraint reg 1 } @@ -33,7 +33,7 @@ testConstraint english [expr { test registry-1.0 {check if we are testing the right dll} {win reg} { set ::regver -} {1.3.1} +} {1.3.2} test registry-1.1 {argument parsing for registry command} {win reg} { list [catch {registry} msg] $msg } {1 {wrong # args: should be "registry ?-32bit|-64bit? option ?arg ...?"}} diff --git a/win/Makefile.in b/win/Makefile.in index 2d27a41..cf72e1c 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -713,14 +713,14 @@ test-tcl: binaries $(TCLSH) $(CAT32) $(TEST_DLL_FILE) ./$(TCLSH) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \ -load "package ifneeded Tcltest ${VERSION}@TCL_PATCH_LEVEL@ [list load [file normalize ${TEST_DLL_FILE}] Tcltest]; \ package ifneeded dde 1.4.0 [list load [file normalize ${DDE_DLL_FILE}] dde]; \ - package ifneeded registry 1.3.1 [list load [file normalize ${REG_DLL_FILE}] registry]" | ./$(CAT32) + package ifneeded registry 1.3.2 [list load [file normalize ${REG_DLL_FILE}] registry]" | ./$(CAT32) # Useful target to launch a built tclsh with the proper path,... runtest: binaries $(TCLSH) $(TEST_DLL_FILE) @TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ ./$(TCLSH) $(TESTFLAGS) -load "package ifneeded Tcltest ${VERSION}@TCL_PATCH_LEVEL@ [list load [file normalize ${TEST_DLL_FILE}] Tcltest]; \ package ifneeded dde 1.4.0 [list load [file normalize ${DDE_DLL_FILE}] dde]; \ - package ifneeded registry 1.3.1 [list load [file normalize ${REG_DLL_FILE}] registry]" $(SCRIPT) + package ifneeded registry 1.3.2 [list load [file normalize ${REG_DLL_FILE}] registry]" $(SCRIPT) # This target can be used to run tclsh from the build directory via # `make shell SCRIPT=foo.tcl` diff --git a/win/makefile.vc b/win/makefile.vc index ecfcecf..eb9a594 100644 --- a/win/makefile.vc +++ b/win/makefile.vc @@ -589,13 +589,13 @@ test-core: setup $(TCLTEST) dlls $(CAT32) !if "$(OS)" == "Windows_NT" || "$(MSVCDIR)" == "IDE" $(DEBUGGER) $(TCLTEST) "$(ROOT:\=/)/tests/all.tcl" $(TESTFLAGS) -loadfile << package ifneeded dde 1.4.0 [list load "$(TCLDDELIB:\=/)" dde] - package ifneeded registry 1.3.1 [list load "$(TCLREGLIB:\=/)" registry] + package ifneeded registry 1.3.2 [list load "$(TCLREGLIB:\=/)" registry] << !else @echo Please wait while the tests are collected... $(TCLTEST) "$(ROOT:\=/)/tests/all.tcl" $(TESTFLAGS) -loadfile << > tests.log package ifneeded dde 1.4.0 "$(TCLDDELIB:\=/)" dde] - package ifneeded registry 1.3.1 "$(TCLREGLIB:\=/)" registry] + package ifneeded registry 1.3.2 "$(TCLREGLIB:\=/)" registry] << type tests.log | more !endif diff --git a/win/tclWinReg.c b/win/tclWinReg.c index 56aa991..a3bcc81 100644 --- a/win/tclWinReg.c +++ b/win/tclWinReg.c @@ -163,7 +163,7 @@ Registry_Init( cmd = Tcl_CreateObjCommand(interp, "registry", RegistryObjCmd, interp, DeleteCmd); Tcl_SetAssocData(interp, REGISTRY_ASSOC_KEY, NULL, cmd); - return Tcl_PkgProvide(interp, "registry", "1.3.1"); + return Tcl_PkgProvide(interp, "registry", "1.3.2"); } /* @@ -803,17 +803,17 @@ GetValue( * we get bogus data. */ - while ((p < end) && *((Tcl_UniChar *) p) != 0) { - Tcl_UniChar *up; + while ((p < end) && *((WCHAR *) p) != 0) { + WCHAR *wp; Tcl_WinTCharToUtf((TCHAR *) p, -1, &buf); Tcl_ListObjAppendElement(interp, resultPtr, Tcl_NewStringObj(Tcl_DStringValue(&buf), Tcl_DStringLength(&buf))); - up = (Tcl_UniChar *) p; + wp = (WCHAR *) p; - while (*up++ != 0) {/* empty body */} - p = (char *) up; + while (*wp++ != 0) {/* empty body */} + p = (char *) wp; Tcl_DStringFree(&buf); } Tcl_SetObjResult(interp, resultPtr); @@ -1332,7 +1332,7 @@ SetValue( data = (char *) Tcl_WinUtfToTChar(data, length, &buf); /* - * Include the null in the length, padding if needed for Unicode. + * Include the null in the length, padding if needed for WCHAR. */ Tcl_DStringSetLength(&buf, Tcl_DStringLength(&buf)+1); @@ -1393,9 +1393,10 @@ BroadcastValue( DWORD_PTR sendResult; int timeout = 3000; size_t len; - int unilen; const char *str; Tcl_Obj *objPtr; + WCHAR *wstr; + Tcl_DString ds; if (objc == 3) { str = Tcl_GetString(objv[1]); @@ -1408,9 +1409,11 @@ BroadcastValue( } } - str = (char*)Tcl_GetUnicodeFromObj(objv[0], &unilen); - if (unilen == 0) { - str = NULL; + str = Tcl_GetString(objv[0]); + len = objv[0]->length; + wstr = (WCHAR *) Tcl_WinUtfToTChar(str, len, &ds); + if (Tcl_DStringLength(&ds) == 0) { + wstr = NULL; } /* @@ -1418,7 +1421,8 @@ BroadcastValue( */ result = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, - (WPARAM) 0, (LPARAM) str, SMTO_ABORTIFHUNG, (UINT) timeout, &sendResult); + (WPARAM) 0, (LPARAM) wstr, SMTO_ABORTIFHUNG, (UINT) timeout, &sendResult); + Tcl_DStringFree(&ds); objPtr = Tcl_NewObj(); Tcl_ListObjAppendElement(NULL, objPtr, Tcl_NewLongObj((long) result)); -- cgit v0.12 From 79cda12010d970f8602ad38d1adbb788b1a7888e Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 13 May 2016 09:07:43 +0000 Subject: result/sendResult could be 64-bit, so account for that --- win/tclWinReg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/win/tclWinReg.c b/win/tclWinReg.c index a3bcc81..5f7fd31 100644 --- a/win/tclWinReg.c +++ b/win/tclWinReg.c @@ -1425,8 +1425,8 @@ BroadcastValue( Tcl_DStringFree(&ds); objPtr = Tcl_NewObj(); - Tcl_ListObjAppendElement(NULL, objPtr, Tcl_NewLongObj((long) result)); - Tcl_ListObjAppendElement(NULL, objPtr, Tcl_NewLongObj((long) sendResult)); + Tcl_ListObjAppendElement(NULL, objPtr, Tcl_NewWideIntObj((Tcl_WideInt) result)); + Tcl_ListObjAppendElement(NULL, objPtr, Tcl_NewWideIntObj((Tcl_WideInt) sendResult)); Tcl_SetObjResult(interp, objPtr); return TCL_OK; -- cgit v0.12 From 09ec4a59520b6557298cffe32e679a6733928077 Mon Sep 17 00:00:00 2001 From: dkf Date: Sat, 14 May 2016 06:38:52 +0000 Subject: Tweak a test to not leave around extra commands. --- tests/assemble.test | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/assemble.test b/tests/assemble.test index 980de68..a9c77e3 100644 --- a/tests/assemble.test +++ b/tests/assemble.test @@ -3281,7 +3281,9 @@ test assemble-51.4 {memory leak testing} memory { } 0 test assemble-52.1 {Bug 3154ea2759} { - proc __BEGIN {} { + apply {{} { + # Needs six exception ranges to force the range allocations to use the + # malloced store. ::tcl::unsupported::assemble { beginCatch @badLabel push error @@ -3291,7 +3293,7 @@ test assemble-52.1 {Bug 3154ea2759} { push 0 jump @okLabel label @badLabel - push 1; # should be pushReturnCode + push 1; # should be pushReturnCode label @okLabel endCatch pop @@ -3304,7 +3306,7 @@ test assemble-52.1 {Bug 3154ea2759} { push 0 jump @okLabel2 label @badLabel2 - push 1; # should be pushReturnCode + push 1; # should be pushReturnCode label @okLabel2 endCatch pop @@ -3317,7 +3319,7 @@ test assemble-52.1 {Bug 3154ea2759} { push 0 jump @okLabel3 label @badLabel3 - push 1; # should be pushReturnCode + push 1; # should be pushReturnCode label @okLabel3 endCatch pop @@ -3330,7 +3332,7 @@ test assemble-52.1 {Bug 3154ea2759} { push 0 jump @okLabel4 label @badLabel4 - push 1; # should be pushReturnCode + push 1; # should be pushReturnCode label @okLabel4 endCatch pop @@ -3343,7 +3345,7 @@ test assemble-52.1 {Bug 3154ea2759} { push 0 jump @okLabel5 label @badLabel5 - push 1; # should be pushReturnCode + push 1; # should be pushReturnCode label @okLabel5 endCatch pop @@ -3356,13 +3358,12 @@ test assemble-52.1 {Bug 3154ea2759} { push 0 jump @okLabel6 label @badLabel6 - push 1; # should be pushReturnCode + push 1; # should be pushReturnCode label @okLabel6 endCatch pop } - } - __BEGIN + }} } {}; # must not crash rename fillTables {} -- cgit v0.12 From dc3841fe45692ab1cda05625f74d951a5a0460d7 Mon Sep 17 00:00:00 2001 From: dkf Date: Mon, 16 May 2016 10:57:36 +0000 Subject: Possible fix for [f97d4ee020]; uses a two-stage approach to avoid quadratic behaviour. --- generic/tclNamesp.c | 76 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 23 deletions(-) diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index dfab185..d286de4 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -1105,8 +1105,6 @@ TclTeardownNamespace( Interp *iPtr = (Interp *) nsPtr->interp; register Tcl_HashEntry *entryPtr; Tcl_HashSearch search; - Tcl_Namespace *childNsPtr; - Tcl_Command cmd; int i; /* @@ -1121,16 +1119,27 @@ TclTeardownNamespace( /* * Delete all commands in this namespace. Be careful when traversing the * hash table: when each command is deleted, it removes itself from the - * command table. - * - * Don't optimize to Tcl_NextHashEntry() because of traces. + * command table. Because of traces (and the desire to avoid the quadratic + * problems of just using Tcl_FirstHashEntry over and over, [Bug + * f97d4ee020]) we copy to a temporary array and then delete all those + * commands. */ - for (entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search); - entryPtr != NULL; - entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search)) { - cmd = Tcl_GetHashValue(entryPtr); - Tcl_DeleteCommandFromToken((Tcl_Interp *) iPtr, cmd); + while (nsPtr->cmdTable.numEntries > 0) { + int length = nsPtr->cmdTable.numEntries; + Tcl_Command *cmds = TclStackAlloc((Tcl_Interp *) iPtr, + sizeof(Tcl_Command) * length); + + i = 0; + for (entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search); + entryPtr != NULL; + entryPtr = Tcl_NextHashEntry(&search)) { + cmds[i++] = Tcl_GetHashValue(entryPtr); + } + for (i = 0 ; i < length ; i++) { + Tcl_DeleteCommandFromToken((Tcl_Interp *) iPtr, cmds[i]); + } + TclStackFree((Tcl_Interp *) iPtr, cmds); } Tcl_DeleteHashTable(&nsPtr->cmdTable); Tcl_InitHashTable(&nsPtr->cmdTable, TCL_STRING_KEYS); @@ -1175,25 +1184,46 @@ TclTeardownNamespace( * * BE CAREFUL: When each child is deleted, it will divorce itself from its * parent. You can't traverse a hash table properly if its elements are - * being deleted. We use only the Tcl_FirstHashEntry function to be safe. - * - * Don't optimize to Tcl_NextHashEntry() because of traces. + * being deleted. Because of traces (and the desire to avoid the + * quadratic problems of just using Tcl_FirstHashEntry over and over, [Bug + * f97d4ee020]) we copy to a temporary array and then delete all those + * namespaces. */ #ifndef BREAK_NAMESPACE_COMPAT - for (entryPtr = Tcl_FirstHashEntry(&nsPtr->childTable, &search); - entryPtr != NULL; - entryPtr = Tcl_FirstHashEntry(&nsPtr->childTable, &search)) { - childNsPtr = Tcl_GetHashValue(entryPtr); - Tcl_DeleteNamespace(childNsPtr); + while (nsPtr->childTable.numEntries > 0) { + int length = nsPtr->childTable.numEntries; + Tcl_Namespace **nss = TclStackAlloc((Tcl_Interp *) iPtr, + sizeof(Tcl_Namespace *) * length); + + i = 0; + for (entryPtr = Tcl_FirstHashEntry(&nsPtr->childTable, &search); + entryPtr != NULL; + entryPtr = Tcl_NextHashEntry(&search)) { + nss[i++] = Tcl_GetHashValue(entryPtr); + } + for (i = 0 ; i < length ; i++) { + Tcl_DeleteNamespace(nss[i]); + } + TclStackFree((Tcl_Interp *) iPtr, nss); } #else if (nsPtr->childTablePtr != NULL) { - for (entryPtr = Tcl_FirstHashEntry(nsPtr->childTablePtr, &search); - entryPtr != NULL; - entryPtr = Tcl_FirstHashEntry(nsPtr->childTablePtr,&search)) { - childNsPtr = Tcl_GetHashValue(entryPtr); - Tcl_DeleteNamespace(childNsPtr); + while (nsPtr->childTablePtr->numEntries > 0) { + int length = nsPtr->childTablePtr->numEntries; + Tcl_Namespace **nss = TclStackAlloc((Tcl_Interp *) iPtr, + sizeof(Tcl_Namespace *) * length); + + i = 0; + for (entryPtr = Tcl_FirstHashEntry(nsPtr->childTablePtr, &search); + entryPtr != NULL; + entryPtr = Tcl_NextHashEntry(&search)) { + nss[i++] = Tcl_GetHashValue(entryPtr); + } + for (i = 0 ; i < length ; i++) { + Tcl_DeleteNamespace(nss[i]); + } + TclStackFree((Tcl_Interp *) iPtr, nss); } } #endif -- cgit v0.12 From 07666542f4a7b9ba216e19b1fd3d5db1b3f943c3 Mon Sep 17 00:00:00 2001 From: dkf Date: Fri, 20 May 2016 05:14:37 +0000 Subject: Added tests that show that this branch isn't ready to be committed back yet. --- tests/namespace.test | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/namespace.test b/tests/namespace.test index cded1f4..1b31fc5 100644 --- a/tests/namespace.test +++ b/tests/namespace.test @@ -2953,6 +2953,25 @@ test namespace-54.1 {leak on namespace deletion} -constraints {memory} \ test namespace-55.1 {compiled ensembles inside compiled ensembles: Bug 6d2f249a01} { info class [format %s constructor] oo::object } "" + +test namespace-56.1 {bug f97d4ee020: mutually-entangled deletion} { + namespace eval ::testing { + proc abc {} {} + proc def {} {} + trace add command abc delete "rename ::testing::def {}; #" + trace add command def delete "rename ::testing::abc {}; #" + } + namespace delete ::testing +} {} +test namespace-56.2 {bug f97d4ee020: mutually-entangled deletion} { + namespace eval ::testing { + namespace eval abc {proc xyz {} {}} + namespace eval def {proc xyz {} {}} + trace add command abc::xyz delete "namespace delete ::testing::def {}; #" + trace add command def::xyz delete "namespace delete ::testing::abc {}; #" + } + namespace delete ::testing +} {} # cleanup catch {rename cmd1 {}} -- cgit v0.12 From f74fa93858b232af77de13991c43775c193df25a Mon Sep 17 00:00:00 2001 From: dkf Date: Sat, 21 May 2016 09:26:07 +0000 Subject: Make the tests pass. --- generic/tclNamesp.c | 40 ++++++++++++++++++++++++++-------------- tests/namespace.test | 20 ++++++++++++++++++++ 2 files changed, 46 insertions(+), 14 deletions(-) diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index d286de4..58a86d9 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -1127,17 +1127,21 @@ TclTeardownNamespace( while (nsPtr->cmdTable.numEntries > 0) { int length = nsPtr->cmdTable.numEntries; - Tcl_Command *cmds = TclStackAlloc((Tcl_Interp *) iPtr, - sizeof(Tcl_Command) * length); + Command **cmds = TclStackAlloc((Tcl_Interp *) iPtr, + sizeof(Command *) * length); i = 0; for (entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search); entryPtr != NULL; entryPtr = Tcl_NextHashEntry(&search)) { - cmds[i++] = Tcl_GetHashValue(entryPtr); + cmds[i] = Tcl_GetHashValue(entryPtr); + cmds[i]->refCount++; + i++; } for (i = 0 ; i < length ; i++) { - Tcl_DeleteCommandFromToken((Tcl_Interp *) iPtr, cmds[i]); + Tcl_DeleteCommandFromToken((Tcl_Interp *) iPtr, + (Tcl_Command) cmds[i]); + TclCleanupCommandMacro(cmds[i]); } TclStackFree((Tcl_Interp *) iPtr, cmds); } @@ -1188,42 +1192,50 @@ TclTeardownNamespace( * quadratic problems of just using Tcl_FirstHashEntry over and over, [Bug * f97d4ee020]) we copy to a temporary array and then delete all those * namespaces. + * + * Important: leave the hash table itself still live. */ #ifndef BREAK_NAMESPACE_COMPAT while (nsPtr->childTable.numEntries > 0) { int length = nsPtr->childTable.numEntries; - Tcl_Namespace **nss = TclStackAlloc((Tcl_Interp *) iPtr, - sizeof(Tcl_Namespace *) * length); + Namespace **children = TclStackAlloc((Tcl_Interp *) iPtr, + sizeof(Namespace *) * length); i = 0; for (entryPtr = Tcl_FirstHashEntry(&nsPtr->childTable, &search); entryPtr != NULL; entryPtr = Tcl_NextHashEntry(&search)) { - nss[i++] = Tcl_GetHashValue(entryPtr); + children[i] = Tcl_GetHashValue(entryPtr); + children[i]->refCount++; + i++; } for (i = 0 ; i < length ; i++) { - Tcl_DeleteNamespace(nss[i]); + Tcl_DeleteNamespace((Tcl_Namespace *) children[i]); + TclNsDecrRefCount(children[i]); } - TclStackFree((Tcl_Interp *) iPtr, nss); + TclStackFree((Tcl_Interp *) iPtr, children); } #else if (nsPtr->childTablePtr != NULL) { while (nsPtr->childTablePtr->numEntries > 0) { int length = nsPtr->childTablePtr->numEntries; - Tcl_Namespace **nss = TclStackAlloc((Tcl_Interp *) iPtr, - sizeof(Tcl_Namespace *) * length); + Namespace **children = TclStackAlloc((Tcl_Interp *) iPtr, + sizeof(Namespace *) * length); i = 0; for (entryPtr = Tcl_FirstHashEntry(nsPtr->childTablePtr, &search); entryPtr != NULL; entryPtr = Tcl_NextHashEntry(&search)) { - nss[i++] = Tcl_GetHashValue(entryPtr); + children[i] = Tcl_GetHashValue(entryPtr); + children[i]->refCount++; + i++; } for (i = 0 ; i < length ; i++) { - Tcl_DeleteNamespace(nss[i]); + Tcl_DeleteNamespace((Tcl_Namespace *) children[i]); + TclNsDecrRefCount(children[i]); } - TclStackFree((Tcl_Interp *) iPtr, nss); + TclStackFree((Tcl_Interp *) iPtr, children); } } #endif diff --git a/tests/namespace.test b/tests/namespace.test index 1b31fc5..cb9bc8c 100644 --- a/tests/namespace.test +++ b/tests/namespace.test @@ -2972,6 +2972,26 @@ test namespace-56.2 {bug f97d4ee020: mutually-entangled deletion} { } namespace delete ::testing } {} +test namespace-56.3 {bug f97d4ee020: mutually-entangled deletion} { + namespace eval ::testing { + variable gone {} + oo::class create CB { + variable cmd + constructor other {set cmd $other} + destructor {rename $cmd {}; lappend ::testing::gone $cmd} + } + namespace eval abc { + ::testing::CB create def ::testing::abc::ghi + ::testing::CB create ghi ::testing::abc::def + } + namespace delete abc + try { + return [lsort $gone] + } finally { + namespace delete ::testing + } + } +} {::testing::abc::def ::testing::abc::ghi} # cleanup catch {rename cmd1 {}} -- cgit v0.12 From cbcbd348f992ab2ae52e313fe1bb8cb51e69027d Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 26 May 2016 02:19:14 +0000 Subject: Change "integer string" to "integer" in documentation for [tell]. It's not necessary to emphasize EIAS in every man page. The phrase "integer string" dates back to 1999 [ee1e5d143e], previous was "decimal string" which dates back to 1998, in fact the oldest version in Fossil [196f92fd17]. --- doc/tell.n | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/tell.n b/doc/tell.n index 1da240d..a56e9e3 100644 --- a/doc/tell.n +++ b/doc/tell.n @@ -16,7 +16,7 @@ tell \- Return current access position for an open channel .BE .SH DESCRIPTION .PP -Returns an integer string giving the current access position in +Returns an integer giving the current access position in \fIchannelId\fR. This value returned is a byte offset that can be passed to \fBseek\fR in order to set the channel to a particular position. Note that this value is in terms of bytes, not characters like \fBread\fR. -- cgit v0.12 From 5fee89b1cba2dec073fe621b65f34c480fe15483 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 1 Jun 2016 11:56:37 +0000 Subject: Fix [3bd69eba99a395ee]: 'make dist' fails when tclsh9.0 is on $PATH --- tools/genStubs.tcl | 2 -- tools/man2html.tcl | 2 -- tools/man2html1.tcl | 2 -- tools/man2html2.tcl | 2 -- tools/tclZIC.tcl | 2 -- tools/tcltk-man2html.tcl | 2 -- 6 files changed, 12 deletions(-) diff --git a/tools/genStubs.tcl b/tools/genStubs.tcl index 37205b2..2eb6638 100644 --- a/tools/genStubs.tcl +++ b/tools/genStubs.tcl @@ -10,8 +10,6 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. -package require Tcl 8.4 - namespace eval genStubs { # libraryName -- # diff --git a/tools/man2html.tcl b/tools/man2html.tcl index fa57b03..444462b 100644 --- a/tools/man2html.tcl +++ b/tools/man2html.tcl @@ -2,8 +2,6 @@ # \ exec tclsh "$0" ${1+"$@"} -package require Tcl 8.4 - # man2html.tcl -- # # This file contains procedures that work in conjunction with the diff --git a/tools/man2html1.tcl b/tools/man2html1.tcl index f2b2e43..a668e1b 100644 --- a/tools/man2html1.tcl +++ b/tools/man2html1.tcl @@ -5,8 +5,6 @@ # # Copyright (c) 1996 by Sun Microsystems, Inc. -package require Tcl 8.4 - # Global variables used by these scripts: # # state - state variable that controls action of text proc. diff --git a/tools/man2html2.tcl b/tools/man2html2.tcl index 163196e..e4ccedf 100644 --- a/tools/man2html2.tcl +++ b/tools/man2html2.tcl @@ -6,8 +6,6 @@ # # Copyright (c) 1996 by Sun Microsystems, Inc. -package require Tcl 8.4 - # Global variables used by these scripts: # # NAME_file - array indexed by NAME and containing file names used for diff --git a/tools/tclZIC.tcl b/tools/tclZIC.tcl index 1b19d82..1fa34be 100755 --- a/tools/tclZIC.tcl +++ b/tools/tclZIC.tcl @@ -30,8 +30,6 @@ # of this file, and for a DISCLAIMER OF ALL WARRANTIES. #---------------------------------------------------------------------- -package require Tcl 8.5 - # Define the names of the Olson files that we need to load. # We avoid the solar time files and the leap seconds. diff --git a/tools/tcltk-man2html.tcl b/tools/tcltk-man2html.tcl index 59a2a63..9f95f7b 100755 --- a/tools/tcltk-man2html.tcl +++ b/tools/tcltk-man2html.tcl @@ -2,8 +2,6 @@ # The next line is executed by /bin/sh, but not tcl \ exec tclsh "$0" ${1+"$@"} -package require Tcl 8.5 - # Convert Ousterhout format man pages into highly crosslinked hypertext. # # Along the way detect many unmatched font changes and other odd things. -- cgit v0.12 From 03462e2c1dfc9da26f049ee17a3001df257442e4 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 2 Jun 2016 12:24:28 +0000 Subject: tcltest 2.3.9 -> 2.4.0 --- library/tcltest/pkgIndex.tcl | 2 +- library/tcltest/tcltest.tcl | 2 +- unix/Makefile.in | 4 ++-- win/Makefile.in | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library/tcltest/pkgIndex.tcl b/library/tcltest/pkgIndex.tcl index 06097fd..5ac8823 100644 --- a/library/tcltest/pkgIndex.tcl +++ b/library/tcltest/pkgIndex.tcl @@ -9,4 +9,4 @@ # full path name of this file's directory. if {![package vsatisfies [package provide Tcl] 8.5]} {return} -package ifneeded tcltest 2.3.9 [list source [file join $dir tcltest.tcl]] +package ifneeded tcltest 2.4.0 [list source [file join $dir tcltest.tcl]] diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl index 5dcfc61..9997187 100644 --- a/library/tcltest/tcltest.tcl +++ b/library/tcltest/tcltest.tcl @@ -22,7 +22,7 @@ namespace eval tcltest { # When the version number changes, be sure to update the pkgIndex.tcl file, # and the install directory in the Makefiles. When the minor version # changes (new feature) be sure to update the man page as well. - variable Version 2.3.9 + variable Version 2.4.0 # Compatibility support for dumb variables defined in tcltest 1 # Do not use these. Call [package provide Tcl] and [info patchlevel] diff --git a/unix/Makefile.in b/unix/Makefile.in index 2c96973..eb083e0 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -849,8 +849,8 @@ install-libraries: libraries done; @echo "Installing package msgcat 1.6.0 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/msgcat-1.6.0.tm; - @echo "Installing package tcltest 2.3.9 as a Tcl Module"; - @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.9.tm; + @echo "Installing package tcltest 2.4.0 as a Tcl Module"; + @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.4.0.tm; @echo "Installing package platform 1.0.14 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.14.tm; diff --git a/win/Makefile.in b/win/Makefile.in index 9743511..28ffe0a 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -660,8 +660,8 @@ install-libraries: libraries install-tzdata install-msgs done; @echo "Installing package msgcat 1.6.0 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/msgcat-1.6.0.tm; - @echo "Installing package tcltest 2.3.9 as a Tcl Module"; - @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.3.9.tm; + @echo "Installing package tcltest 2.4.0 as a Tcl Module"; + @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.4.0.tm; @echo "Installing package platform 1.0.14 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.14.tm; @echo "Installing package platform::shell 1.1.4 as a Tcl Module"; -- cgit v0.12