summaryrefslogtreecommitdiffstats
path: root/generic
Commit message (Collapse)AuthorAgeFilesLines
* merge core-8-6-branchsebres2017-07-1027-1209/+1495
|\
| * Pull out of the loop a block of code that can only run in first iteration.bug_adb198c256dgp2017-07-061-18/+19
| |
| * Alternative fix for memleaks in fs path join machinery.dgp2017-07-061-17/+16
| |
| * 'inline static' -> 'static inline' and 'INLINE' -> 'inline', for consistancy.jan.nijtmans2017-07-032-28/+28
| |
| * Eliminate use of (expensive) Tcl_UtfToUpper() from "format": Just generate ↵jan.nijtmans2017-06-281-10/+9
| | | | | | | | the expected uppercase characters right away from the start. No change in functionality, just code optimization.
| * Bump to TclOO 1.1.0dgp2017-06-261-1/+1
| |
| * Rebase for final implementation workdkf2017-06-221-5/+27
| |
| * Upgrade all internal character tables to Unicode 10jan.nijtmans2017-06-222-806/+831
| |\
| | * Upgrade all internal character tables to Unicode 10jan.nijtmans2017-06-222-807/+836
| | |
| * | Factor out chunk of non-obvious code in the guts of [oo::define] into one place.dkf2017-06-181-126/+74
| | |
| * | Make panic in TclParseNumber() work when IEEE_FLOATING_POINT is not defined.jan.nijtmans2017-06-151-1/+1
| | |
| * | Make read and write operations on Tcl_Var handles available in tclInt API. dkf2017-06-087-58/+349
| |\ \ | | | | | | | | (This will be useful for tclquadcode, and it addresses a basic omission in Tcl's API that made working with Tcl_Vars rather more specialized than it was ever really intended to be. However, this also closes off the part of the API that was not reasonably usable by ordinary external code; LVT indices require too deep an entanglement into Tcl's implementation.)
| | * | Expose some of the core variable access APIs. dkf_expose_ptrgetvar_8_6dkf2017-06-067-58/+349
| | | | | | | | | | | | (Cherrypick from [b4dfc30083])
| * | | Revert part of [95d096e0378b460c6c5168bb55bb2ca8b2fd799e|95d096e037]: Missed ↵jan.nijtmans2017-06-081-12/+35
| | | | | | | | | | | | | | | | the fact that tolower() was optimized for the ASCII case as well, so this was a mistake!
| * | | Fix [2738427]: Tcl_NumUtfChars(...) no overflow check.jan.nijtmans2017-06-081-13/+14
| |\ \ \ | | | |/ | | |/|
| | * | Fix [2738427]: Tcl_NumUtfChars(...) no overflow check.jan.nijtmans2017-06-081-13/+14
| | | |
| * | | tclUtil.c: Use TclUtfToUniChar() in stead of handling ASCII characters ↵jan.nijtmans2017-06-082-36/+13
| | | | | | | | | | | | | | | | | | | | separately: This macro already does that. Add new test-case for Tcl_NumUtfChars(), for a knownBug still to be fixed.
| * | | Tcl_GetWideIntFromObj() -> TclGetWideIntFromObj(), and minor other ↵jan.nijtmans2017-06-073-22/+19
| | |/ | |/| | | | | | | simplifications/optimizations. No functional change.
| * | Follow-up to [67aa9a2070]: Use uppercase consistantly, slight optimization ↵jan.nijtmans2017-06-061-18/+18
| |\ \ | | |/ | | | | | | in character tests, comment fixes. No change in functionality.
| | * [67aa9a2070] Tcl_UtfToUniChar returns single byte for invalid UTF-8 input as ↵jan.nijtmans2017-06-061-75/+52
| | | | | | | | | | | | documented.
| * | merge core-8-6-branchbug_67aa9a2070jan.nijtmans2017-06-021-10/+8
| |\ \
| | * | Change refCount field in DictObj from int to size_t. Cherry-picked from ↵jan.nijtmans2017-06-021-10/+8
| | | | | | | | | | | | | | | | "sebres-8-6-clock-speedup-cr1" branch.
| * | | Fix [67aa9a207037ae67f9014b544c3db34fa732f2dc|67aa9a2070]: Security: Invalid ↵jan.nijtmans2017-06-021-3/+9
| |/ / | | | | | | | | | UTF-8 can inject unexpected characters
| * | fixed [a3fb3356b76ec4a853d1b86aadc08675f8bef359]: segfault by sorting of the ↵sebres2017-05-291-19/+18
| | | | | | | | | | | | large lists (firstly mistakenly introduced in [af40c6fb6940bab7]), additionally simplify done-points in Tcl_LsortObjCmd.
| * | Tcl_UtfToUniChar() -> TclUtfToUniChar() in various places: No change in ↵jan.nijtmans2017-05-298-58/+58
| | | | | | | | | | | | functionality, just faster if ASCII only strings are involved.
| * | fix build failure with TCL_MEM_DEBUG introduced by [8b717dc06a3e3d49]aspect2017-05-191-3/+3
| | |
* | | merge sebres-8-5-event-perf-branchsebres2017-07-103-33/+73
|\ \ \
| * | | avoid blocking wait if we've some retarded events (from last event-cycle) ↵sebres2017-07-101-0/+12
| | | | | | | | | | | | | | | | and max blocking time was not set outside an event source traversal.
| * | | reintegrate sebres-8-6-event-perf-branch back to 8.5sebres2017-07-105-198/+406
| |\ \ \ | |/ / / |/| | |
* | | | Stability fix: queue epoch to guarantee avoid broken queue, service level to ↵sebres2017-07-104-175/+374
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | avoid reset block time by nested event-cycles (if Tcl_SetTimer does not create it), etc. Fixed retarded events (using new retarded list, the involve of the retarded events occurs only after checking of all event sources now). Two opportunities to retard event: - lazy, using the same event-object: in the handler set event->proc to new (or the same) handler (fast, possible only if not entering new event-cycle in handler); - create the event with new position "TCL_QUEUE_RETARDED"; New inline functions TclpQueueEventClientData / TclpQueueEventEx to fast creating resp. queuing event with extra data.
* | | | merge resp. reintegrate sebres-8-5-event-perf-branch to 8.6sebres2017-07-1010-619/+2243
|\ \ \ \ | |/ / /
| * | | after at: added simple workaround for absolute timers/sleep ("after at ↵sebres2017-07-031-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | real-time"): because we use monotonic time in all wait functions, so to avoid too long wait by the absolute timers (to be able to trigger it) if time jumped to the expected absolute time, just let block for maximal 1 second if absolute timers available. test-cases: time-jumps (TIP #302) test covered now. Note: on some platforms it is only possible if the user has corresponding privileges to change system date and time. Ex.: sudo LD_LIBRARY_PATH=. ./tclsh ../tests/timer.test -match timer-20.*
| * | | code review and small optimizations sebres2017-07-031-8/+10
| | | |
| * | | fix check event source threshold (corresponds 100-ns ranges, if the ↵sebres2017-07-031-38/+51
| | | | | | | | | | | | | | | | | | | | | | | | wide-clicks supported); because of variable width of 1 wide-click: windows - frequency dependent, unix - nanoseconds, darwin/osx - tb.numer / tb.denom nanoseconds.
| * | | Introduced monotonic time as ultimate fix for time-jump issue (fixed for ↵sebres2017-07-035-138/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | windows and unix now, TIP #302 fully implemented now); Usage of monotonic time instead of adjustment via timeJump/timeJumpEpoch is more precise and effective. New sub-command "clock monotonic" to provide monotonic time facility for tcl-level.
| * | | don't cancel scheduled event as long as the event list is not bidirectional ↵sebres2017-07-031-1/+9
| | | | | | | | | | | | | | | | (too slow by large queue) - rewritten to cancel delayed (by execute it).
| * | | fixed timer-marker handling: timer should be always executed after queued ↵sebres2017-07-035-194/+215
| | | | | | | | | | | | | | | | | | | | | | | | event (of the same generation), it was marked (be sure it marked to immediate execution in corresponding checkProc only). tclIO: scheduled event rewritten using Tcl_Event instead of timer event (IO is not timer, e. g. executed also by usage of `vwait -notimer ...`, etc).
| * | | interim commit: trying to pass test-cases - timer-3.*, chan-io-29.34, ↵sebres2017-07-033-60/+118
| | | | | | | | | | | | | | | | socket-2.12 (busy prompt timer, unexpected too early timer event, wrong timer-marker usage)
| * | | Merge branch 'fix-busy-prompt-timers' into event-perf-branch: sebres2017-07-031-34/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Amend to timer-marker: dualize special state of timer-marker (to differentiate between timer generations), so: INT2PTR(-1) - exec immediate (marker reached); INT2PTR(-2) - check in the next-cycle (marker reached only if no other events available); Avoids permanent busy execution of prompt-events (always busy in timer), if they regenerate itself continuously for waiting for other events (like writable/readable), see e. g. socket-2.12.
| * | | "after at" set factor to 1000000 (seconds), test cases fixed sebres2017-07-031-5/+5
| | | |
| * | | code review, rewrite tclTimer, prolongation, etc. sebres2017-07-036-404/+562
| | | |
| * | | interim commit: code review, rewrite tclTimer, etc. sebres2017-07-035-111/+219
| | | |
| * | | revert dual lists (relative/absolute) back to single list (because of better ↵sebres2017-07-031-109/+63
| | | | | | | | | | | | | | | | handling, a bit faster, etc.)
| * | | amend with review sebres2017-07-031-16/+53
| | | |
| * | | don't use tolerance in vwait, because of dual usage, it causes canceling of ↵sebres2017-07-031-8/+2
| | | | | | | | | | | | | | | | wait before end-time, on small timeout values (like 0.5, etc.)
| * | | interim commit: trying to resolve time-freezes with new facilities ↵sebres2017-07-034-148/+180
| | | | | | | | | | | | | | | | timeJump/timeJumpEpoch
| * | | interim commit: trying to resolve time-freezes with new facilities ↵sebres2017-07-034-178/+409
| | | | | | | | | | | | | | | | timeJump/timeJumpEpoch
| * | | interim commit: try to fix time-drift backwards (calibration? something ↵sebres2017-07-032-1/+4
| | | | | | | | | | | | | | | | else?)...
| * | | interim commit: try to fix time-drift backwards (too long offset after ↵sebres2017-07-032-4/+23
| | | | | | | | | | | | | | | | calibration? something else?)...
| * | | bug fix: prevent setting of negative block-time by too few initial ↵sebres2017-07-031-6/+8
| | | | | | | | | | | | | | | | wait-time, that may expire immediately (for example `vwait 0.0001 test`).