Index: ChangeLog ================================================================== --- ChangeLog +++ ChangeLog @@ -1,14 +1,5 @@ -A NOTE ON THE CHANGELOG: -Starting in early 2011, Tcl source code has been under the management of -fossil, hosted at http://core.tcl.tk/tcl/ . Fossil presents a "Timeline" -view of changes made that is superior in every way to a hand edited log file. -Because of this, many Tcl developers are now out of the habit of maintaining -this log file. You may still find useful things in it, but the Timeline is -a better first place to look now. -============================================================================ - 2013-08-30 Don Porter * generic/tcl.h: Bump to 8.5.15 for release. * library/init.tcl: * tools/tcl.wse.in: Index: changes ================================================================== --- changes +++ changes @@ -7766,28 +7766,18 @@ 2013-06-17 [string is space \u180e] => 1 (nijtmans) 2013-06-27 (bug fix)[983509] missing encodings for config values (nijtmans) -2013-06-27 (bug fix)[34538b] apply DST in 2099 (lang) - -2013-07-02 (bug fix)[32afa6] corrected dirent64 check (griffin) +2013-06-27 (bug fix)[32afa6] corrected dirent64 check (griffin) 2013-07-06 tzdata updated to Olson's tzdata2013d (kenny) 2013-07-26 (bug fix)[6585b2] regexp {(\w).*?\1} abb (lane) 2013-07-29 [string is space \u202f] => 1 (nijtmans) 2013-08-01 [a0bc85] Limited support for fork with threads (for Rivet) (nijtmans) -2013-08-14 (bug fix)[a16752] Missing command delete callbacks (porter) - 2013-08-15 Errors from execution traces become errors of the command (porter) -2013-09-07 (bug fix) stop crashes in tclcompiler (kupries,porter) - -2013-09-07 (bug fix)[86ceb4] have tm path favor first provider (neumann,porter) - -2013-09-13 (bug fix)[bdd91c] crash in exec stack mem management (azazel) - ---- Released 8.5.15, September 16, 2013 --- http://core.tcl.tk/tcl/ for details +--- Released 8.5.15, September 16, 2013 --- See ChangeLog for details --- Index: generic/tclBasic.c ================================================================== --- generic/tclBasic.c +++ generic/tclBasic.c @@ -1965,12 +1965,11 @@ * The return value is a token for the command, which can be used in * future calls to Tcl_GetCommandName. * * Side effects: * If a command named "cmdName" already exists for interp, it is - * first deleted. Then the new command is created from the arguments. - * [***] (See below for exception). + * first deleted. Then the new command is created from the arguments. * * In the future, during bytecode evaluation when "cmdName" is seen as * the name of a command by Tcl_EvalObj or Tcl_Eval, the object-based * Tcl_ObjCmdProc proc will be called. When the command is deleted from * the table, deleteProc will be called. See the manual entry for details @@ -2033,31 +2032,12 @@ hPtr = Tcl_CreateHashEntry(&nsPtr->cmdTable, tail, &isNew); TclInvalidateNsPath(nsPtr); if (!isNew) { cmdPtr = Tcl_GetHashValue(hPtr); - /* Command already exists. */ - - /* - * [***] This is wrong. See Tcl Bug a16752c252. - * However, this buggy behavior is kept under particular - * circumstances to accommodate deployed binaries of the - * "tclcompiler" program. http://sourceforge.net/projects/tclpro/ - * that crash if the bug is fixed. - */ - - if (cmdPtr->objProc == TclInvokeStringCommand - && cmdPtr->clientData == clientData - && cmdPtr->deleteData == clientData - && cmdPtr->deleteProc == deleteProc) { - cmdPtr->objProc = proc; - cmdPtr->objClientData = clientData; - return (Tcl_Command) cmdPtr; - } - - /* - * Otherwise, we delete the old command. Be careful to preserve any + /* + * Command already exists; delete it. Be careful to preserve any * existing import links so we can restore them down below. That way, * you can redefine a command and its import status will remain * intact. */ Index: generic/tclExecute.c ================================================================== --- generic/tclExecute.c +++ generic/tclExecute.c @@ -2309,11 +2309,10 @@ * Change the global data to point to the new stack. */ initCatchTop += moved; catchTop += moved; - bcFramePtr = (CmdFrame *) (initCatchTop + codePtr->maxExceptDepth + 1); initTosPtr += moved; tosPtr += moved; esPtr = iPtr->execEnvPtr->execStackPtr; } Index: library/tm.tcl ================================================================== --- library/tm.tcl +++ library/tm.tcl @@ -246,19 +246,10 @@ # Ignore everything where the version part is # not acceptable to "package vcompare". continue } - if {[package ifneeded $pkgname $pkgversion] ne {}} { - # There's already a provide script registered for - # this version of this package. Since all units of - # code claiming to be the same version of the same - # package ought to be identical, just stick with - # the one we already have. - continue - } - # We have found a candidate, generate a "provide # script" for it, and remember it. Note that we # are using ::list to do this; locally [list] # means something else without the namespace # specifier.