Check-in [b9d1d51fbe]

Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update TIP #532 by giving the branches that will receive the implementation with or without PREFER_MOST_SPECIALIZED_EVENT and SUPPORT_ADDITIONAL_MOTION_SYNTAX
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: b9d1d51fbeef3772469520c5b07ae601b5a95b71ba1e9eb4110e171fe3474dba
User & Date: fvogel 2019-02-03 17:33:56.271
Context
2019-02-13
10:53
Update TIP #527 / timerate (the branches and TIP are ready now) check-in: 078ca0f89f user: sebres tags: trunk
2019-02-03
17:33
Update TIP #532 by giving the branches that will receive the implementation with or without PREFER_MOST_SPECIALIZED_EVENT and SUPPORT_ADDITIONAL_MOTION_SYNTAX check-in: b9d1d51fbe user: fvogel tags: trunk
2019-02-02
18:00
TIP #533 accepted 5/0/0: YES: 5 (Griffin, Kupries, Landers, Nijtmans, Vogel). NO: -. PRESENT: -. Vote conclusion email was sent 2-Feb-2019 to Tcl Core list. Implementation was merged the same day. check-in: 1672da309d user: fvogel tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to tip/532.md.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 532: Re-implementation of event loop processing.
	Author:         Gregor Cramer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        09-Jan-2019
	Post-History:  
	Keywords:       Tk, bind, event, event loop
	Tcl-Version:    8.6
	Tk-Branch:      bug6e8afe516d
----

# Abstract

Current implementation of event loop processing suffers from a limited event ring.
This limitation is causing unexpected behavior. Moreover some issues in event loop
handling are known.








|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 532: Re-implementation of event loop processing.
	Author:         Gregor Cramer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        09-Jan-2019
	Post-History:  
	Keywords:       Tk, bind, event, event loop
	Tcl-Version:    8.6 and 8.7
	Tk-Branch:      bug6e8afe516d, bug6e8afe516d-87
----

# Abstract

Current implementation of event loop processing suffers from a limited event ring.
This limitation is causing unexpected behavior. Moreover some issues in event loop
handling are known.
162
163
164
165
166
167
168










169
170
171
172
173
174
175

Based on tests the performance in time is better than with legacy implementation. This
result is expected, because a triple-nested loop, executed for each incoming event, has
been changed to a quasi-double-nested loop (only in very seldom cases it is still
triple-nested). Furthermore the traversed lists are shorter than with legacy implementation,
because the event ring, always containing 30 items (or even 45 on Mac), has been eliminated.
Only unbinding a tag is a bit slower than before. Memory consumption did not change significantly.











# Backwards Compatibility

Fix of issue (4) is not fully backwards compatible (more details in section **Rationale**).

Moreover fix of issue (5) is not backwards compatible, but here erroneous behavior has been
corrected.







>
>
>
>
>
>
>
>
>
>







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185

Based on tests the performance in time is better than with legacy implementation. This
result is expected, because a triple-nested loop, executed for each incoming event, has
been changed to a quasi-double-nested loop (only in very seldom cases it is still
triple-nested). Furthermore the traversed lists are shorter than with legacy implementation,
because the event ring, always containing 30 items (or even 45 on Mac), has been eliminated.
Only unbinding a tag is a bit slower than before. Memory consumption did not change significantly.

Branch [bug6e8afe516d](https://core.tcl-lang.org/tk/timeline?r=bug6e8afe516d)
has <code>PREFER\_MOST\_SPECIALIZED\_EVENT=0</code> and
<code>SUPPORT\_ADDITIONAL\_MOTION\_SYNTAX=0</code>.
It targets 8.6 and is intended to be merged into core-8-6-branch.

Branch [bug6e8afe516d-87](https://core.tcl-lang.org/tk/timeline?r=bug6e8afe516d-87)
has <code>PREFER\_MOST\_SPECIALIZED\_EVENT=1</code> and
<code>SUPPORT\_ADDITIONAL\_MOTION\_SYNTAX=1</code>.
It targets 8.7 and is intended to be merged into trunk.

# Backwards Compatibility

Fix of issue (4) is not fully backwards compatible (more details in section **Rationale**).

Moreover fix of issue (5) is not backwards compatible, but here erroneous behavior has been
corrected.