| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdIL.c:
* generic/tclCompile.c:
* generic/tclExecute.c:
* generic/tclHash.c:
* generic/tclIOUtil.c:
* generic/tclVar.c:
* generic/tclBasic.c: Silence compiler warnings about ClientData.
* generic/tclProc.c:
* generic/tclScan.c: Typo in ACCEPT_NAN configuration.
* generic/tclStrToD.c: Set floating point control register on
MIPS systems so that the gradual underflow expected by Tcl is
in effect. [Bug 2819200]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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].
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
a table of static constants in the lookup table for exponent operator
computations that fit in a 64 bit integer result.
|
| | |
| | |
| | |
| | | |
logic of the INST_EXPON instruction to fix [Bug 2798543].
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclCompile.h: stack: 200 words (previously was 2000,
* generic/tclExecute.c: the same as interps)
|
| | |
| | |
| | |
| | | |
[string repeat]. [Bug 2582327]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdAH.c: Tailcalls now perform properly even from
* generic/tclExecute.c: within [eval]ed scripts.
* generic/tclInt.h: More tests missing, as well as proper
exploration and testing of the interaction with "redirectors" like
interp-alias (suspect that it does not happen in constant space)
and pure-eval commands.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* tests/nre.test: the failing assertion that was disabled on
2008-12-18: the assertion is correct, the fault was in the
management of expansions.
|
| | |
| | |
| | |
| | | |
* tests/tailcall.test: from within a compiled [eval] body.
|
| | |
| | |
| | |
| | | |
the max length of a Tcl value. [Bug 2669109]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclInt.h:
* generic/tclBasic.c:
* generic/tclExecute.c:
* generic/tclNamesp.c (Tcl_PopCallFrame): Rewritten tailcall
implementation, ::unsupported::atProcExit is (temporarily?)
gone. The new approach is much simpler, and also closer to being
correct. This commit fixes [Bug 2649975] and [Bug 2695587].
* tests/coroutine.test: Moved the tests to their own files,
* tests/tailcall.test: removed the unsupported.test. Added
* tests/unsupported.test: tests for the fixed bugs.
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclExecute.c: optimizations for the tclByteArrayType, stop
having the callers do them.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
- some internal const decorations
- spacing
|
| | | |
|
| | |
| | |
| | |
| | | |
etc.)
|
| | |
| | |
| | |
| | | |
[Bug 2415422].
|
| | |
| | |
| | |
| | | |
use TclNewLiteralStringObj()
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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.
|
| | |
| | |
| | |
| | |
| | | |
const tables. No functional
or API change.
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdIL.c: Fix write to unallocated memory whenever
[lrepeat] returns an empty list.
|
| | |
| | |
| | |
| | |
| | | |
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).
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclInt.h (TCL_CT_ASSERT): new compile-time assertions,
adapted from www.pixelbeat.org/programming/gcc/static_assert.html
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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/tclExecute.c (CompileExprObj): fix a perf bug (found by
Alex Ferrieux) where some variables in the LVT where not being
accessed by index. Fix missing localCache management in compiled
expressions found while analyzing the bug.
|
| | |
| | |
| | |
| | |
| | | |
* tests/unsupported.test: restore the execEnv's bottomPtr, fix
for [Bug 2093188].
|
| | |
| | |
| | |
| | | |
COROUTINE_CANT_YIELD, COROUTINE_ILLEGAL_YIELD.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdAH.c: commands (in tcl::unsupported).
* generic/tclCompile.h:
* generic/tclExecute.c:
* generic/tclInt.h:
* tests/unsupported.test:
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclCompile.h:
* generic/tclExecute.c:
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
line
generic/tclConfig.c make the internal cfg variable const.
generic/tclTrace.c add a "const" keyword, allowing the "traceSubCmds[]"
array to be placed by the C- compiler in a code segment
in stead of a data segment
Those harmless changes are as a preparation for a future change proposal.
Unfortunately, my (Eclipse) editor automatically removes spaces at the
end of every line. Creating a patch for this proposal should not contain
unrelated harmless changes, so therefore this separate check-in. No
change in functionality. No risk.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclExecute.c: Tcl_EvalEx [Bug 2017946]
* generic/tclInt.h:
|
| | |
| | |
| | |
| | | |
* tests/execute.test:
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
* tests/execute.test: stack trace when a compile epoch bump triggers
fallback to direct evaluation of commands in a compiled script.
[Bug 2037338]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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:
|
| | |
| | |
| | |
| | |
| | |
| | | |
unrefernced everywhere but in macosx/Tcl.xcodeproj/project.pbxproj: some
knowledgeable maintainer please remove tclNRE.h after making sure it
doesn't break the build on macosx
|