summaryrefslogtreecommitdiffstats
path: root/generic/tclAssembly.c
Commit message (Collapse)AuthorAgeFilesLines
* Added compilation of [array exists], [array set] and [array unset]. Fixed a ↵merge_to_trunkdkf2012-11-051-0/+4
| | | | whole bunch of issues with opcode issuing that were causing problems with stack depth calculations.
* Added compilation of [string last] and improved the compilation of [string ↵dkf2012-11-031-4/+6
| | | | range]. This in turn enables compilation of [namespace qualifiers] and [namespace tail] (also done).
* Added compilation of [info object isa object] (i.e., object verification).dkf2012-11-031-0/+1
|
* Added more TclOO introspection bytecodes ([info object class], [info object ↵dkf2012-11-021-0/+2
| | | | namespace]). Also moved TclOO-in-8.6 to using the main Tcl internal ensemble builder.
* Added compilation of [tailcall]. Not a particularly efficient compilation ↵dkf2012-11-011-3/+3
| | | | though; it does not detect tailcall-of-self as a special case.
* Added compilation of [dict create] and [dict merge].dkf2012-11-011-6/+7
|
* Added [dict exists] compilation; implementation is 95% shared with [dict get].dkf2012-10-301-0/+1
|
* Compilation of [string first] and [string range] (with constant indices).dkf2012-10-301-4/+6
|
* Added compilation of simplest practical case of [string map].dkf2012-10-291-4/+6
|
* Working towards a BCCed [yield]; this doesn't work right now.dkf2012-10-261-4/+5
|
* Compile [namespace which -command]; big performance saving in some contexts.dkf2012-10-261-1/+3
|
* yet another small introspector: [self]dkf2012-10-191-0/+1
|
* merge trunkdkf2012-08-041-4/+4
|\
| * NRInterpCoroutine -> TclNRInterpCoroutinejan.nijtmans2012-07-021-3/+3
| | | | | | | | make NRCommand static make TalInstructionTable static const
| * make some more internal tables constjan.nijtmans2012-04-231-1/+1
| |
* | Compilation of misc info sometimes used in high-performance code.dkf2012-03-041-1/+8
|/
* Add the other instructions to the assembler's nous.dkf_dict_with_compileddkf2011-10-061-0/+2
|
* Add assembler support for the new INST that I think has a stable interface.dkf2011-10-031-0/+1
|
* * generic/tclAssemnbly.c: Plug another memory leak. [Bug 3384840]Kevin B Kenny2011-08-061-0/+29
| | | | * generic/tclStrToD.c: Plug another memory leak. [Bug 3386975]
* Plug another memory leak. [Bug 3384840]Kevin B Kenny2011-08-061-6/+15
|
* Plug another memory leak. [Bug 3384840]Kevin B Kenny2011-08-061-0/+7
|
* Use Tcl_PrintfObj to generate more (complex) error messages.dkf2011-08-051-5/+2
|
* Ensure that memory isn't leaked when an unknown instruction is encountered.dkf2011-08-051-108/+111
|
* More memleak plugging.dkf2011-08-041-15/+2
|
* [Bug 3384840]: Fix memory leaks in the assembler due to Tcl_Obj referencedkf2011-08-041-18/+4
| | | ownership error.
* platform portable type matching in debug printsdgp2011-07-121-2/+2
|
* * generic/tclAssembly.c (BBEmitInstInt1): Changed parameter Kevin B Kenny2011-03-131-2/+2
| | | | | | | | | | data types in an effort to silence a MSVC warning reported by Ashok P. Nadkarni. Unable to test, since both forms work on my machine in VC2005, 2008. 2010, in both release and debug builds. * tests/tclTest.c (TestdstringCmd): Restored MSVC buildability broken by [5574bdd262], which changed the effective return type of 'ckalloc' from 'char*' to 'void*'.
* Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-9/+9
| | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* Fix gcc warning: comparison between signed and unsigned integer expressionsjan.nijtmans2011-03-081-1/+1
|
* Make the assembler code more like Tcl code.dkf2011-03-081-1295/+1429
|
* stray ';'jan.nijtmans2011-03-071-1/+1
|
* * tclAssembly.c:Kevin B Kenny2010-12-161-89/+234
| | | | | | | * 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.
* * generic/tclAssembly.c:Kevin B Kenny2010-10-281-21/+395
| | | | * tests/assembly.test (assemble-31.*): Added jump tables.
* * tclAssembly.c:Kevin B Kenny2010-10-241-234/+342
| | | | | | | * 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.
* removed useless separation between tclAssembly.h and tclAssembly.cKevin B Kenny2010-10-231-2/+236
|
* Added catches. Still needs a lot of testing.Kevin B Kenny2010-10-061-346/+1208
|
* nop and regexpKevin B Kenny2010-10-021-0/+16
|
* added missing tests: nsupvar, variable, upvarKevin B Kenny2010-10-021-3/+3
|
* * generic/tclAssembly.c:Kevin B Kenny2010-10-021-0/+58
| | | | | | | | * 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.
* Added listIn, listNotIn, and dictGet.Kevin B Kenny2010-10-011-1/+18
|
* * tests/assemble.test: Added tryCvtToNumeric and several more listKevin B Kenny2010-09-301-1/+124
| | | | * generic/tclAssemble.c: operations.
* * tests/assemble.test: Completed conversion of tests to aKevin B Kenny2010-09-291-2/+37
| | | | | | * 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.
* * tests/assemble.test: Added more "white box" tests.Kevin B Kenny2010-09-281-116/+136
| | | | | | | | | | | | * 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.
* Merged from HEAD.Kevin B Kenny2010-09-271-1/+4
| | | | Also replaced a funky NRCallTEBC with the new call TclNRExecuteByteCode.
* * tests/assemble.test: Added more "white box" tests.Kevin B Kenny2010-09-271-16/+43
| | | | | | | | * 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.
* * tests/assemble.test: Added many new tests moving toward a moreKevin B Kenny2010-09-261-22/+61
| | | | | | | | | | 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.
* added more tests; fixed a bug in initialization of BasicBlock objKevin B Kenny2010-09-251-0/+10
|
* * tclAssembly.c: Massive refactoring of the assemblerKevin B Kenny2010-09-251-628/+1196
| | | | | | | | | * 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.
* initial commit of Ozgur Dogan Ugurlu's (SF user:dogeen) assembler for the ↵Kevin B Kenny2010-09-211-0/+1537
Tcl bytecode language