| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdIL.c: update): a saner NRE.
* generic/tclCompExpr.c:
* generic/tclCompile.c: This makes TclNRExecuteByteCode
* generic/tclCompile.h: (ex TEBC) to be a normal NRE
* generic/tclExecute.c: citizen: it loses its special status.
* generic/tclInt.decls: The logic flow within the BC engine is
* generic/tclInt.h: simplified considerably.
* generic/tclIntDecls.h:
* generic/tclObj.c:
* generic/tclProc.c:
* generic/tclTest.c:
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: (a) fix #3047235
* generic/tclCompile.h: (b) enable fix for #3046594
* generic/tclExecute.c: (c) enable recursive tailcalls
* generic/tclInt.h:
* generic/tclNamesp.c:
* tests/tailcall.test:
|
|
|
|
|
|
| |
* generic/tclCompile.c: mechanism to avoid shimmering of
* generic/tclCompile.h: command names.
* generic/tclLiteral.c:
|
| |
|
|
|
|
| |
Split the [switch] compiler for sanity's sake.
|
| |
|
|
|
|
|
| |
* generic/tclExecute.c: [Bug 2910748]
* tests/nre.test:
|
|
|
|
|
|
|
| |
* generic/tclCompile.h: deletion, [Bug 2724403]. Added a test
* generic/tclNamesp.c: for this leak, and also a test for
* tests/coroutine.test: leaks on namespace deletion.
* tests/namespace.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBasic.c: compiler routine for the [subst] command.
* generic/tclCmdMZ.c: This is a partial solution to the need to
* generic/tclCompile.c: NR-enable [subst] since bytecode execution is
* generic/tclCompile.h: already NR-enabled. [Bug 2314561] Two new
* generic/tclExecute.c: bytecode instructions, INST_NOP and
* generic/tclInt.h: INST_RETURN_CODE_BRANCH were added to support
* generic/tclParse.c: the new routine. INST_RETURN_CODE_BRANCH is
* tests/basic.test: likely to be useful in any future effort to
* tests/info.test: add a bytecode compiler routine for [try].
* tests/parse.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tcl_EvalEx, TclEvalEx, TclAdvanceContinuations, TclNREvalObjEx):
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines):
* generic/tclCompCmds.c (*):
* generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv,
TclFreeCompileEnv, TclCompileScript, TclCompileTokens):
* generic/tclCompile.h (CompileEnv):
* generic/tclInt.h (ContLineLoc, Interp):
* generic/tclObj.c (ThreadSpecificData, ContLineLocFree,
TclThreadFinalizeObjects, TclInitObjSubsystem,
TclContinuationsEnter, TclContinuationsEnterDerived,
TclContinuationsCopy, TclContinuationsGet, TclFreeObj):
* generic/tclParse.c (TclSubstTokens, Tcl_SubstObj):
* generic/tclProc.c (TclCreateProc):
* generic/tclVar.c (TclPtrSetVar):
* tests/info.test (info-30.0-24):
Extended the parser, compiler, and execution engine with code and
attendant data structures tracking the position of continuation
lines which are not visible in the resulting script Tcl_Obj*'s, to
properly account for them while counting lines for #280.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TclCleanupByteCode, TclCompileScript):
* generic/tclExecute.c (TclCompileObj, TclExecuteByteCode):
* tclCompile.h (ExtCmdLoc):
* tclInt.h (ExtIndex, CFWordBC, CmdFrame):
* tclBasic.c (DeleteInterpProc, TclArgumentBCEnter,
TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT,
RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd):
* generic/tclCmdAH.c (TclNRForObjCmd, TclNRForIterCallback,
ForNextCallback):
* generic/tclCmdMZ.c (TclNRWhileObjCmd):
Extended the bytecode compiler initialization to recognize the
compilation of whole files (NRE enabled 'source' command) and
switch to the counting of absolute lines in that case.
Further extended the bytecode compiler to track the start line in
the generated information, and modified the bytecode execution to
recompile an object if the location as per the calling context
doesn't match the location saved in the bytecode. This part could
be optimized more by using more memory to keep all possibilities
which occur around, or by just adjusting the location information
instead of a total recompile.
Reworked the handling of literal command arguments in bytecode to
be saved (compiler) and used (execution) per command (See the
TCL_INVOKE_STK* instructions), and not per the whole bytecode.
This, and the previous change remove the problems with location
data caused by literal sharing (across whole files, but also proc
bodies). Simplified the associated datastructures (ExtIndex is
gone, as is the function EnterCmdWordIndex).
The last change causes the hashtable 'lineLABCPtr' to be state
which has to be kept per coroutine, like the CmdFrame stack.
Reworked the coroutine support code to create, delete and switch
the information as needed. Further reworked the tailcall command
as well, it has to pop its own arguments when run in a bytecode
context to keep a proper stack in 'lineLABCPtr'.
Fixed the mishandling of line information in the NRE-enabled 'for'
and 'while' commands introduced when both were made to share their
iteration callbacks without taking into account that the loop body
is found in different words of the command. Introduced a separate
data structure to hold all the callback information, as we went
over the limit of 4 direct client-data values for NRE callbacks.
The above fixes [Bug 1605269].
|
|
|
|
|
| |
* generic/tclCompile.h: stack: 200 words (previously was 2000,
* generic/tclExecute.c: the same as interps)
|
|
|
|
| |
don't use CONST84/CONST86 in internal header files
|
|
|
|
|
| |
{unix win} in *.decls is equivalent to {generic}
tclGetDate.y, tclDate.c: single internal const decoration
|
|
|
|
| |
Eliminate some -Wstrings-write warnings
|
|
|
|
| |
broken since 8.4 and no-one complained about it.
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c: to simply be "const", not CONST86.
* generic/tclCmdAH.c: whitespace.
* generic/tclCmdIL.c: Uninitialized variable warning.
* generic/tclTest.c: const correctness warning.
|
| |
|
|
|
|
|
| |
in stead modify two macro's in tclCompile.h with the same affect, but
now without polluting C-code with type casts.
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: of TclCreateAuxData and
* generic/tclCompile.c TclRegisterAuxDataType and the return
* generic/tclCompile.h values of TclGetAuxDataType and
* generic/tclExecute.c TclGetInstructionTable
* ChangeLog
* generic/tclIntDecls.h: regenerated
This change complies with TIP #27 (even though it only
involves internal function, so this is not even necessary).
|
|
|
|
|
|
|
|
|
| |
recursion.
* generic/tclBasic.c:
* generic/tclCompile.h:
* generic/tclExecute.c (INST_EVAL_STK): fix for [Bug 2102930],
wrong numLevels when evaling a canonical list.
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: commands (in tcl::unsupported).
* generic/tclCompile.h:
* generic/tclExecute.c:
* generic/tclInt.h:
* tests/unsupported.test:
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclProc.c (TclNRInterpProcCore, InterpProcNR2): for NRE.
[Bug 2017160]
* generic/tclBasic.c (TclDTraceInfo): add two extra arguments to
* generic/tclCompile.h: DTrace 'info' probes for tclOO
* generic/tclDTrace.d: method & class/object info.
* generic/tclCompile.h: add support for debug logging of DTrace
* generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does
_not_ require a platform with DTrace).
|
|
|
|
|
| |
* generic/tclCompile.h:
* generic/tclExecute.c:
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.h: that shares the implementation with
* generic/tclExecute.c: tailcall. Fixed a segfault in
* generic/tclInt.h: tailcalls. Tests added.
* generic/tclInterp.c:
* generic/tclNamesp.c:
* tests/unsupported.test:
|
|
|
|
|
|
|
| |
* generic/tclCompile.h:
* generic/tclExecute.c:
* generic/tclTest.c:
* tests/NRE.test:
|
| |
|
|
|
|
| |
* generic/tclCompile.h: static, and ansified.
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.c: for #280 to fix the abysmal performance
* generic/tclCompile.h: for deep recursion, replaced the linear
* generic/tclExecute.c: search through the whole stack with
* generic/tclInt.h: another hashtable and simplified the data
structure used by the compiler (array instead of hashtable).
Incidentially this also fixes the memory leak reported via [Bug
2024937].
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: frame), added the ability to track the
* generic/tclCompCmds.c: absolute location of literal procedure
* generic/tclCompile.c: arguments, and making this information
* generic/tclCompile.h: available to uplevel, eval, and
* generic/tclInterp.c: siblings. This allows proper tracking of
* generic/tclInt.h: absolute location through custom (Tcl-coded)
* generic/tclNamesp.c: control structures based on uplevel, etc.
* generic/tclProc.c:
* tests/info.test:
|
| |
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: non-body compiled scripts to access the
* generic/tclCompile.c: LVT (but not to extend it) and enable the
* generic/tclCompile.h: canonical list opt to sidestep the
* generic/tclExecute.c: compiler. This is [Patch 1973096]
* generic/tclProc.c:
* tests/uplevel.test:
|
| |
|
| |
|
|
|
|
|
|
|
| |
* generic/tclInt.decls: a MODULE_SCOPE routine declared in tclCompile.h.
* generic/tclIntDecls.h: make genstubs
* generic/tclStubInit.c:
|
|
|
|
|
|
| |
* generic/tclCompile.c: TclCompileExpr() to profit from better
* generic/tclCompile.h: literal management according to usage.
* generic/tclExecute.c:
|
|
|
|
|
| |
* generic/tclCompExpr.c: of struct TclOpCmdClientData to
* generic/tclCompile.h: accomodate C++ compilers [Bug 1855644]
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c, generic/tclInt.decls, generic/tclIntDecls.h:
* generic/tclRegexp.c, generic/tclRegexp.h: Add INST_REGEXP and fully
* generic/tclStubInit.c, generic/tclUtil.c: compiled [regexp] for the
* tests/regexpComp.test: [Bug 1830166] simple cases. Also
added TclReToGlob function to convert RE to glob patterns and use
these in the possible cases.
|
|
|
|
|
|
| |
* generic/tclInt.h: moved declaration of TclSetCmdNameObj from
tclCompile.h to tclInt.h, reverting linker [Bug 1821159] caused by
commit of 2007-10-11 (both I and gcc missed one dep).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.h: tracing of proc and command entry &
* generic/tclBasic.c: return, bytecode execution, object
* generic/tclExecute.c: allocation and more; with essentially
* generic/tclInt.h: zero cost when tracing is inactive;
* generic/tclObj.c: enable with --enable-dtrace configure
* generic/tclProc.c: arg (disabled by default, will only
* unix/Makefile.in: enable if DTrace is present).
* unix/configure.in: [Patch 1793984]
* macosx/GNUmakefile: enable DTrace support.
* macosx/Tcl-Common.xcconfig:
* macosx/Tcl.xcodeproj/project.pbxproj:
* unix/configure: autoconf-2.59
* unix/tclConfig.h.in: autoheader-2.59
|