Check-in [5111ad3df3]

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

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

Overview
Comment:CFV by JN: 414, 481, 512
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 5111ad3df361bcc79e47a89a28c9a063eef9421c81369604fc41fa28ea66e32b
User & Date: dkf 2018-10-29 19:47:46
Context
2018-10-29
20:53
MEGA call for votes by DKF check-in: ba33ba81bc user: dkf tags: trunk
19:47
CFV by JN: 414, 481, 512 check-in: 5111ad3df3 user: dkf tags: trunk
19:29
522 is Final check-in: 72942a466a user: dkf tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to index.json.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
..
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
...
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
...
523
524
525
526
527
528
529
530
	"519":{"url":"./tip/519.md","keywords":"TclOO","":"","state":"Draft","this tip proposes to extend the `method` subcommand of the `oo":":define` command","type":"Project","author":["Pietro Cerutti <[email protected]>"],"follows":"","oo":":define RPCClient {","created":"18-Oct-2018","title":"# TIP 519: Inline export/unexport option to TclOO method definition","the class definition in the previous example would then be as follows":"","post-history":"","vote":"Pending","tcl-version":"8.7","tcl-branch":"tip-519","is-jest":false},
	"518":{"url":"./tip/518.md","keywords":"Tk","created":"22-Sep-2018","post-history":"","state":"Draft","tk-branch":"tip518-event-last-child-unmanaged","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 518: Virtual Event when Last Child is not Managed any more","author":["Harald Oehlmann <[email protected]>"],"is-jest":false},
	"517":{"url":"./tip/517.md","keywords":"tk menu","created":"13-Sept-2018","post-history":"","state":"Final","tk-branch":"tip-517","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 517: Add -activerelief Configuration Option to the menu widget","author":["Francois Vogel <[email protected]>"],"is-jest":false},
	"516":{"url":"./tip/516.md","keywords":"Tcl, TclOO","state":"Final","type":"Project","author":["Donal K. Fellows <[email protected]>"],"vote-results":"4/0/5 accepted","votes-for":"DKF, JN, JD, AK","votes-against":"none","created":"7-Sept-2018","title":"# TIP 516: More OO Slot Operations","post-history":"","tcl-branch":"tip-516","vote":"Done","tcl-version":"8.7","votes-present":"BG, KBK, DGP, FV, SL","is-jest":false},
	"515":{"url":"./tip/515.md","state":"Final","type":"Project","author":["Jan Nijtmans <[email protected]>"],"vote-results":"8/0/1 accepted","votes-for":"DKF, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"7-Sept-2018","title":"# TIP 515: Level Value Reform","post-history":"","tcl-branch":"tip-515","vote":"Done","tcl-version":"8.7","votes-present":"BG","is-jest":false},
	"514":{"url":"./tip/514.md","keywords":"Tcl","created":"20-Aug-2018","post-history":"","state":"Final","tcl-branch":"tip-514","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 514: Platform differences in handling int/wide","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"513":{"url":"./tip/513.md","keywords":"Tcl,data structure","created":"02-Aug-2017","post-history":"","state":"Draft","implementation-url":"https://core.tcl.tk/tips/doc/trunk/attach/513/agendas.tcl","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 513: Better support for 'agendas' as arrays, dictionaries or lists","author":["Florian Murr <[email protected]>"],"is-jest":false},
	"512":{"url":"./tip/512.md","keywords":"Tcl","created":"25-June-2018","post-history":"","state":"Draft","tcl-branch":"tip-512","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 512: No stub for Tcl_SetExitProc()","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"511":{"url":"./tip/511.md","keywords":"Tcl,threads","state":"Accepted","type":"Project","author":["Christian Werner <[email protected]>"],"vote-results":"4/0/5 accepted","votes-for":"DKF, BG, KBK, JN, JD, SL","votes-against":"none","created":"14-June-2018","title":"# TIP 511: Implement Tcl_AsyncMarkFromSignal()","post-history":"","implementation-url":"https://www.androwish.org/index.html/info/40790af1e8e4ec9f","vote":"Done","tcl-version":"8.7","votes-present":"DGP, FV, AK","is-jest":false},
	"510":{"url":"./tip/510.md","keywords":"Tk","created":"5-Jun-2018","post-history":"","state":"Draft","tk-branch":"tip-510","tcl-version":"8.7","vote":"","type":"Project","title":"# TIP 510: Add Rbc to Tk","author":["René Zaumseil <[email protected]>"],"is-jest":false},
	"509":{"url":"./tip/509.md","keywords":"Tcl,threads","state":"Final","type":"Project","author":["Frédéric Bonnet <[email protected]>"],"vote-results":"8/0/1 accepted","votes-for":"DKF, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"24-May-2018","title":"# TIP 509: Implement reentrant mutexes on all platforms","post-history":"","tcl-branch":"tip-509","vote":"Done","tcl-version":"8.7","votes-present":"BG","is-jest":false},
	"508":{"url":"./tip/508.md","keywords":"Tcl,array","state":"Final","type":"Project","author":["Frédéric Bonnet <[email protected]>"],"vote-results":"9/0/0 accepted","votes-for":"DKF, BG, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"13-May-2018","title":"# TIP 508: New subcommand [array default]","post-history":"","tcl-branch":"tip-508","vote":"Done","tcl-version":"8.7","votes-present":"none","is-jest":false},
	"507":{"url":"./tip/507.md","keywords":"Tk","created":"9-May-2018","post-history":"","state":"Draft","tk-branch":"tip-507","tcl-version":"8.7","vote":"","type":"Project","title":"# TIP 507: Include simple svg support with nanosvg","author":["René Zaumseil <[email protected]>"],"is-jest":false},
	"506":{"url":"./tip/506.md","created":"30-Mar-2018","post-history":"","state":"Draft","tcl-branch":"tip-506","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 506: Purge RefCount Macros","author":["Don Porter <[email protected]>"],"is-jest":false},
	"505":{"url":"./tip/505.md","state":"Final","type":"Project","author":["Don Porter <[email protected]>"],"vote-results":"8/0/1 accepted","votes-for":"DKF, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"26-Mar-2018","title":"# TIP 505: Make [lreplace] Accept All Out-of-Range Index Values","post-history":"","tcl-branch":"tip-505","vote":"Done","tcl-version":"8.6.9","votes-present":"BG","is-jest":false},
................................................................................
	"488":{"url":"./tip/488.md","keywords":"Tcl, string representation, floating-point","created":"24-Nov-2017","post-history":"","state":"Final","tcl-branch":"tip-488","tcl-version":"9.0","vote":"Done","type":"Project","title":"# TIP 488: Remove tcl_precision","author":["Arjen Markus <[email protected]>"],"is-jest":false},
	"487":{"url":"./tip/487.md","created":"20-Nov-2017","post-history":"","state":"Final","tcl-branch":"tip-487","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 487: Stop support for Pre-XP Windows","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"486":{"url":"./tip/486.md","created":"13-Nov-2017","post-history":"","state":"Draft","tcl-version":"9.0","vote":"Pending","type":"Project","title":"# TIP 486: Thread 3.0 is for Tcl 9","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"485":{"url":"./tip/485.md","created":"08-Nov-2017","post-history":"","state":"Final","tcl-branch":"tip-485","tcl-version":"9.0","vote":"Done","type":"Project","title":"# TIP 485: Remove Deprecated API","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"484":{"url":"./tip/484.md","keywords":"Tcl","created":"06-Nov-2017","post-history":"","state":"Final","tcl-branch":"no-wideint","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 484: Merge 'int' and 'wideInt' Obj-type to a single 'int'","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"483":{"url":"./tip/483.md","keywords":"Tk, configuration","created":"03-Nov-2017","post-history":"","state":"Accepted","tk-branch":"tk-stu-pkg","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 483: Improved TIP #59 implementation for Tk","author":["Stuart Cassoff <[email protected]>"],"is-jest":false},
	"482":{"url":"./tip/482.md","keywords":"Tk, demos, configuration","created":"03-Nov-2017","post-history":"","state":"Accepted","tk-branch":"tk-stu-pkg","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 482: Record Tk demo directory information","author":["Stuart Cassoff <[email protected]>"],"is-jest":false},
	"481":{"url":"./tip/481.md","keywords":"Tcl","created":"27-Oct-2017","post-history":"","state":"Draft","tcl-branch":"tip-481","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 481: Tcl\\_GetStringFromObj() with size\\_t length parameter","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"480":{"url":"./tip/480.md","keywords":"assertion, pragma, type, alias, compilation","created":"25-Oct-2017","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 480: Type and Alias Assertions for Tcl","author":["Kevin B. Kenny <[email protected]>"],"is-jest":false},
	"479":{"url":"./tip/479.md","keywords":"Tcl,procedure,argument handling","created":"23-Oct-2017","post-history":"","state":"Draft","tcl-branch":"tip479","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 479: Add Named Procedures as a New Command in Tcl (dictargs::proc)","author":["Sean Woods <[email protected]>"],"is-jest":false},
	"478":{"url":"./tip/478.md","keywords":"Tcl","state":"Final","type":"Project","author":["Gerald Lester <[email protected]>","Donal K. Fellows <[email protected]>"],"votes-for":"DKF, AK, JD, SL, JN","votes-against":"none","created":"18-Oct-2017","title":"# TIP 478: Add Expected Class Level Behaviors to oo::class","post-history":"","vote":"Done","tcl-version":"8.7","tcl-branch":"tip-478","is-jest":false},
	"477":{"url":"./tip/477.md","keywords":"Windows nmake build","created":"30-Sep-2017","post-history":"","state":"Final","tcl-branch":"vc-reform","tcl-version":"8.6.8","vote":"Done","type":"Project","title":"# TIP 477: Modernize the nmake build system","author":["Ashok P. Nadkarni <[email protected]>"],"is-jest":false},
	"476":{"url":"./tip/476.md","keywords":"scan, printf","created":"27-Sep-2017","post-history":"PM","state":"Final","tcl-branch":"z_modifier","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 476: Scan/Printf format consistency","author":["Jan Nijtmans ([email protected])"],"is-jest":false},
	"475":{"url":"./tip/475.md","keywords":"Tcl,string,insert","created":"22-Sep-2017","post-history":"","state":"Rejected","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 475: Add [string insert] Command and C API","author":["Andy Goth ([email protected])"],"is-jest":false},
	"474":{"url":"./tip/474.md","keywords":"Tk, events","created":"25-Aug-2017","post-history":"PM","state":"Draft","tk-branch":"tip474-uniform-mouse-wheel","tcl-version":"8.6","vote":"Pending","type":"Project","title":"# TIP 474: Treat the mouse wheel events in a uniform way","author":["Arjen Markus <[email protected]>"],"is-jest":false},
................................................................................
	"421":{"url":"./tip/421.md","state":"Final","type":"Project","author":["Karl Lehenbauer <[email protected]>","Brad Lanam <[email protected]>","Donal K. Fellows <[email protected]>"],"updated":"24-Oct-2017","created":"28-Nov-2012","present":"none","title":"# TIP 421: A Command for Iterating Over Arrays","post-history":"","tcl-branch":"tip-421","tcl-version":"8.7","vote":"Done","for":"DKF, AF, JN, SL, KBK, DGP, AK","against":"none","is-jest":false},
	"420":{"url":"./tip/420.md","created":"15-Nov-2012","post-history":"","state":"Draft","implementation-url":"http://www.etoyoc.com/tclmatrix3d","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 420: 'vexpr', a Vector Expression Command","author":["Sean Woods <[email protected]>","Andreas Kupries <[email protected]>"],"is-jest":false},
	"419":{"url":"./tip/419.md","created":"28-Aug-2012","post-history":"","state":"Draft","implementation-url":"http://wiki.tcl.tk/tkevent","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 419: A New Command for Binding to Tk Events","author":["Jeff Rogers <[email protected]>"],"is-jest":false},
	"418":{"url":"./tip/418.md","keywords":"Tcl,binary data","created":"27-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 418: Add [binary] Subcommands for In-Place Modification","author":["Jeff Rogers <[email protected]>"],"is-jest":false},
	"417":{"url":"./tip/417.md","keywords":"Tcl, future expansion, extensibility","created":"16-Nov-2012","post-history":"","state":"Draft","vote":"Pending","tcl-version":"8.7","type":"Project","title":"# TIP 417: Use Explicit Option Names for \"file tempfile\"","author":["Christophe Curis <[email protected]>"],"is-jest":false},
	"416":{"url":"./tip/416.md","created":"31-Oct-2012","post-history":"","state":"Final","tcl-branch":"frq-3579001","tcl-version":"8.6","vote":"Done","type":"Project","title":"# TIP 416: New Options for 'load': -global and -lazy","author":["Christian Delbaere <[email protected]>","Jan Nijtmans <[email protected]>","Jan Nijtmans <[email protected]>"],"is-jest":false},
	"415":{"url":"./tip/415.md","keywords":"Tk","created":"16-Oct-2012","post-history":"","state":"Draft","tk-branch":"tip-415","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 415: Enable Easy Creation of Circular Arc Segments","author":["Simon Geard <[email protected]>"],"is-jest":false},
	"414":{"url":"./tip/414.md","created":"15-Oct-2012","post-history":"","state":"Draft","tcl-branch":"initsubsystems","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 414: Add (back) Tcl_InitSubsystems as Public API","author":["Brian Griffin <[email protected]>","Jan Nijtmans <[email protected]>"],"is-jest":false},
	"413":{"url":"./tip/413.md","keywords":"Tcl","created":"08-Oct-2012","post-history":"","state":"Final","tcl-branch":"tip-318-update","tcl-version":"8.6","vote":"Done","type":"Project","title":"# TIP 413: Unicode Support for 'string is space' and 'string trim'","discussions-to":"Tcl Core list","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"412":{"url":"./tip/412.md","obsoletes":"399","keywords":"Tcl,localization,msgcat","created":"27-Mar-2012","post-history":"","state":"Final","tcl-branch":"msgcat_dyn_locale","tcl-version":"8.6","vote":"Done","type":"Project","title":"# TIP 412: Dynamic Locale Changing for msgcat with On-Demand File Load","author":["Harald Oehlmann <[email protected]>","Harald Oehlmann <[email protected]>"],"is-jest":false},
	"411":{"url":"./tip/411.md","created":"31-Aug-2012","post-history":"","state":"Draft","implementation-url":"http://sqlitestudio.pl/tcl/patches/tip-411-chan_info.patch","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 411: Improved Channel Introspection via \"chan info\"","author":["Pawel Salawa <[email protected]>"],"is-jest":false},
	"410":{"url":"./tip/410.md","created":"26-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 410: Three Features of scan Adapted for binary scan/format","author":["Andreas Leitgeb <[email protected]>"],"is-jest":false},
	"409":{"url":"./tip/409.md","obsoletes":"391","keywords":"udp,datagram,message","created":"17-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 409: UDP in Tcl","author":["Alexandre Ferrieux <[email protected]>","Colin McCormack <[email protected]>"],"is-jest":false},
	"408":{"url":"./tip/408.md","created":"17-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 408: Allow Any Command for expr Functions","author":["Brian Griffin <[email protected]>"],"is-jest":false},
	"407":{"url":"./tip/407.md","created":"06-Aug-2012","post-history":"","state":"Draft","vote":"No voting","type":"Informative","title":"# TIP 407: The String Representation of Tcl Lists: the Gory Details","author":["Donal K. Fellows <[email protected]>","Kevin Kenny <[email protected]>","Don Porter <[email protected]>"],"is-jest":false},
................................................................................
	"4":{"url":"./tip/4.md","created":"26-Oct-2000","post-history":"","state":"Draft","vote":"Pending","type":"Informative","title":"# TIP 4: Tcl Release and Distribution Philosophy","discussions-to":"news:comp.lang.tcl","author":["Brent Welch <[email protected]>","Donal K. Fellows <[email protected]>","Larry W. Virden <[email protected]>","Larry W. Virden <[email protected]>"],"is-jest":false},
	"3":{"url":"./tip/3.md","created":"14-Sep-2000","post-history":"","state":"Accepted","vote":"Done","type":"Process","title":"# TIP 3: TIP Format","author":["Andreas Kupries <[email protected]>","Donal K. Fellows <[email protected]>"],"is-jest":false},
	"2":{"url":"./tip/2.md","created":"12-Sep-2000","post-history":"","state":"Draft","vote":"Pending","type":"Process","title":"# TIP 2: TIP Guidelines","author":["Andreas Kupries <[email protected]>","Donal K. Fellows <[email protected]>","Don Porter <[email protected]>","Mo DeJong <[email protected]>","Larry W. Virden <[email protected]>","Kevin Kenny <[email protected]>"],"is-jest":false},
	"1":{"url":"./tip/1.md","created":"14-Sep-2000","post-history":"","state":"Active","vote":"No voting","type":"Informational","title":"# TIP 1: TIP Index","author":["TIP Editor <[email protected]>"],"is-jest":false},
	"0":{"url":"./tip/0.md","created":"11-Dec-2000","post-history":"","state":"Final","vote":"Done","type":"Process","title":"# TIP 0: Tcl Core Team Basic Rules","author":["John Ousterhout <[email protected]>"],"is-jest":false},
	"@min": 0,
	"@max": 525
}, "@timestamp": 1540841354}






|







 







|







 







|







 







|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
..
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
...
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
...
523
524
525
526
527
528
529
530
	"519":{"url":"./tip/519.md","keywords":"TclOO","":"","state":"Draft","this tip proposes to extend the `method` subcommand of the `oo":":define` command","type":"Project","author":["Pietro Cerutti <[email protected]>"],"follows":"","oo":":define RPCClient {","created":"18-Oct-2018","title":"# TIP 519: Inline export/unexport option to TclOO method definition","the class definition in the previous example would then be as follows":"","post-history":"","vote":"Pending","tcl-version":"8.7","tcl-branch":"tip-519","is-jest":false},
	"518":{"url":"./tip/518.md","keywords":"Tk","created":"22-Sep-2018","post-history":"","state":"Draft","tk-branch":"tip518-event-last-child-unmanaged","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 518: Virtual Event when Last Child is not Managed any more","author":["Harald Oehlmann <[email protected]>"],"is-jest":false},
	"517":{"url":"./tip/517.md","keywords":"tk menu","created":"13-Sept-2018","post-history":"","state":"Final","tk-branch":"tip-517","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 517: Add -activerelief Configuration Option to the menu widget","author":["Francois Vogel <[email protected]>"],"is-jest":false},
	"516":{"url":"./tip/516.md","keywords":"Tcl, TclOO","state":"Final","type":"Project","author":["Donal K. Fellows <[email protected]>"],"vote-results":"4/0/5 accepted","votes-for":"DKF, JN, JD, AK","votes-against":"none","created":"7-Sept-2018","title":"# TIP 516: More OO Slot Operations","post-history":"","tcl-branch":"tip-516","vote":"Done","tcl-version":"8.7","votes-present":"BG, KBK, DGP, FV, SL","is-jest":false},
	"515":{"url":"./tip/515.md","state":"Final","type":"Project","author":["Jan Nijtmans <[email protected]>"],"vote-results":"8/0/1 accepted","votes-for":"DKF, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"7-Sept-2018","title":"# TIP 515: Level Value Reform","post-history":"","tcl-branch":"tip-515","vote":"Done","tcl-version":"8.7","votes-present":"BG","is-jest":false},
	"514":{"url":"./tip/514.md","keywords":"Tcl","created":"20-Aug-2018","post-history":"","state":"Final","tcl-branch":"tip-514","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 514: Platform differences in handling int/wide","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"513":{"url":"./tip/513.md","keywords":"Tcl,data structure","created":"02-Aug-2017","post-history":"","state":"Draft","implementation-url":"https://core.tcl.tk/tips/doc/trunk/attach/513/agendas.tcl","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 513: Better support for 'agendas' as arrays, dictionaries or lists","author":["Florian Murr <[email protected]>"],"is-jest":false},
	"512":{"url":"./tip/512.md","keywords":"Tcl","created":"25-June-2018","post-history":"","state":"Draft","tcl-branch":"tip-512","tcl-version":"8.7","vote":"In progress","type":"Project","title":"# TIP 512: No stub for Tcl_SetExitProc()","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"511":{"url":"./tip/511.md","keywords":"Tcl,threads","state":"Accepted","type":"Project","author":["Christian Werner <[email protected]>"],"vote-results":"4/0/5 accepted","votes-for":"DKF, BG, KBK, JN, JD, SL","votes-against":"none","created":"14-June-2018","title":"# TIP 511: Implement Tcl_AsyncMarkFromSignal()","post-history":"","implementation-url":"https://www.androwish.org/index.html/info/40790af1e8e4ec9f","vote":"Done","tcl-version":"8.7","votes-present":"DGP, FV, AK","is-jest":false},
	"510":{"url":"./tip/510.md","keywords":"Tk","created":"5-Jun-2018","post-history":"","state":"Draft","tk-branch":"tip-510","tcl-version":"8.7","vote":"","type":"Project","title":"# TIP 510: Add Rbc to Tk","author":["René Zaumseil <[email protected]>"],"is-jest":false},
	"509":{"url":"./tip/509.md","keywords":"Tcl,threads","state":"Final","type":"Project","author":["Frédéric Bonnet <[email protected]>"],"vote-results":"8/0/1 accepted","votes-for":"DKF, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"24-May-2018","title":"# TIP 509: Implement reentrant mutexes on all platforms","post-history":"","tcl-branch":"tip-509","vote":"Done","tcl-version":"8.7","votes-present":"BG","is-jest":false},
	"508":{"url":"./tip/508.md","keywords":"Tcl,array","state":"Final","type":"Project","author":["Frédéric Bonnet <[email protected]>"],"vote-results":"9/0/0 accepted","votes-for":"DKF, BG, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"13-May-2018","title":"# TIP 508: New subcommand [array default]","post-history":"","tcl-branch":"tip-508","vote":"Done","tcl-version":"8.7","votes-present":"none","is-jest":false},
	"507":{"url":"./tip/507.md","keywords":"Tk","created":"9-May-2018","post-history":"","state":"Draft","tk-branch":"tip-507","tcl-version":"8.7","vote":"","type":"Project","title":"# TIP 507: Include simple svg support with nanosvg","author":["René Zaumseil <[email protected]>"],"is-jest":false},
	"506":{"url":"./tip/506.md","created":"30-Mar-2018","post-history":"","state":"Draft","tcl-branch":"tip-506","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 506: Purge RefCount Macros","author":["Don Porter <[email protected]>"],"is-jest":false},
	"505":{"url":"./tip/505.md","state":"Final","type":"Project","author":["Don Porter <[email protected]>"],"vote-results":"8/0/1 accepted","votes-for":"DKF, KBK, JN, JD, DGP, FV, SL, AK","votes-against":"none","created":"26-Mar-2018","title":"# TIP 505: Make [lreplace] Accept All Out-of-Range Index Values","post-history":"","tcl-branch":"tip-505","vote":"Done","tcl-version":"8.6.9","votes-present":"BG","is-jest":false},
................................................................................
	"488":{"url":"./tip/488.md","keywords":"Tcl, string representation, floating-point","created":"24-Nov-2017","post-history":"","state":"Final","tcl-branch":"tip-488","tcl-version":"9.0","vote":"Done","type":"Project","title":"# TIP 488: Remove tcl_precision","author":["Arjen Markus <[email protected]>"],"is-jest":false},
	"487":{"url":"./tip/487.md","created":"20-Nov-2017","post-history":"","state":"Final","tcl-branch":"tip-487","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 487: Stop support for Pre-XP Windows","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"486":{"url":"./tip/486.md","created":"13-Nov-2017","post-history":"","state":"Draft","tcl-version":"9.0","vote":"Pending","type":"Project","title":"# TIP 486: Thread 3.0 is for Tcl 9","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"485":{"url":"./tip/485.md","created":"08-Nov-2017","post-history":"","state":"Final","tcl-branch":"tip-485","tcl-version":"9.0","vote":"Done","type":"Project","title":"# TIP 485: Remove Deprecated API","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"484":{"url":"./tip/484.md","keywords":"Tcl","created":"06-Nov-2017","post-history":"","state":"Final","tcl-branch":"no-wideint","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 484: Merge 'int' and 'wideInt' Obj-type to a single 'int'","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"483":{"url":"./tip/483.md","keywords":"Tk, configuration","created":"03-Nov-2017","post-history":"","state":"Accepted","tk-branch":"tk-stu-pkg","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 483: Improved TIP #59 implementation for Tk","author":["Stuart Cassoff <[email protected]>"],"is-jest":false},
	"482":{"url":"./tip/482.md","keywords":"Tk, demos, configuration","created":"03-Nov-2017","post-history":"","state":"Accepted","tk-branch":"tk-stu-pkg","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 482: Record Tk demo directory information","author":["Stuart Cassoff <[email protected]>"],"is-jest":false},
	"481":{"url":"./tip/481.md","keywords":"Tcl","created":"27-Oct-2017","post-history":"","state":"Draft","tcl-branch":"tip-481","tcl-version":"8.7","vote":"In progress","type":"Project","title":"# TIP 481: `Tcl_GetStringFromObj()` with `size_t` length parameter","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"480":{"url":"./tip/480.md","keywords":"assertion, pragma, type, alias, compilation","created":"25-Oct-2017","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 480: Type and Alias Assertions for Tcl","author":["Kevin B. Kenny <[email protected]>"],"is-jest":false},
	"479":{"url":"./tip/479.md","keywords":"Tcl,procedure,argument handling","created":"23-Oct-2017","post-history":"","state":"Draft","tcl-branch":"tip479","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 479: Add Named Procedures as a New Command in Tcl (dictargs::proc)","author":["Sean Woods <[email protected]>"],"is-jest":false},
	"478":{"url":"./tip/478.md","keywords":"Tcl","state":"Final","type":"Project","author":["Gerald Lester <[email protected]>","Donal K. Fellows <[email protected]>"],"votes-for":"DKF, AK, JD, SL, JN","votes-against":"none","created":"18-Oct-2017","title":"# TIP 478: Add Expected Class Level Behaviors to oo::class","post-history":"","vote":"Done","tcl-version":"8.7","tcl-branch":"tip-478","is-jest":false},
	"477":{"url":"./tip/477.md","keywords":"Windows nmake build","created":"30-Sep-2017","post-history":"","state":"Final","tcl-branch":"vc-reform","tcl-version":"8.6.8","vote":"Done","type":"Project","title":"# TIP 477: Modernize the nmake build system","author":["Ashok P. Nadkarni <[email protected]>"],"is-jest":false},
	"476":{"url":"./tip/476.md","keywords":"scan, printf","created":"27-Sep-2017","post-history":"PM","state":"Final","tcl-branch":"z_modifier","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 476: Scan/Printf format consistency","author":["Jan Nijtmans ([email protected])"],"is-jest":false},
	"475":{"url":"./tip/475.md","keywords":"Tcl,string,insert","created":"22-Sep-2017","post-history":"","state":"Rejected","tcl-version":"8.7","vote":"Done","type":"Project","title":"# TIP 475: Add [string insert] Command and C API","author":["Andy Goth ([email protected])"],"is-jest":false},
	"474":{"url":"./tip/474.md","keywords":"Tk, events","created":"25-Aug-2017","post-history":"PM","state":"Draft","tk-branch":"tip474-uniform-mouse-wheel","tcl-version":"8.6","vote":"Pending","type":"Project","title":"# TIP 474: Treat the mouse wheel events in a uniform way","author":["Arjen Markus <[email protected]>"],"is-jest":false},
................................................................................
	"421":{"url":"./tip/421.md","state":"Final","type":"Project","author":["Karl Lehenbauer <[email protected]>","Brad Lanam <[email protected]>","Donal K. Fellows <[email protected]>"],"updated":"24-Oct-2017","created":"28-Nov-2012","present":"none","title":"# TIP 421: A Command for Iterating Over Arrays","post-history":"","tcl-branch":"tip-421","tcl-version":"8.7","vote":"Done","for":"DKF, AF, JN, SL, KBK, DGP, AK","against":"none","is-jest":false},
	"420":{"url":"./tip/420.md","created":"15-Nov-2012","post-history":"","state":"Draft","implementation-url":"http://www.etoyoc.com/tclmatrix3d","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 420: 'vexpr', a Vector Expression Command","author":["Sean Woods <[email protected]>","Andreas Kupries <[email protected]>"],"is-jest":false},
	"419":{"url":"./tip/419.md","created":"28-Aug-2012","post-history":"","state":"Draft","implementation-url":"http://wiki.tcl.tk/tkevent","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 419: A New Command for Binding to Tk Events","author":["Jeff Rogers <[email protected]>"],"is-jest":false},
	"418":{"url":"./tip/418.md","keywords":"Tcl,binary data","created":"27-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 418: Add [binary] Subcommands for In-Place Modification","author":["Jeff Rogers <[email protected]>"],"is-jest":false},
	"417":{"url":"./tip/417.md","keywords":"Tcl, future expansion, extensibility","created":"16-Nov-2012","post-history":"","state":"Draft","vote":"Pending","tcl-version":"8.7","type":"Project","title":"# TIP 417: Use Explicit Option Names for \"file tempfile\"","author":["Christophe Curis <[email protected]>"],"is-jest":false},
	"416":{"url":"./tip/416.md","created":"31-Oct-2012","post-history":"","state":"Final","tcl-branch":"frq-3579001","tcl-version":"8.6","vote":"Done","type":"Project","title":"# TIP 416: New Options for 'load': -global and -lazy","author":["Christian Delbaere <[email protected]>","Jan Nijtmans <[email protected]>","Jan Nijtmans <[email protected]>"],"is-jest":false},
	"415":{"url":"./tip/415.md","keywords":"Tk","created":"16-Oct-2012","post-history":"","state":"Draft","tk-branch":"tip-415","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 415: Enable Easy Creation of Circular Arc Segments","author":["Simon Geard <[email protected]>"],"is-jest":false},
	"414":{"url":"./tip/414.md","keywords":"Tcl, library initialisation","created":"15-Oct-2012","post-history":"","state":"Draft","tcl-branch":"initsubsystems","tcl-version":"8.7","vote":"In progress","type":"Project","title":"# TIP 414: Add (back) Tcl_InitSubsystems as Public API","author":["Brian Griffin <[email protected]>","Jan Nijtmans <[email protected]>"],"is-jest":false},
	"413":{"url":"./tip/413.md","keywords":"Tcl","created":"08-Oct-2012","post-history":"","state":"Final","tcl-branch":"tip-318-update","tcl-version":"8.6","vote":"Done","type":"Project","title":"# TIP 413: Unicode Support for 'string is space' and 'string trim'","discussions-to":"Tcl Core list","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
	"412":{"url":"./tip/412.md","obsoletes":"399","keywords":"Tcl,localization,msgcat","created":"27-Mar-2012","post-history":"","state":"Final","tcl-branch":"msgcat_dyn_locale","tcl-version":"8.6","vote":"Done","type":"Project","title":"# TIP 412: Dynamic Locale Changing for msgcat with On-Demand File Load","author":["Harald Oehlmann <[email protected]>","Harald Oehlmann <[email protected]>"],"is-jest":false},
	"411":{"url":"./tip/411.md","created":"31-Aug-2012","post-history":"","state":"Draft","implementation-url":"http://sqlitestudio.pl/tcl/patches/tip-411-chan_info.patch","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 411: Improved Channel Introspection via \"chan info\"","author":["Pawel Salawa <[email protected]>"],"is-jest":false},
	"410":{"url":"./tip/410.md","created":"26-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 410: Three Features of scan Adapted for binary scan/format","author":["Andreas Leitgeb <[email protected]>"],"is-jest":false},
	"409":{"url":"./tip/409.md","obsoletes":"391","keywords":"udp,datagram,message","created":"17-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 409: UDP in Tcl","author":["Alexandre Ferrieux <[email protected]>","Colin McCormack <[email protected]>"],"is-jest":false},
	"408":{"url":"./tip/408.md","created":"17-Aug-2012","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 408: Allow Any Command for expr Functions","author":["Brian Griffin <[email protected]>"],"is-jest":false},
	"407":{"url":"./tip/407.md","created":"06-Aug-2012","post-history":"","state":"Draft","vote":"No voting","type":"Informative","title":"# TIP 407: The String Representation of Tcl Lists: the Gory Details","author":["Donal K. Fellows <[email protected]>","Kevin Kenny <[email protected]>","Don Porter <[email protected]>"],"is-jest":false},
................................................................................
	"4":{"url":"./tip/4.md","created":"26-Oct-2000","post-history":"","state":"Draft","vote":"Pending","type":"Informative","title":"# TIP 4: Tcl Release and Distribution Philosophy","discussions-to":"news:comp.lang.tcl","author":["Brent Welch <[email protected]>","Donal K. Fellows <[email protected]>","Larry W. Virden <[email protected]>","Larry W. Virden <[email protected]>"],"is-jest":false},
	"3":{"url":"./tip/3.md","created":"14-Sep-2000","post-history":"","state":"Accepted","vote":"Done","type":"Process","title":"# TIP 3: TIP Format","author":["Andreas Kupries <[email protected]>","Donal K. Fellows <[email protected]>"],"is-jest":false},
	"2":{"url":"./tip/2.md","created":"12-Sep-2000","post-history":"","state":"Draft","vote":"Pending","type":"Process","title":"# TIP 2: TIP Guidelines","author":["Andreas Kupries <[email protected]>","Donal K. Fellows <[email protected]>","Don Porter <[email protected]>","Mo DeJong <[email protected]>","Larry W. Virden <[email protected]>","Kevin Kenny <[email protected]>"],"is-jest":false},
	"1":{"url":"./tip/1.md","created":"14-Sep-2000","post-history":"","state":"Active","vote":"No voting","type":"Informational","title":"# TIP 1: TIP Index","author":["TIP Editor <[email protected]>"],"is-jest":false},
	"0":{"url":"./tip/0.md","created":"11-Dec-2000","post-history":"","state":"Final","vote":"Done","type":"Process","title":"# TIP 0: Tcl Core Team Basic Rules","author":["John Ousterhout <[email protected]>"],"is-jest":false},
	"@min": 0,
	"@max": 525
}, "@timestamp": 1540842393}

Changes to index.md.

220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
...
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
....
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
<td valign='top'><a href='./tip/513.md'>513</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
<td valign='top'># TIP 513: Better support for &apos;agendas&apos; as arrays, dictionaries or lists</td>
<td valign='top'><a href='https://core.tcl.tk/tips/doc/trunk/attach/513/agendas.tcl'>Link</a></td>
</tr>
<tr class='project projectdraft projectdraft87 project87'>
<td valign='top'><a href='./tip/512.md'>512</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
<td valign='top'># TIP 512: No stub for Tcl_SetExitProc()</td>
<td valign='top'><a href='/tcl/timeline?r=tip-512'>Link</a></td>
</tr>
<tr class='project projectaccepted projectaccepted87 project87'>
<td valign='top'><a href='./tip/511.md'>511</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
................................................................................
<td valign='top'><a href='./tip/482.md'>482</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Accepted</td>
<td valign='top'># TIP 482: Record Tk demo directory information</td>
<td valign='top'><a href='/tk/timeline?r=tk-stu-pkg'>Link</a></td>
</tr>
<tr class='project projectdraft projectdraft87 project87'>
<td valign='top'><a href='./tip/481.md'>481</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
<td valign='top'># TIP 481: Tcl\_GetStringFromObj() with size\_t length parameter</td>
<td valign='top'><a href='/tcl/timeline?r=tip-481'>Link</a></td>
</tr>
<tr class='project projectdraft projectdraft87 project87'>
<td valign='top'><a href='./tip/480.md'>480</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
................................................................................
<td valign='top'><a href='./tip/415.md'>415</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
<td valign='top'># TIP 415: Enable Easy Creation of Circular Arc Segments</td>
<td valign='top'><a href='/tk/timeline?r=tip-415'>Link</a></td>
</tr>
<tr class='project projectdraft projectdraft87 project87'>
<td valign='top'><a href='./tip/414.md'>414</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
<td valign='top'># TIP 414: Add (back) Tcl_InitSubsystems as Public API</td>
<td valign='top'><a href='/tcl/timeline?r=initsubsystems'>Link</a></td>
</tr>
<tr class='project projectfinal projectfinal86 project86'>
<td valign='top'><a href='./tip/413.md'>413</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.6</td>






|



|







 







|



|
|







 







|



|







220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
...
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
....
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
<td valign='top'><a href='./tip/513.md'>513</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
<td valign='top'># TIP 513: Better support for &apos;agendas&apos; as arrays, dictionaries or lists</td>
<td valign='top'><a href='https://core.tcl.tk/tips/doc/trunk/attach/513/agendas.tcl'>Link</a></td>
</tr>
<tr class='invote'>
<td valign='top'><a href='./tip/512.md'>512</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Voting</td>
<td valign='top'># TIP 512: No stub for Tcl_SetExitProc()</td>
<td valign='top'><a href='/tcl/timeline?r=tip-512'>Link</a></td>
</tr>
<tr class='project projectaccepted projectaccepted87 project87'>
<td valign='top'><a href='./tip/511.md'>511</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
................................................................................
<td valign='top'><a href='./tip/482.md'>482</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Accepted</td>
<td valign='top'># TIP 482: Record Tk demo directory information</td>
<td valign='top'><a href='/tk/timeline?r=tk-stu-pkg'>Link</a></td>
</tr>
<tr class='invote'>
<td valign='top'><a href='./tip/481.md'>481</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Voting</td>
<td valign='top'># TIP 481: `Tcl_GetStringFromObj()` with `size_t` length parameter</td>
<td valign='top'><a href='/tcl/timeline?r=tip-481'>Link</a></td>
</tr>
<tr class='project projectdraft projectdraft87 project87'>
<td valign='top'><a href='./tip/480.md'>480</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
................................................................................
<td valign='top'><a href='./tip/415.md'>415</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Draft</td>
<td valign='top'># TIP 415: Enable Easy Creation of Circular Arc Segments</td>
<td valign='top'><a href='/tk/timeline?r=tip-415'>Link</a></td>
</tr>
<tr class='invote'>
<td valign='top'><a href='./tip/414.md'>414</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.7</td>
<td valign='top'>Voting</td>
<td valign='top'># TIP 414: Add (back) Tcl_InitSubsystems as Public API</td>
<td valign='top'><a href='/tcl/timeline?r=initsubsystems'>Link</a></td>
</tr>
<tr class='project projectfinal projectfinal86 project86'>
<td valign='top'><a href='./tip/413.md'>413</a></td>
<td valign='top'>Project</td>
<td valign='top'>8.6</td>

Changes to tip/414.md.

1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 414: Add (back) Tcl_InitSubsystems as Public API
	Author:         Brian Griffin <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        15-Oct-2012
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     initsubsystems

-----

# Abstract

The ability to initialize just the lower level Tcl subsystems used to be part
of the public API, now it is no longer exposed. This TIP proposes that it be
re-exposed through the existing function Tcl\_SetPanicProc()




|




>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 414: Add (back) Tcl_InitSubsystems as Public API
	Author:         Brian Griffin <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           In progress
	Created:        15-Oct-2012
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     initsubsystems
	Keywords:       Tcl, library initialisation
-----

# Abstract

The ability to initialize just the lower level Tcl subsystems used to be part
of the public API, now it is no longer exposed. This TIP proposes that it be
re-exposed through the existing function Tcl\_SetPanicProc()

Changes to tip/481.md.

1
2
3
4
5
6
7
8
9
10
11
12
# TIP 481: Tcl\_GetStringFromObj() with size\_t length parameter
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        27-Oct-2017
	Post-History:
	Keywords:       Tcl
	Tcl-Version:    8.7
	Tcl-Branch:     tip-481
-----
# Abstract
|



|







1
2
3
4
5
6
7
8
9
10
11
12
# TIP 481: `Tcl_GetStringFromObj()` with `size_t` length parameter
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           In progress
	Created:        27-Oct-2017
	Post-History:
	Keywords:       Tcl
	Tcl-Version:    8.7
	Tcl-Branch:     tip-481
-----
# Abstract

Changes to tip/512.md.

1
2
3
4
5
6
7
8
9
10
11
12
..
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
..
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# TIP 512: No stub for Tcl_SetExitProc()
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        25-June-2018
	Post-History:   
	Keywords:       Tcl
	Tcl-Version:	8.7
	Tcl-Branch:     tip-512
-----

................................................................................
`Tcl_SetExitProc()` in a stub-enabled extension: On win32 this
caused a crash in many unit-tests, when tclsh ended. This problematic
commit was corrected in [this commit](http://core.tcl.tk/tcl/info/df825488e649e15b):
a thread exit handler is how this should have been done. 

# Rationale

When running test-cases in Windows (using mingw-64 or msvc, but using the
win/Makefile system not the nmake system), the tclsh executable
crashes after shutdown in some tests. The reason for this is that
the additional test-code "tcltest" is compiled as stub-enabled extension
which is dynamically loaded into tclsh. So, there is no "tcltest"
executable in this environment, tclsh86.exe and tcltest86.dll are
sufficient.

If a stub-enabled extension registers an Exit-handler, the following
happens at exit time. During the clean-up, Tcl unloads all extensions.
When the clean-up is done, the last step is calling the registered
Exit-handler. But ... since the exit handler function was located
inside the dll, it's address space is gone already. This results
in the mentioned crash.

A similar problem exists in `Tcl_SetPanicProc()`: If a stub-enabled
extension registers a Panic proc which is located in its own
address space, the extension might be gone when the panicproc is
finally called.

................................................................................
`Tcl_FindExecutable()` and `Tk_MainEx()` don't register functions,
but those functions - too - are meant to be used at application
level, not at extension level. Therefore those don't belong in
the stub table either.

# Specification

The above mentioned functions are marked with _nostub_ (in tcl.decls),
and the tools/genStubs.tcl tooling is adapted to recognize this special
keyword. The effect is that the function entry in the stub table is
marked as deprecated, but the normal function entry is left as-is.

When Tcl is compiled with -DTCL\_NO\_DEPRECATED, the stub entries for
the above functions will no longer be available. The stub table
entries for those function will be filled with 0 instead.

Starting with Tcl 9.0, those stub entries will be removed completely.
In stead, those functions will be defined in tcl.h, as normal
exported symbols, just like `Tcl_MainEx()` (for example).




|







 







|
|

|
|
|






|







 







|
|



|







1
2
3
4
5
6
7
8
9
10
11
12
..
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
..
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# TIP 512: No stub for Tcl_SetExitProc()
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           In progress
	Created:        25-June-2018
	Post-History:   
	Keywords:       Tcl
	Tcl-Version:	8.7
	Tcl-Branch:     tip-512
-----

................................................................................
`Tcl_SetExitProc()` in a stub-enabled extension: On win32 this
caused a crash in many unit-tests, when tclsh ended. This problematic
commit was corrected in [this commit](http://core.tcl.tk/tcl/info/df825488e649e15b):
a thread exit handler is how this should have been done. 

# Rationale

When running test-cases in Windows (using mingw-64 or MSVC, but using the
win/Makefile system not the nmake system), the `tclsh` executable
crashes after shutdown in some tests. The reason for this is that
the additional test-code "`tcltest`" is compiled as stub-enabled extension
which is dynamically loaded into `tclsh`. So, there is no "tcltest"
executable in this environment, `tclsh86.exe` and `tcltest86.dll` are
sufficient.

If a stub-enabled extension registers an Exit-handler, the following
happens at exit time. During the clean-up, Tcl unloads all extensions.
When the clean-up is done, the last step is calling the registered
Exit-handler. But ... since the exit handler function was located
inside the DLL, it's address space is gone already. This results
in the mentioned crash.

A similar problem exists in `Tcl_SetPanicProc()`: If a stub-enabled
extension registers a Panic proc which is located in its own
address space, the extension might be gone when the panicproc is
finally called.

................................................................................
`Tcl_FindExecutable()` and `Tk_MainEx()` don't register functions,
but those functions - too - are meant to be used at application
level, not at extension level. Therefore those don't belong in
the stub table either.

# Specification

The above mentioned functions are marked with _nostub_ (in `tcl.decls`),
and the `tools/genStubs.tcl` tooling is adapted to recognize this special
keyword. The effect is that the function entry in the stub table is
marked as deprecated, but the normal function entry is left as-is.

When Tcl is compiled with `-DTCL_NO_DEPRECATED`, the stub entries for
the above functions will no longer be available. The stub table
entries for those function will be filled with 0 instead.

Starting with Tcl 9.0, those stub entries will be removed completely.
In stead, those functions will be defined in tcl.h, as normal
exported symbols, just like `Tcl_MainEx()` (for example).