summaryrefslogtreecommitdiffstats
path: root/generic/tclEnsemble.c
Commit message (Collapse)AuthorAgeFilesLines
* Repair some memory corruption problems in EnsembleCmdRep.dgp2016-07-081-3/+7
|\
| * Missed a cleanup line, which created a memleak.dgp2016-07-071-0/+1
| |
| * To use a Tcl_Command token [aka (Command *)] for epoch checking, we must notdgp2016-07-071-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | permit it to be freed while we hold it or else it could be mistaken for another token allocated later that just happens to reside at the same address. (Command *) preservation machinery already exists, just need to use it. An extension facing the same problem might have to rely on command delete traces. Earlier revisions used (Namespace *) lifetime to achieve the same results, but that's really an indirect (possibly non-robust) path to achieving the proper goal. Valgrind is happy now.
* | Create and use a utility Tcl_NRPostProc when decr ref count of values isdgp2016-07-061-15/+2
| | | | | | all that is needed.
* | [bd7f17bce8] Revise ensemble dispatch to call TclNREvalObjv() which supportsdgp2016-07-061-16/+10
| | | | | | the TCL_EVAL_INVOKE flag that is needed.
* | New tests to demo the remaining flaw in ensemble dispatch revisions.dgp2016-07-051-1/+7
| | | | | | Itcl 4 also demonstrated these problems.
* | Fixup the ensemble rewrite conversions (merge fork)jan.nijtmans2016-07-051-6/+1
|\ \
| * | Fixup the ensemble rewrite conversions.dgp2016-07-041-6/+1
| | |
* | | typo and end-of-line spacingjan.nijtmans2016-07-041-5/+5
|/ /
* | Use conventional list operations for ensemble dispatch.dgp2016-07-031-34/+23
| |
* | [f961d7d1dd] Repair usage message for ensemble parameters with spaces.dgp2016-07-021-10/+3
|/
* The EnsembleCmdRep struct that is the internal rep for caching ensembledgp2016-07-011-5/+21
| | | dispatches and spelling corrections can now be file static.
* [4402cfa58c] Rework the spell check machinery into something that will not bedgp2016-07-011-21/+165
| | | foiled by value sharing.
* Encapsulate the fetching of the ensemble rewrite root, used by [namespace].dgp2016-07-011-0/+34
|
* merge 8.6dgp2016-06-281-19/+3
|\
| * Adapt and tidy up the bug fix.dgp2016-05-241-34/+0
| |
| * Merge the bug fix and test case.dgp2016-05-241-1/+2
| |\
| | * Now fix the bug.dgp2016-05-241-2/+2
| | |
| | * New test namespace-53.11 demonstrates the bug.dgp2016-05-241-7/+1
| | |
| | * The handling of ensemble rewriting here is not right, but I've not yetdgp2016-05-241-0/+7
| | | | | | | | | | | | found the test case to demonstrate it. Checking in debugging code to spread to other dev platforms.
| * | Appears that the TclInitRewriteEnsemble() routine was created with an intentdgp2016-05-241-1/+18
| |/ | | | | to refactor, but never actually got used. Work on continuing that effort.
* | Don't see why the intrep should make and keep copies of things alreadydgp2016-05-121-27/+10
| | | | | | stored in the hash table.
* | The "ensembleCommand" Tcl_ObjType has no need for an UpdateString routine.dgp2016-05-121-31/+1
| | | | | | It is entirely a caching type. No "pure" value can exist.
* | Remove the nsPtr field from the EnsembleCmdRep struct. Cannot see anydgp2016-05-121-8/+1
|/ | | justification for keeping it (can get via token), and test suite doesn't care.
* [b9b2079e6d] Proposed fix. When a compileProc fails, it may have done andgp2016-03-101-0/+43
| | | | | arbitrary amount of partial work, which needs to be undone. When the exception handling machinery got its last big revision, the undoing of what it does was neglected. I think this patch gets it all, but more eyes would be good.
* Align comment. Remove some end-of-line spacing. No functional changes.jan.nijtmans2015-09-281-1/+1
|
* [e75fabac06] Teardown line information after failed ensemble subcommanddgp2014-08-011-0/+18
| | | | compile attempts. Copy/paste from CompileCmdCompileProc(). May be refactor opportunity here.
* Correction and commentary in the details of ensemble compiling.dgp2014-08-011-1/+17
|
* [6d2f249a01] Handle a failure to comprehend half-way through the compilation ↵dkf2014-05-111-7/+17
| | | | of a chain of compileable ensembles.
* Working towards better handling of stack balance with break and continue ↵dkf2013-10-081-3/+1
| | | | exceptions.
* more disabled code removaldgp2013-07-241-46/+0
|
* Factor out the call to a compileProc into one place used by both ensembledgp2013-07-171-7/+21
| | | subcommand compiles and toplevel command compiles in TclCompileScript.
* Simplify the ensemble subcommand compile. There's no need to bedgp2013-07-161-55/+15
| | | crafting synthetic Tcl_Parse and copying tokens. Some pointer shifts will do.
* Simplify arguments to TclContinuationsEnterDerived().dgp2013-07-161-6/+8
|
* Build CompileBasicNArgCommand on top of TclCompileInvocation.dgp2013-07-151-0/+10
|
* Have TclMakeEnsemble() set ENSEMBLE_COMPILE at creation, not as a separatedgp2013-07-111-8/+8
| | | epoch-bumping step.
* Revert the revised macros used in developing the new tests.dgp2013-07-111-2/+2
|
* Add tests for the SetLineInformation() calls in tclEnsemble.c, and fixdgp2013-07-111-6/+3
| | | the bugs around those calls exposed by the tests.
* merge trunkdgp2013-07-101-0/+16
|\
| * Fix for [86fb5ea28e]. Test will eventually merge in from tip280-test-coverage.dgp2013-07-101-0/+16
| |
* | First additional test. Remove dup macros in tclEnsemble.c.dgp2013-07-101-10/+0
|/
* New internal routine TclFetchLiteral() for better CompileEnv encapsulation.dgp2013-03-051-3/+3
|
* merge core-8-5-branchjan.nijtmans2013-01-311-7/+7
|
* Eliminate some unneeded usages of Tcl_SetResult, Tcl_AddObjErrorInfojan.nijtmans2013-01-251-1/+1
| | | Fix "make test-packages" on cygwin
* merge trunkdkf2013-01-111-2/+2
|\
| * Name functions according to 'what' instead of 'how' in the [tailcall]mig2013-01-111-2/+2
| | | | | | machinery, in view of making public some parts of it.
* | First attempt at fixing problems caused by [array set] inside [namespace eval],dkf2013-01-111-0/+14
|/ | | | | which caused partial bytecode generation followed by a reject which triggered the issuing of generic ensemble code with an extra push of the variable name at the start (which got the stack depth wrong).
* tailcall now running in a simpler model, with no eval-flags and no nre-stack ↵mig2013-01-101-2/+2
| | | | rewriting; yieldto also requires one fewer bounce. Mostly from mig-nre-mods
* Fix bad memory access problems found by Miguel Sofer when valgrinding.dkf2013-01-041-4/+9
|
* Add super-simple compiler to many ensemble subcommands to allow better codedkf2013-01-041-0/+336
| | | | | generation where we can detect that we're not in the WrongNumArgs case. The compiler just checks that the argument count is in the right range and issues a standard dispatch; that's enough to do an efficient job.