| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* tests/fileName.test: [glob]. [Bug 2837800]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/NRE.3: New public routine Tcl_NRExprObj() permits
* generic/tcl.decls: extension commands to evaluate Tcl expressions
* generic/tclBasic.c: in NR-enabled command procedures.
* generic/tclCmdAH.c:
* generic/tclExecute.c:
* generic/tclInt.h:
* generic/tclObj.c:
* tests/expr.test:
* generic/tclDecls.h: make genstubs
* generic/tclStubInit.c:
|
|
|
|
|
|
|
|
| |
* generic/tclIORChan.c: reflective channels (TIP 219, method
* tests/ioCmd.test: 'read'), enabling handlers to signal EAGAIN to
indicate 'no data, but not at EOF either', and other system
errors. Updated documentation, extended testsuite (New test cases
iocmd*-23.{9,10}).
|
| |
|
|
|
|
|
| |
* tests/format.test: when format spec request large width
floating point values. Thanks to Clemens Misch. [Bug 2830354]
|
|
|
|
| |
::tcl::HistAdd changed
|
| |
|
|
|
|
|
|
|
| |
* generic/tclBasic.c (builtInCmds):
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd):
* tests/switch.test (switch-15.1):
Make non-bytecoded [switch] command aware of NRE. [Bug 2821401]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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].
|
|
|
|
|
| |
Tcl_SetChannelError requires a list. Added some tests to ensure error propagation
from the zlib library to the interp.
|
|
|
|
| |
format.
|
| |
|
| |
|
| |
|
|
|
|
| |
surrounding [testnrelevels]. Fixes up some -singleproc 1 failures.
|
| |
|
| |
|
|
|
|
| |
Correct duplicate test names.
|
|
|
|
| |
2811492]
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclProc.c: when compiling a proc survives too long. We
* tests/execute.test: only need it there long enough for the right
TclInitCompileEnv() call to re-stash it into envPtr->procPtr. Once
that is done, the CompileEnv controls. If we let the value of
iPtr->compiledProcPtr linger, though, then any other bytecode compile
operation that takes place will also have its CompileEnv initialized
with it, and that's not correct. The value is meant to control the
compile of the proc body only, not other compile tasks that happen
along. Thanks to Carlos Tasada for discovering and reporting the
problem. [Bug 2802881].
|
|
|
|
|
|
|
|
|
|
| |
* library/clock.tcl: Bison parser (needed a %pure-parser
* tests/clock.test: declaration to avoid static variables).
Discovered that the %pure-parser declaration
allowed for returning the Bison error message
to the Tcl caller in the event of a syntax
error, so did so.
* generic/tclDate.c: bison 2.3
|
|
|
|
| |
cases of [Bug 2798543].
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Added tests to check that the data provided by a POST is as stated in the content-length [Bug 2715421]
|
| |
|
|
|
|
|
|
|
|
| |
This patch makes use of the 8.6 zlib support to provide for
deflate and gzip support and handles the -channel option with
compression and chunked transfer encoding. For the -handler
option we currently disable HTTP/1.1 features as we cannot
properly pass the data through to the caller.
|
|
|
|
|
| |
This bug is caused by receiving a partial HTTP response line which caused premature
switching of the state in the client package before we received the whole line.
|
|
|
|
|
|
| |
* tests/fileName.test: the wrong results for both [file dirname] and
[file tail] on "path" arguments with the PATHFLAGS != 0 intrep and
with an empty string for the "joined-on" part. [Bug 2710920]
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* tests/tailcall.test: added tests to show that [tailcall] does
not currently always execute in constant space: interp-alias,
ns-imports and ensembles "leak" as of this commit.
|
|
|
|
| |
test was marked 'knownBug': unmark it.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
Tcl_AppendStringsToObj() no longer crashes when operating on a
pure unicode value. [Bug 2597185]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|