summaryrefslogtreecommitdiffstats
path: root/generic
Commit message (Collapse)AuthorAgeFilesLines
* Check in stash. This code probably does not compile as-is. Changes ↵amg_array_enum_c_apiandy2017-04-151-12/+28
| | | | intended to address possible segfault on termination of search.
* Do not deallocate Tcl_ArraySearchStart()-initiated array searches when ↵andy2016-12-251-10/+14
| | | | Tcl_ArraySearchPeek() or Tcl_ArraySearchNext() is called, only when Tcl_ArraySearchDone() is called. This avoids a crash should user code unconditionally call Tcl_ArraySearchDone() at the end of an array enumeration loop. This change does not affect array searches initiated by the Tcl script command [array startsearch].
* Merge array-search-unsetandy2016-12-2515-116/+125
|\
| * Bug [46a2410650]: Create macro TclIsVarArraySearched to check if an array ↵andy2016-12-242-3/+8
| | | | | | | | variable has an active search, and modify INST_UNSET_ARRAY to fall back on the slow unset method for array elements within an array being searched. The slow unset method involves a call to DeleteSearches() which stops all active searches.
| * Update -DMSTATS functionality, for possible total memory sizes > 2Gb. One ↵jan.nijtmans2016-12-232-24/+24
| | | | | | | | more place where use of size_t can increase range.
| * Eliminate the internal macro/function TclNewIntObj: In all cases ↵jan.nijtmans2016-12-236-26/+19
| | | | | | | | TclNewLongObj is just as good.
| * Make sure that Tcl_GetIntFromObj/Tcl_GetWideIntFromObj/Tcl_GetDoubleFromObj ↵jan.nijtmans2016-12-211-16/+23
| |\ | | | | | | | | | don't set an error in the interp during LinkTraceProc(): The error is supposed to be reported as return value of this function, not the interp.
| | * Make sure that Tcl_GetIntFromObj/Tcl_GetWideIntFromObj/Tcl_GetDoubleFromObj ↵jan.nijtmans2016-12-211-16/+23
| | |\ | | | | | | | | | | | | don't set an error in the interp during LinkTraceProc(): The error is supposed to be reported as return value of this function, not the interp.
| | | * Make sure that Tcl_GetIntFromObj/Tcl_GetWideIntFromObj/Tcl_GetDoubleFromObj ↵jan.nijtmans2016-12-211-16/+23
| | | | | | | | | | | | | | | | don't set an error in the interp during LinkTraceProc(): The error is supposed to be reported as return value of this function, not the interp.
| * | | more internal use of size_t in stead of int.jan.nijtmans2016-12-205-34/+38
| | | |
| * | | Record the fact that all stub-enabled extensions work in Tcl 8.5+, no 8.6 ↵jan.nijtmans2016-12-203-13/+13
| | | | | | | | | | | | | | | | (or 9.0) features are needed. (Differences between 8.x and 9.0 are handled by a different stub magic value)
* | | | Correct typo, credit Brad Lanam for reportandy2016-12-211-1/+1
| | | |
* | | | Implement deferring search structure deallocation until the next search ↵andy2016-12-201-6/+129
| | | | | | | | | | | | | | | | function is called. Determination of immediate versus deferred deallocation is done using a new search flags field.
* | | | Merge trunkandy2016-12-205-9/+66
|\ \ \ \ | |/ / /
| * | | Some more internal use of size_t in stead of int. No functional change.jan.nijtmans2016-12-162-9/+4
| | | |
| * | | Add "file join $grandParentDir tcl8.? library" as possible path for a valid ↵jan.nijtmans2016-12-151-0/+1
| | | | | | | | | | | | | | | | | | | | init.tcl. Some simplifications in use of test restrictions.
| * | | Implement all possible TCL_LL_MODIFIER formats in Tcl_ObjPrintf(), can be ↵jan.nijtmans2016-12-142-0/+61
| |\ \ \ | | | | | | | | | | | | | | | "ll", "I64" and "L", whatever the platform defines for long long integer. With test-cases.
| | * | | Implement all possible TCL_LL_MODIFIER formats in Tcl_ObjPrintf(), can be ↵jn_wide_printfjan.nijtmans2016-12-142-1/+52
| | | | | | | | | | | | | | | | | | | | "ll", "I64" and "L", whatever the platform defines for long long integer. With test-cases.
| | * | | implement "I64" format in Tcl_ObjPrintf as well. Still to be tested.jan.nijtmans2016-12-021-3/+13
| | | | |
* | | | | Rework array search C API to invoke array traces and report errors. Still ↵andy2016-12-203-98/+250
| | | | | | | | | | | | | | | | | | | | need to update documentation accordingly and to add tests demonstrating correct execution of array traces. Also need to handle early search termination due to array elements being added or removed.
* | | | | Update ArrayArgs() comments againandy2016-12-121-4/+2
| | | | |
* | | | | Update ArrayArgs() commentsandy2016-12-121-5/+2
| | | | |
* | | | | Remove invalid panic. There is an odd case in which exact matching does ↵andy2016-12-111-1/+4
| | | | | | | | | | | | | | | | | | | | take a trip through the ArrayNext() search loop despite the fact that ArrayFirst() finds the exact element and sets the search to the end of the hash table. If exact matching is used in combination with a command that stuffs the found element back into the queue (e.g. [array anymore]), ArrayNext() will have to "find" the element again. It's the very next entry, but nevertheless it needs to confirm.
* | | | | Merge trunkandy2016-12-021-3/+6
|\ \ \ \ \ | |/ / / /
| * | | | Avoid "warning: format '%llu' expects argument of type 'long long unsigned ↵andy2016-12-021-3/+6
| | | | | | | | | | | | | | | | | | | | int', but argument 2 has type 'long unsigned int'" on platforms where TCL_WIDE_INT_IS_LONG. Warning introduced by check-in [e3ba334a42] which was merged to trunk by [eac13870dc]. This fix also was made by [418b169207] which has not yet been merged to trunk.
* | | | | Merge trunkandy2016-12-029-129/+313
|\ \ \ \ \ | |/ / / /
| * | | | Added long comment explaining history and work in progress making bytearraydgp2016-12-021-22/+87
| |/ / / | | | | | | | | interfaces usable.
| * | | Relocate the cmdEpoch bumps during command deletion so that command resolutiondgp2016-12-021-7/+15
| |\ \ \ | | | | | | | | | | caching works properly in deletion callbacks (destructors!) and delete traces.
| | * | | Remove dup line.dgp_cmd_epochdgp2016-12-021-6/+5
| | | | |
| | * | | Reports from NSF that command epoch bumping isn't properly timed.dgp2016-12-011-7/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://paste.tclers.tk/4030 Since the epoch should bump to indicate when Tcl_FindCommand() would produce a different result from the cached value, the bump ought to be connected to the state change that would have that effect. This checkin appears to be the more correct answer, and it makes the Delete path get into agreement with the Rename path. Review would be good.
| * | | | Implement %ll (WideInt) handling for Tcl_ObjPrintf(). Use it in some places. ↵jan.nijtmans2016-12-022-13/+17
| |\ \ \ \ | | |/ / / | |/| | | | | | | | (now without edit-error in tcl.h, thanks Don!)
| | * | | Repair what appears to be a stray edit error. This restores ability todgp2016-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | build on a TCL_WIDE_INT_IS_LONG platform, but leaves code in tclStringObj.c raising compiler warnings. Suspect things still need some reconciliation in the TCL_WIDE_INT_IS_LONG scenario.
| | * | | Implement %ll (WideInt) handling for Tcl_ObjPrintf(). Use it in some places. jan.nijtmans2016-12-023-13/+17
| |/ / / | | | | | | | | Moved to feature branch temporarily. Breaks build.
| * | | So long as we register only one, we can have multiple Tcl_ObjTypes withdgp2016-12-011-1/+1
| | | | | | | | | | | | the same name. This smooths migration. See obj-2.2 and tclsqlite usage.
| * | | Created a new "proper bytearray" Tcl_ObjType so we can use bytearraysdgp2016-12-012-23/+45
| | | | | | | | | | | | as bytearrays without all this fussing about over purity.
| * | | compatability -> compatibilityjan.nijtmans2016-12-014-5/+5
| |\ \ \ | | |/ /
| | * | compatability -> compatibilityjan.nijtmans2016-12-013-4/+4
| | |\ \ | | | |/
| | | * compatability -> compatibilityjan.nijtmans2016-12-013-4/+4
| | | |
| * | | Route all [string repeat] operations through a common implementation.dgp2016-11-303-61/+146
| | | | | | | | | | | | | | | | | | | | Code that to preserve bytearrays, eliminate unnecessary string rep generation, increase efficiency, and encapsulate access to internal rep details.
* | | | Implement [array names] in terms of Tcl_ArrayNames(), also make ↵andy2016-12-011-20/+10
| | | | | | | | | | | | | | | | Tcl_ArrayNames() treat non-array like empty array for consistency with documentation, other functions, and baseline [array names]
* | | | Merge trunkandy2016-11-2913-100/+107
|\ \ \ \ | |/ / /
| * | | Where feasible, convert concatenation panics into errors.dgp2016-11-291-9/+46
| | | |
| * | | Minor simplifications. Eliminate FUNCPRT from regexp engine. Fix ↵jan.nijtmans2016-11-295-15/+5
| | | | | | | | | | | | | | | | compile-error (non-debug) in tclDictObj.c, from previous commit
| * | | more internal use of size_t (in stead of int)jan.nijtmans2016-11-294-42/+39
| | | |
| * | | Eliminate some macros that are no longer used/needed.jan.nijtmans2016-11-257-36/+19
| | | |
* | | | Add filtering capability to [array exists] and Tcl_ArrayExists() so that ↵andy2016-11-293-20/+43
| | | | | | | | | | | | | | | | individual elements can be tested for. For example, [array exists arrayName *] is a higher-performance alternative to [array size arrayName] for testing if an array is non-empty since it doesn't fully enumerate the array and only checks if there is at least one matching element.
* | | | Add comments to tcl.h more clearly indicating which flag values are reserved ↵andy2016-11-291-0/+3
| | | | | | | | | | | | | | | | to better avoid future collisions
* | | | Fix set-old-8.35andy2016-11-281-6/+8
| | | |
* | | | Fix set-old-8.56andy2016-11-281-2/+7
| | | |
* | | | Add Tcl_ArrayStatistics()andy2016-11-284-22/+61
| | | |