summaryrefslogtreecommitdiffstats
path: root/generic
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclInt.h (TclNRSwitchObjCmd):Kevin B Kenny2009-07-143-6/+40
| | | | | | | * generic/tclBasic.c (builtInCmds): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): * tests/switch.test (switch-15.1): Make non-bytecoded [switch] command aware of NRE. [Bug 2821401]
* * generic/tclCompile.c (TclInitCompileEnv, EnterCmdWordIndex,andreas_kupries2009-07-147-166/+374
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TclCleanupByteCode, TclCompileScript): * generic/tclExecute.c (TclCompileObj, TclExecuteByteCode): * tclCompile.h (ExtCmdLoc): * tclInt.h (ExtIndex, CFWordBC, CmdFrame): * tclBasic.c (DeleteInterpProc, TclArgumentBCEnter, TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT, RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd): * generic/tclCmdAH.c (TclNRForObjCmd, TclNRForIterCallback, ForNextCallback): * generic/tclCmdMZ.c (TclNRWhileObjCmd): Extended the bytecode compiler initialization to recognize the compilation of whole files (NRE enabled 'source' command) and switch to the counting of absolute lines in that case. Further extended the bytecode compiler to track the start line in the generated information, and modified the bytecode execution to recompile an object if the location as per the calling context doesn't match the location saved in the bytecode. This part could be optimized more by using more memory to keep all possibilities which occur around, or by just adjusting the location information instead of a total recompile. Reworked the handling of literal command arguments in bytecode to be saved (compiler) and used (execution) per command (See the TCL_INVOKE_STK* instructions), and not per the whole bytecode. This, and the previous change remove the problems with location data caused by literal sharing (across whole files, but also proc bodies). Simplified the associated datastructures (ExtIndex is gone, as is the function EnterCmdWordIndex). The last change causes the hashtable 'lineLABCPtr' to be state which has to be kept per coroutine, like the CmdFrame stack. Reworked the coroutine support code to create, delete and switch the information as needed. Further reworked the tailcall command as well, it has to pop its own arguments when run in a bytecode context to keep a proper stack in 'lineLABCPtr'. Fixed the mishandling of line information in the NRE-enabled 'for' and 'while' commands introduced when both were made to share their iteration callbacks without taking into account that the loop body is found in different words of the command. Introduced a separate data structure to hold all the callback information, as we went over the limit of 4 direct client-data values for NRE callbacks. The above fixes [Bug 1605269].
* Fix [Bug 2637173] by consolidating bytearray purity check.dkf2009-07-125-36/+47
|
* Reorganize method cache handling a bit to better support itcl nasty cases.dkf2009-07-123-30/+53
| | | | [Bug 1895546]
* tweaksdkf2009-07-111-5/+6
|
* ZlibTransformClose may be called with a NULL interpreter during finalization andpatthoyts2009-07-101-5/+13
| | | | | Tcl_SetChannelError requires a list. Added some tests to ensure error propagation from the zlib library to the interp.
* [Bug #2818131] Added tests and fixed a typo that broke zlib push for deflate ↵patthoyts2009-07-091-2/+2
| | | | format.
* Silence a signed/unsigned warning that annoys msvcpatthoyts2009-07-061-2/+2
|
* Make [zlib push] work with [fcopy].dkf2009-07-051-90/+145
|
* Cast wide integer to int conversion (silence msvc6 warning)patthoyts2009-07-011-3/+3
|
* s/Tcl_PanicEx/TclPanic/; improve clang assert Tcl_Panic macrologydas2009-06-301-3/+3
|
* * generic/tclInt.h: add assert macros for clang staticdas2009-06-304-4/+21
| | | | | | | | | * generic/tclPanic.c: analyzer and redefine Tcl_Panic to * generic/tclStubInit.c: assert after panic in clang PURIFY builds. * generic/tclCmdIL.c: add clang assert for false positive from static analyzer.
* regendkf2009-06-182-2/+13
|
* Apply patch from [Bug 988703]. Many thanks to Joe Mistachkin for development.dkf2009-06-185-11/+171
|
* Applied a patch by George Peter Staplin drastically reducing the ambition of ↵ferrieux2009-06-171-33/+65
| | | | [exit] wrt finalization, and thus solving many multi-thread teardown issues [Bugs 2001201, 486399, and possibly 597575, 990457, 1437595, 2750491].
* * generic/tclStringObj.c: sprintf() -> Tcl_ObjPrintf() conversion.dgp2009-06-151-5/+3
|
* * generic/tclCompile.c: The value stashed in iPtr->compiledProcPtrdgp2009-06-132-5/+3
| | | | | | | | | | | | | * generic/tclProc.c: when compiling a proc survives too long. We * tests/execute.test: only need it there long enough for the right TclInitCompileEnv() call to re-stash it into envPtr->procPtr. Once that is done, the CompileEnv controls. If we let the value of iPtr->compiledProcPtr linger, though, then any other bytecode compile operation that takes place will also have its CompileEnv initialized with it, and that's not correct. The value is meant to control the compile of the proc body only, not other compile tasks that happen along. Thanks to Carlos Tasada for discovering and reporting the problem. [Bug 2802881].
* * generic/tclStringObj.c: Revised [format] to not overflow thedgp2009-06-101-8/+69
| | | | | | | integer calculations computing the length of the %ll formats of really big integers. Also added protections so that [format]s that would produce results overflowing the maximum string length of Tcl values throw a normal Tcl error instead of a panic. [Bug 2801413]
* * generic/tclStringObj.c: Corrected failures to deal with thedgp2009-06-101-22/+10
| | | | | "pure unicode" representation of an empty string. Thanks to Julian Noble for reporting the problem. [Bug 2803109]
* * generic/tclGetDate.y: Fixed a thread safety bug in the generatedKevin B Kenny2009-06-092-280/+464
| | | | | | | | | | * library/clock.tcl: Bison parser (needed a %pure-parser * tests/clock.test: declaration to avoid static variables). Discovered that the %pure-parser declaration allowed for returning the Bison error message to the Tcl caller in the event of a syntax error, so did so. * generic/tclDate.c: bison 2.3
* fix signed vs unsigned comparison warningsdas2009-06-031-12/+12
|
* * generic/tclExecute.c: Replace dynamically-initialized table withdgp2009-06-021-44/+10
| | | | | a table of static constants in the lookup table for exponent operator computations that fit in a 64 bit integer result.
* * generic/tclExecute.c: Corrected implementations and selectiondgp2009-06-021-41/+63
| | | | logic of the INST_EXPON instruction to fix [Bug 2798543].
* fix TCL_COMPILE_DEBUG 64bit warningsdas2009-05-161-5/+5
|
* Added more introspection: ability to look up namespace of an object.dkf2009-05-151-1/+36
|
* Fix [Bug 2414858].dkf2009-05-083-3/+13
|
* * generic/tclObj.c (Tcl_GetCommandFromObj): fix for bug [2785893],Miguel Sofer2009-05-081-1/+2
| | | | | insure that a command in a deleted namespace cannot be found through a cached name.
* * generic/tclBasic.c: Let coroutines start with a much smallerMiguel Sofer2009-05-083-12/+16
| | | | | * generic/tclCompile.h: stack: 200 words (previously was 2000, * generic/tclExecute.c: the same as interps)
* * generic/tclCmdMZ.c: Improve overflow error message fromdgp2009-05-062-3/+6
| | | | [string repeat]. [Bug 2582327]
* Missed a spot.dkf2009-05-051-2/+4
|
* Stop deletion of support namespaces leading to a potential crash.dkf2009-05-042-11/+66
|
* * generic/tclBasic.c (TclObjInvoke): Make sure that a null objProcMiguel Sofer2009-04-301-2/+7
| | | | is not used, use Tcl_NRCallObjProc instead [Bug 2486550].
* Revert last commit which fails to build with msvc2005 and msvc6patthoyts2009-04-291-4/+4
|
* Fix [Bug 2651823].dkf2009-04-291-4/+4
|
* Reset internal INTERP_ALTERNATE_WRONG_ARGSnijtmans2009-04-272-4/+3
| | | | | flag inside the Tcl_WrongNumArgs function, so the caller no longer has to do the reset.
* Clarify the rules for resolution of what forwarded methods forward to.dkf2009-04-112-7/+27
|
* * macosx/tclMacOSXNotify.c: revise CoreFoundation notifier to allowdas2009-04-103-3/+18
| | | | | | | | | | | | | | | | | | * unix/tclUnixChan.c: embedding into applications that * unix/tclUnixEvent.c: already have a CFRunLoop running and want to run the tcl event loop via Tcl_ServiceModeHook(TCL_SERVICE_ALL). * macosx/tclMacOSXNotify.c: add CFRunLoop based Tcl_Sleep() and * unix/tclUnixChan.c: TclUnixWaitForFile() implementations * unix/tclUnixEvent.c: and disable select() based ones in CoreFoundation builds. * unix/tclUnixNotify.c: simplify, sync with tclMacOSXNotify.c. * generic/tclInt.decls: add TclMacOSXNotifierAddRunLoopMode() * generic/tclIntPlatDecls.h: internal API, regen. * generic/tclStubInit.c:
* * generic/tclStringObj.c: Correction so that value ofdgp2009-04-071-2/+2
| | | | TCL_GROWTH_MIN_ALLOC is everywhere expressed in bytes as comment claims.
* * generic/tclPathObj.c (TclPathPart): TclPathPart() was computingdgp2009-03-271-3/+29
| | | | | | * tests/fileName.test: the wrong results for both [file dirname] and [file tail] on "path" arguments with the PATHFLAGS != 0 intrep and with an empty string for the "joined-on" part. [Bug 2710920]
* Fix [Bug 2704302]dkf2009-03-241-14/+5
|
* Fix [Bug 2673163]dkf2009-03-242-11/+49
|
* * generic/tclBasic.c: NR-enable the handling of unknown commandsMiguel Sofer2009-03-221-19/+44
| | | | [Bug 2502037].
* * generic/tclBasic.c: fixed "leaks" in aliases, imports andMiguel Sofer2009-03-214-5/+15
| | | | | | | * generic/tclInt.h: ensembles. Only remaining known leak * generic/tclInterp.c: is in ensemble unknown dispatch (as it * generic/tclNamesp.c: not NR-enabled) * tests/tailcall.test:
* * tclInt.h: commentsMiguel Sofer2009-03-211-4/+2
| | | | | | * tests/tailcall.test: added tests to show that [tailcall] does not currently always execute in constant space: interp-alias, ns-imports and ensembles "leak" as of this commit.
* * generic/tclBasic.c: Fix for (among others) [Bug 2699087]Miguel Sofer2009-03-214-31/+78
| | | | | | | | | * generic/tclCmdAH.c: Tailcalls now perform properly even from * generic/tclExecute.c: within [eval]ed scripts. * generic/tclInt.h: More tests missing, as well as proper exploration and testing of the interaction with "redirectors" like interp-alias (suspect that it does not happen in constant space) and pure-eval commands.
* * generic/tclExecute.c: proper fix for [Bug 2415422]. ReenabledMiguel Sofer2009-03-211-8/+11
| | | | | | * tests/nre.test: the failing assertion that was disabled on 2008-12-18: the assertion is correct, the fault was in the management of expansions.
* * generic/tclExecute.c: fix both test and code for tailcallMiguel Sofer2009-03-211-1/+9
| | | | * tests/tailcall.test: from within a compiled [eval] body.
* * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflowdgp2009-03-201-5/+17
| | | | the max length of a Tcl value. [Bug 2669109]
* * generic/tcl.h:Miguel Sofer2009-03-195-194/+136
| | | | | | | | | | | | | | * generic/tclInt.h: * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclNamesp.c (Tcl_PopCallFrame): Rewritten tailcall implementation, ::unsupported::atProcExit is (temporarily?) gone. The new approach is much simpler, and also closer to being correct. This commit fixes [Bug 2649975] and [Bug 2695587]. * tests/coroutine.test: Moved the tests to their own files, * tests/tailcall.test: removed the unsupported.test. Added * tests/unsupported.test: tests for the fixed bugs.
* * generic/tclVar.c (TclLookupSimpleVar): Shift all calls todgp2009-03-181-7/+2
| | | | | | Tcl_SetErrorCode() out of TclLookupSimpleVar and onto its callers, where control with TCL_LEAVE_ERR_MSG flag is more easily handled. [Bug 2689307]