| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
* assemble.test: Reworked beginCatch/endCatch handling to
enforce the more severe (but more correct) restrictions on catch
handling that appeared in the discussion of [Bug 3098302] and in
tcl-core traffic beginning about 2010-10-29.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* tests/assembly.test (assemble-31.*): Added jump tables.
|
|
|
|
|
|
|
| |
* assembly.test (assemble-17.15): Reworked branch handling so that
forward branches can use jump1 (jumpTrue1, jumpFalse1). Added test
cases that the forward branches will expand to jump4, jumpTrue4,
jumpFalse4 when needed.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
Also replaced a funky NRCallTEBC with the new call TclNRExecuteByteCode.
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
ASCII.
Needed for [FRQ 491789]: setargv() doesn't support a unicode cmdline
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
features to genStubs.tcl. Make the "generic"
argument in the *.decls files optional
(no change to any tcl*Decls.h files)
This allows genStubs.tcl to generate the ttk stub files as well,
while keeping full compatibility with existing *.decls files.
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
Typo in rules.vc
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
| |
follow-up:
move stub entry back to original location.
|
| |
|
|
|
|
| |
3009403]: Signature of Tcl_GetHashKey, Tcl_(Create|Find)HashEntry
|
|
|
|
| |
Use void (*reserved$i)(void) = 0 instead of void *reserved$i = NULL for unused stub entries, in case pointer-to-function and pointer-to-object are different sizes.
|
|
|
|
|
|
| |
(TraceVariableObjCmd): [Patch 3048354]: Use memcpy() instead of
strcpy() to avoid buffer overflow; we have the correct length of data
to copy anyway since we've just allocated the target buffer.
|
|
|
|
| |
remove unneeded ifdeffery and put C++ guard around stubs pointer definition.
|
|
|
|
|
|
| |
* generic/tclExecute.c: errors early on, so that errorInfo
* generic/tclInt.h: contains the proper info [Bug 3047235]
* generic/tclNamesp.c:
|
|
|
|
| |
the body of a non-bc'ed [try], #3046594
|
|
|
|
|
|
|
|
|
| |
* 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:
|
|
|
|
|
| |
handling of passing the wrong number of arguments to [apply] somewhat
less verbose when a lambda term is present.
|
| |
|