| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
calls at list creation (from 2 to 1), (b) reduce the cost of handling empty
lists (we now never create a list internal rep for them), (c) allow
refcounting of the list internal rep. The latter permits insuring that the
pointers returned by Tcl_ListObjGetElements remain valid even if the object
shimmers away from its original list type. This is [Patch 1158008]
|
|
|
|
| |
to flags. Should be perfectly backwards compatible.
|
|
|
|
| |
1084111] - thanks to Rolf Ade.
|
|
|
|
|
| |
* generic/tclExecute.c: multiple .c files into one common header where
* generic/tclVar.c: it is verifiably after tclConfig.h inclusion.
|
|
|
|
|
|
| |
relevant to users. [Patch 1056864]
Also patches to core to take advantage of this
Also other general cleaning up of Tcl_WrongNumArgs usage
|
|
|
|
| |
macros.
|
|
|
|
|
|
| |
causing a leak of Proc structures and failure of compile-12.1. Two
lines were 'zombies' from the previous way localVarNames
worked. Credit dgp for finding this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBinary.c:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclCompExpr.c:
* generic/tclDictObj.c:
* generic/tclEncoding.c:
* generic/tclExecute.c:
* generic/tclFCmd.c:
* generic/tclHistory.c:
* generic/tclIndexObj.c:
* generic/tclInterp.c:
* generic/tclIO.c:
* generic/tclIOCmd.c:
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclPkg.c:
* generic/tclResult.c:
* generic/tclScan.c:
* generic/tclTimer.c:
* generic/tclTrace.c:
* generic/tclUtil.c:
* generic/tclVar.c:
It is a poor practice to directly set or append to the value
of the objResult of an interp, because that value might be
shared, and in that circumstance a Tcl_Panic() will be the
result. Searched for example of this practice and replaced
with safer alternatives, often using the Tcl_AppendResult()
routine that dkf just rehabilitated.
|
| |
|
|
|
|
| |
as strings every time through. [Patch 1037357]
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
reference to the corresponding proc. The reference is now seen as
unnecessary, and it may cause leaking circular references under
some circumstances (see for example [Bug 994838]).
|
| |
|
|
|
|
|
| |
* generic/tclVar.c: using (ptrdiff_t) instead of (int) casting to
correct compiler warnings [Bug 961657], reported by Bob Techentin.
|
|
|
|
| |
Also added support for [FRQ 951168] but left that switched off by default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/namespace.test (namespace-17.10-12): reverted commit of
2004-05-23 and removed the tests, as it interferes with the
varname resolver and there are apps that break (AlphaTk). A fix
will have to wait for Tcl9.
* generic/tclVar.c: Caching of namespace variables disabled: no
simple way was found to avoid interfering with the resolver's idea
of variable existence. A cached varName may keep a variable's name
in the namespace's hash table, which is the resolver's criterion
for existence.
* tests/namespace.c (namespace-17.10): testing for interference
between varname caching and name resolver.
|
|
|
|
|
|
|
| |
insuring that no "zombie" variables are found.
* generic/tclVar.c (TclLookupSimpleVar): comments re [Bug 736729]
(predecessor of [Bug 959052]) removed.
* tests/namespace.test: added tests 17.10-12
|
|
|
|
|
|
|
|
| |
(in tcl8.4) exteriorisations of [Bug 736729] due to the use of
tclNsVarNameType obj types. Reenabling the use of this objType
("VAR ref absolute" benchmark down to 66 ms, from 230).
Added comments in TclLookupSimpleVar explaining my current
understanding of [Bug 736729].
|
|
|
|
|
| |
tclNsVarNameType objs is still disabled, pending resolution of
[Bug 736729].
|
|
|
|
|
|
|
|
| |
* doc/upvar.n:
* generic/tclVar.c (ObjMakeUpvar):
* tests/upvar.test (upvar-8.11):
* tests/var.test (var-3.11): Avoid creation of unusable variables:
[Bug 600812] [TIP 184].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h: Reworked the Tcl header files into a clean
* unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h
* win/tclWinInt.h: and every C source file should #include
* win/tclWinPort.h: at most one of those files to satisfy its
declaration needs. tclWinInt.h and tclWinPort.h also better organized
so that tclWinPort.h includes the Windows implementation of
cross-platform declarations, while tclWinInt.h makes declarations that
are available on Windows only.
* generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h
* generic/tclMath.h (removed): header file. The internal Tcl
* macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a
* win/tcl.dsp: #include <math.h> directly,
and file external to Tcl needing libm should do the same.
* win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file.
* win/makefile.bc (TCLOBJS): It's a vestige from matherr() days
* win/makefile.vc (TCLOBJS): gone by.
* win/tcl.dsp:
* win/tclWinMtherr.c (removed):
|
|
|
|
|
|
|
| |
to 'Tcl_Panic' (the function). The #define
of panic in tcl.h clearly states it is
deprecated in the comments.
[Patch 865264]
|
|
|
|
| |
LOOKUP_FOR_UPVAR and TCL_PARSE_PART1 (deprecated) [Bug 835020]
|
|
|
|
|
| |
without having to convert it to a list (though lists are still preferred.)
[Bug 759935]
|
| |
|
|
|
|
|
| |
disabling usage of tclNsVarNameType.
* tests/var.test (var-15.1): test for [Bug 735335]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c is defined on all platforms, even those where
* generic/tclPort.h TCL_WIDE_INT_IS_LONG is defined. Also made
the Tcl_Value struct have a wideValue field on all platforms. This is
a ***POTENTIAL INCOMPATIBILITY*** for TCL_WIDE_INT_IS_LONG platforms
because that struct changes size. This is the same TIP 72
incompatibility that was seen on other platforms at the 8.4.0 release,
when this change should have happened as well. [Bug 713562]
* generic/tclInt.h: New internal macros TclGetWide() and
TclGetLongFromWide() to deal with both forms of the "wideInt"
Tcl_ObjType, so that conditional TCL_WIDE_INT_IS_LONG code
is confined to the header file.
* generic/tclCmdAH.c: Replaced most coding that was conditional
* generic/tclCmdIL.c: on TCL_WIDE_INT_IS_LONG with code that
* generic/tclExecute.c: works across platforms, sometimes using
* generic/tclTest.c: the new macros above to do it.
* generic/tclUtil.c:
* generic/tclVar.c:
|
|
|
|
|
| |
* tests/var.test: fixing ObjMakeUpvar's lookup algorithm for the
created local variable, bugs #631741 and #696893.
|
|
|
|
| |
static declarations.
|
|
|
|
| |
* tests/var.test: [array names]. Added test. [Bug 624755]
|
|
|
|
| |
TCL_INTERP_DESTROYED flag when calling variable traces. [Tk Bug 605121]
|
|
|
|
| |
to dkf and dgp for the long and difficult discussion in the chat.
|
| |
|
|
|
|
| |
error return from TclGetFrame.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Concat.3: all remaining public interfaces of Tcl.
* doc/CrtCommand.3: Notably, the parser no longer writes on
* doc/CrtSlave.3: the string it is parsing, so it is no
* doc/CrtTrace.3: longer necessary for Tcl_Eval() to be
* doc/Eval.3: given a writable string. Also, the
* doc/ExprLong.3: refactoring of the Tcl_*Var* routines
* doc/LinkVar.3: by Miguel Sofer is included, so that the
* doc/ParseCmd.3: "part1" argument for them no longer needs
* doc/SetVar.3: to be writable either.
* doc/TraceVar.3:
* doc/UpVar.3: Compatibility support has been enhanced so
* generic/tcl.decls that a #define of USE_NON_CONST will remove
* generic/tcl.h all possible source incompatibilities with
* generic/tclBasic.c the 8.3 version of the header file(s).
* generic/tclCmdMZ.c The new #define of USE_COMPAT_CONST now does
* generic/tclCompCmds.c what USE_NON_CONST used to do -- disable
* generic/tclCompExpr.c only those new CONST's that introduce
* generic/tclCompile.c irreconcilable incompatibilities.
* generic/tclCompile.h
* generic/tclDecls.h Several bugs are also fixed by this patch.
* generic/tclEnv.c [Bugs 584051,580433] [Patches 585105,582429]
* generic/tclEvent.c
* generic/tclInt.decls
* generic/tclInt.h
* generic/tclIntDecls.h
* generic/tclInterp.c
* generic/tclLink.c
* generic/tclObj.c
* generic/tclParse.c
* generic/tclParseExpr.c
* generic/tclProc.c
* generic/tclTest.c
* generic/tclUtf.c
* generic/tclUtil.c
* generic/tclVar.c
* mac/tclMacTest.c
* tests/expr-old.test
* tests/parseExpr.test
* unix/tclUnixTest.c
* unix/tclXtTest.c
* win/tclWinTest.c
|
|
|
|
| |
comments.
|
|
|
|
|
| |
prevented the parens from being restored. also removed goto label
as it was not necessary.
|
| |
|
|
|
|
| |
inconsistent with tclInt.h
|
|
|
|
| |
and Tcl(Get|Set|Incr)ElementOfIndexedArray()
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pointers; definition of three new Tcl_Obj types to cache variable
name parsing and lookup for later reuse; modification of internal
functions to profit from the caching.
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclIntDecls.h:
* generic/tclNamesp.c: adding CONST qualifiers to variable names
passed to Tcl_FindNamespaceVar and to variable resolvers; adding
CONST qualifier to the 'msg' argument to TclLookupVar. Needed to
avoid code duplication in the new tclVar.c code.
* tests/set-old.test:
* tests/var.test: slight modification of error messages due to the
modifications in the tclVar.c code.
|