| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* generic/tclAssembly.h:
* tests/assemble.test: Added dictAppend, dictIncrImm, dictLappend,
dictSet, dictUnset, nsupvar, upvar, and variable. (Still need tests
for the last three.)
Merged changes from HEAD.
|
| |
|
|
|
|
| |
* generic/tclAssemble.c: operations.
|
|
|
|
|
|
| |
* generic/tclAssemble.c: "white box" structure that follows the
C code. Added missing safety checks on the operands of 'over' and
'reverse' so that negative operand counts don't smash the stack.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclAssembly.c: Added the error checking and reporting
for undefined labels. Revised code so that no pointers into the
bytecode sequence are held (because the sequence can move!),
that no Tcl_HashEntry pointers are held (because the hash table
doesn't guarantee their stability!) and to eliminate the BBHash
table, which is merely additional information indexed by jump
labels and can just as easily be held in the 'label' structure.
Renamed shared structures to CamelCase, and renamed 'label' to
JumpLabel because other types of labels may eventually be possible.
|
|
|
|
|
|
|
|
| |
* generic/tclAssembly.c: Fixed bugs exposed by the new tests.
(a) [eval] and [expr] had incorrect stack balance computed if
the arg was not a simple word. (b) [concat] accepted a negative
operand count. (c) [invoke] accepted a zero or negative operand
count. (d) more misspelt error messages.
|
|
|
|
|
|
|
|
|
|
| |
comprehensive test suite for the assembler.
* generic/tclAssembly.c: Fixed bugs exposed by the new tests:
(a) [bitnot] and [not] had incorrect operand counts. (b)
INST_CONCAT cannot concatenate zero objects. (c) misspelt error
messages. (d) the "assembly code" internal representation lacked
a duplicator, which caused double-frees of the Bytecode object
if assembly code ever was duplicated.
|
| |
|
|
|
|
|
|
|
|
|
| |
* tclAssembly.h: to use a Tcl-like syntax (and use
* tests/assemble.test: Tcl_ParseCommand to parse it). The
* tests/assemble1.bench: refactoring also ensures that
Tcl_Tokens in the assembler have string ranges inside the source
code, which allows for [eval] and [expr] assembler directives
that simply call TclCompileScript and TclCompileExpr recursively.
|
|
|
|
| |
Tcl bytecode language
|
|
|
|
|
| |
sure we never try to double zero repeatedly to get a buffer size. Also
added a check for sanity on the size of buffer being appended.
|
|
|
|
|
|
|
| |
* generic/tclVar.c: make the behaviour of lappend in bytecompiled
* tests/append.test: mode consistent with direct-eval and 'append'
* tests/appendComp.test: generally. Added tests (append*-9.*)
showing the difference.
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: it now schedules the command and returns
* generic/tclCmdMZ.c: TCL_RETURN. This fixes all issues with
* generic/tclExecute.c: [catch] and [try] - [Bug 3046594],
* generic/tclInt.h: [Bug 3047235] and [Bug 3048771]. Thanks
* generic/tclNamesp.c: dgp for exploring the dark corners.
* tests/tailcall.test: More thorough testing is required.
|
|
|
|
|
|
|
|
|
| |
* 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:
|
|
|
|
| |
working condition.
|
|
|
|
|
| |
handling of passing the wrong number of arguments to [apply] somewhat
less verbose when a lambda term is present.
|
| |
|
|
|
|
|
| |
* generic/tclIORTrans.c: in InvokeTclMethod and callers.
* tests/ioTrans.test:
|
| |
|
| |
|
|
|
|
| |
demonstrating the local hashtable deletion crash and fix.
|
|
|
|
|
| |
branch about [Bug 2933089]. Should not fail, and doesn't, after
updating the line numbers to the changed position.
|
|
|
|
|
| |
robust and (apparently) similar through focusing in on what is really being
tested
|
| |
|
| |
|
|
|
|
|
|
| |
sure that errors caused by an argument to an operator being outside
the domain of the operator all result in ::errorCode being ARITH
DOMAIN and not NONE.
|
| |
|
|
|
|
| |
args message.
|
|
|
|
| |
offsets no longer overestimated.
|
|
|
|
|
| |
Only depend on callerPtr chaining now.
Needed for upcoming coro patch.
|
| |
|
|
|
|
|
| |
Corrected error in handling of catch contexts to prevent crash with
chained handlers.
|
| |
|
| |
|
| |
|
|
|
|
| |
(dkf): EIAS violation in list-dict conversions.
|
|
|
|
|
|
| |
* generic/tclBasic.c (NRInterpCoroutine): Corrected handling of
* tests/coroutine.test (coroutine-6.4): arguments to deal with
trickier cases.
|
|
|
|
| |
check that only 0/1 allowed
|
|
|
|
|
|
|
|
| |
not result in a *guaranteed* push of a Tcl_Obj on the stack, we must
push an empty object. Otherwise it is possible to get to a 'concat1'
or 'done' without enough values on the stack, resulting in a crash.
Thanks to Joe Mistachkin for identifying a script that could trigger
this case.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclDecls.h: to export Tcl_LoadFile, Tcl_FindSymbol,
* generic/tclIOUtil.c: and Tcl_FSUnloadFile to the public API.
* generic/tclInt.h:
* generic/tclLoad.c:
* generic/tclLoadNone.c:
* generic/tclStubInit.c:
* tests/fileSystem.test:
* tests/load.test:
* tests/unload.test:
* unix/tclLoadDl.c:
* unix/tclLoadDyld.c:
* unix/tclLoadNext.c:
* unix/tclLoadOSF.c:
* unix/tclLoadShl.c:
* unix/tclUnixPipe.c:
* win/Makefile.in:
* win/tclWinLoad.c:
|
|
|
|
|
|
| |
* tests/registry.test: bugs resulting from the recent commits
* win/tclWinReg.c: of changes in support of the referenced
TIP.
|
|
|
|
|
|
| |
Revised test cases, making sure that abbreviated
codes are checked resulting in an error, and
checking for the exact error message.
|
|
|
|
|
|
| |
* win/tclWinReg.c: [Patch 2960976]: Apply patch from Damon Courtney to
* tests/registry.test: allow the registry command to be told to work
with both 32-bit and 64-bit registries.
|
|
|
|
| |
* tests/result.test: that it rejects illegal non-list values.
|