summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.c
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclCompExpr.c: changed INST_STREQ -> INST_STR_EQ,hobbs2000-05-261-145/+157
| | | | | | | | | | | | | | | INST_STRNEQ -> INST_STR_NEQ * generic/tclCompile.c: added streq, strneq, strcmp, strlen & strmatch to the compiled stats instructionTable * generic/tclCompile.h: added instructions INST_STR_CMP, INST_STR_INDEX, INST_STR_MATCH * generic/tclCompCmds.c: added byte compiler support for [string compare|match|index]. * generic/tclExecute.c: Changed INST_STR_(N)EQ to return an Int object and not bother trying to reuse the top stack object. Added INST_STR_CMP, INST_STR_INDEX, INST_STR_MATCH bytecode ops. Extended evalstats output info with Tcl_IsShared stat info.
* * generic/tclCompile.c (TclCleanupByteCode): made ByteCode cleanuphobbs2000-03-301-2/+19
| | | | | | | | more aware of TCL_BYTECODE_PRECOMPILED flagged structs (gen'd by tbcload), to correctly clean them up. * generic/tclClock.c (FormatClock): moved check for empty format earlier, commented 0 result return value
* * tests/var.test:hobbs1999-12-121-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCompile.c: fixed problem where setting to {} array would intermittently not work. (Fontaine) [Bug: 3339] * generic/tclCmdMZ.c: * generic/tclExecute.c: optimized INST_TRY_CVT_TO_NUMERIC to recognize boolean objects. (Spjuth) [Bug: 2815] * tests/info.test: * tests/parseOld.test: * generic/tclCmdAH.c: * generic/tclProc.c: changed Tcl_UplevelObjCmd (uplevel) and Tcl_EvalObjCmd (eval) to use TCL_EVAL_DIRECT in the single arg case as well, to take advantage of potential pure list input optimization. This means that it won't get byte compiled though, which should be acceptable. * generic/tclBasic.c: made Tcl_EvalObjEx pure list object aware in the TCL_EVAL_DIRECT case for efficiency. * generic/tclUtil.c: made Tcl_ConcatObj pure list object aware, and return a list object in that case [Bug: 2098 2257] * generic/tclMain.c: changed Tcl_Main to not constantly reuse the commandPtr object (interactive case) as it could be shared. (Fellows)
* * tests/expr-old.test:hobbs1999-12-041-129/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tests/parseExpr.test: * tests/string.test: * generic/tclGet.c: * generic/tclInt.h: * generic/tclObj.c: * generic/tclParseExpr.c: * generic/tclUtil.c: * generic/tclExecute.c: added TclCheckBadOctal routine to enhance error message checking for when users use invalid octal numbers (like 08), as well as replumbed the Expr*Funcs with a new VerifyExprObjType to simplify type handling. * tests/expr.test: * generic/tclCompile.c: fixed 'bad code length' error for 'expr + {[incr]}' case, with new test case [Bug: 3736] and seg fault on 'expr + {[error]}' (different cause) that was caused by a correct optimization that didn't correctly track how it was modifying the source string in the opt. The optimization was removed, which means that: expr 1 + {[string length abc]} will be not be compiled inline as before, but this should be written: expr {1 + [string length abc]} which will be compiled inline for speed. This prevents expr 1 + {[mindless error]} from seg faulting, and only affects optimizations for degenerate cases [Bug: 3737]
* * unix/tclUnixNotfy.c: fixed event/io threading problems byhobbs1999-10-211-5/+1
| | | | | | | | | | | | | | | | | | | | making triggerPipe non-blocking * library/tcltest1.0/tcltest.tcl: * generic/tclThreadTest.c: fixed mem leaks in threads * generic/tclResult.c: fixed Tcl_AppendResultVA so it only iterates once over the va_list (avoiding a memcpy of it, which is not portable). * generic/regc_color.c: fixed mem leak and assertion, from HS * generic/tclCompile.c: removed savedChar trick that appeared to be causing a segv when the literal table was released * tests/string.test: * generic/tclCmdMZ.c: fixed [string index] to return ByteArrayObj when indexing into one (test case string-5.16) [Bug: 2871]
* 1999-08-18 Jeff Hobbs <hobbs@scriptics.com>hobbs1999-08-191-5/+6
| | | | | | | | | | | | | | * doc/OpenFileChnl.3: * doc/file.n: * tests/cmdAH.test: * tclIO.c: * tclCmdAH.c: added "file channels ?pattern?" tcl command, with associated Tcl_GetChannelNames and Tcl_GetChannelNamesEx public C APIs (added to tcl.decls as well), with docs and tests. * generic/tclCompile.c: add TCL_TOKEN_VARIABLE to the part types that cause differed compilation for exprs, to correct the expr double-evaluation problem for vars. Added test cases.
* * generic/tclInt.h:stanton1999-04-221-31/+80
| | | | | | | | | | | * generic/tclInt.decls: * generic/tclCompile.c: Added TclSetByteCodeFromAny that takes a hook procedure to invoke after compilation but before the byte codes are emitted. This makes it possible to do postprocessing on the compiled byte codes before the ByteCode is generated. * generic/tclLiteral.c: Added TclHideLiteral and TclAddLiteralObj to make it possible to create local unshared literal objects.
* merged tcl 8.1 branch back into the main trunkstanton1999-04-161-6418/+1779
|
* * generic/tclProc.c:stanton1999-02-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | * generic/tclNamesp.c: * generic/tclInt.h: * generic/tclCmdIL.c: * generic/tclBasic.c: * generic/tclVar.c: Applied patch from Viktor Dukhovni to rationalize TCL_LEAVE_ERR_MSG behavior when creating variables. * generic/tclVar.c: Fixed bug in namespace tail computation. Fixed bug where upvar could resurrect a namespace variable whose namespace had been deleted. * generic/tclCompile.c (TclCompileExprCmd): Eliminated yet another bogus optimization in expression compilation. * generic/tclCompile.c (CompileExprWord): Fixed exception stack overflow bug caused by missing statement. [Bug: 928] * generic/tclIOCmd.c: * generic/tclBasic.c: Objectified the "open" command. [Bug: 1113]
* * generic/tclCompile.c (CompileExprWord): Fixed exception stackstanton1999-02-021-2/+4
| | | | overflow bug caused by missing statement. [Bug: 928]
* Replaced SCCS strings, fixed binary filescore_8_0_3stanton1998-09-141-1/+1
|
* added TclInitCompiledLocalsstanton1998-08-071-91/+128
| | | | deferred resolver caching code to procedure invocation time
* lintstanton1998-07-241-3/+3
|
* Updated core w/ Micheals latest changes.surles1998-07-241-6/+14
|
* Merged changes between child workspace "/home/welch/ws/tcl8.0.3i" andwelch1998-07-061-2/+84
| | | | parent workspace "/home/welch/ws/tcl8.0.3".
* Merged changes between child workspace "/home/escoffon/ws/tcl8.0" andescoffon1998-07-011-17/+169
| | | | parent workspace "/ws/tcl8.0".
* Fixed IsLocalScalarwelch1998-06-291-1/+8
|
* catch didn't compile non-local variables correctlystanton1998-06-251-38/+49
|
* added fix for foreach compile proc so it handles non-local names correctlystanton1998-06-181-30/+51
| | | | | fixed compile procs so they no longer corrupt the exception stack don't inline expressions when it is unsafe to do so
* - Added initialization of the flags field in ByteCodeescoffon1998-06-101-0/+26
| | | | - Added the TclGetInstructionTable procedure so that the table can be accessed
* Initial revisionrjohnson1998-03-261-0/+7745