Check-in [922263652c]

Login

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

Overview
Comment:Added metadata about all 8.7 and 9.0 TIPs (where I can figure it out).
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | branch-link
Files: files | file ages | folders
SHA3-256: 922263652c29c02943d8e06241375452011ad706875df4254c38bf4cad1adf6a
User & Date: dkf 2018-10-12 21:30:40.217
Context
2018-10-12
21:31
rebuild index check-in: a1b25f24de user: dkf tags: branch-link
21:30
Added metadata about all 8.7 and 9.0 TIPs (where I can figure it out). check-in: 922263652c user: dkf tags: branch-link
21:29
Support implementations in tickets as well. check-in: 4ecb8a0dd3 user: dkf tags: branch-link
Changes
Unified Diff Ignore Whitespace Patch
Changes to tip/114.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 114: Eliminate Octal Parsing of Leading Zero Integer Strings
	Author:          Don Porter <[email protected]>
	Created:         16-Oct-2007
	Type:            Project
	State:           Final
	Vote:            Done
	Tcl-Version:     9.0
	Discussions-To:  Tcl Core list
	Post-History:
	Keywords:        octal

-----

# Abstract

This TIP proposes elimination of Tcl's practice of using octal
notation to interpret a string with a leading zero when an
integer value is expected.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 114: Eliminate Octal Parsing of Leading Zero Integer Strings
	Author:          Don Porter <[email protected]>
	Created:         16-Oct-2007
	Type:            Project
	State:           Final
	Vote:            Done
	Tcl-Version:     9.0
	Discussions-To:  Tcl Core list
	Post-History:
	Keywords:        octal
	Tcl-Branch:     tip-114
-----

# Abstract

This TIP proposes elimination of Tcl's practice of using octal
notation to interpret a string with a leading zero when an
integer value is expected.
Changes to tip/115.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 115: Making Tcl Truly 64-Bit Ready
	Author:         Donal K. Fellows <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        23-Oct-2002
	Post-History:   
	Tcl-Version:    9.0

-----

# Abstract

This TIP proposes changes to Tcl to make it operate more effectively
on 64-bit systems.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 115: Making Tcl Truly 64-Bit Ready
	Author:         Donal K. Fellows <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        23-Oct-2002
	Post-History:   
	Tcl-Version:    9.0
	Obsoleted-By:   494
-----

# Abstract

This TIP proposes changes to Tcl to make it operate more effectively
on 64-bit systems.

Changes to tip/161.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 161: Change Default for Menu's -tearoff Option to False
	Author:         Mark Roseman <[email protected]>
	Author:         Francois Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        19-Oct-2003
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes changing the default value of the _-tearoff_
option on menu widgets to false, from its current setting of true.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 161: Change Default for Menu's -tearoff Option to False
	Author:         Mark Roseman <[email protected]>
	Author:         Francois Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        19-Oct-2003
	Post-History:   
	Tcl-Version:    8.7
	Tk-Branch:      tip-161
-----

# Abstract

This TIP proposes changing the default value of the _-tearoff_
option on menu widgets to false, from its current setting of true.

Changes to tip/166.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 166: Reading and Writing the Photo Image Alpha Channel
	Author:         Donal K. Fellows <[email protected]>
	Author:         Simon Bachmann <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        19-Nov-2003
	Post-History:   
	Keywords:       Tk,image get,image put
	Tcl-Version:    8.7

-----

# Abstract

This TIP describes how to update the **image get** and **image put**
subcommands so as to allow script-level access to the full alpha
channel information that has been present in the photo image data










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 166: Reading and Writing the Photo Image Alpha Channel
	Author:         Donal K. Fellows <[email protected]>
	Author:         Simon Bachmann <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        19-Nov-2003
	Post-History:   
	Keywords:       Tk,image get,image put
	Tcl-Version:    8.7
	Tk-Branch:      tip-166
-----

# Abstract

This TIP describes how to update the **image get** and **image put**
subcommands so as to allow script-level access to the full alpha
channel information that has been present in the photo image data
Changes to tip/167.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
16
17
18
19
20
21
22
# TIP 167: Add a New Option for Context Help for Windows
	Author:         Ramon Ribó <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        19-Nov-2003
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes adding a new option to **wm attributes** for the
Windows version of Tk that offers contextual help in that window.
Additionally, a new event type **<Help>** is defined, that will be
delivered when the user picks the Help button in the window and picks
over a widget.  The event will be also hitted when user presses F1
over one window.

# Rationale

Contextual help is very important in a program to help users to








>






|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# TIP 167: Add a New Option for Context Help for Windows
	Author:         Ramon Ribó <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        19-Nov-2003
	Post-History:   
	Tcl-Version:    8.7
	Tk-Ticket:      845248ffffffffffffff
-----

# Abstract

This TIP proposes adding a new option to **wm attributes** for the
Windows version of Tk that offers contextual help in that window.
Additionally, a new event type `<Help>` is defined, that will be
delivered when the user picks the Help button in the window and picks
over a widget.  The event will be also hitted when user presses F1
over one window.

# Rationale

Contextual help is very important in a program to help users to
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
71
72
73
74
75
76
77
78
79
80
configured to have this option, a small question mark button is
displayed in the window title bar near the close button. If users pick
that button, a question mark cursor is actived and the user can pick a
widget \(or location in a widget.\)  The typical program reaction to
this is to offer a pop-up window with some short help text or to open
the program help in the relevant section.

Additionally, the new proposed event **<Help>** can also get
information when user presses key F1 over one window.

This implementation is proposed for the Windows OS only, though in the
future some Window Managers like KDE \(in Linux\) have the same feature
and could be also implemented.  In any case, this TIP only proposes
implementation on Windows.

# Specification

A new option will be added to **wm attributes** with the following
syntax:

 > **wm attributes** _window_ **-contexthelp** ?_boolean_?

If set and if the window is transient, the question mark button will
appear in the window title bar.

A new event **<Help>** is added to the event list so as a user can
do:

	  bind $w <Help> {puts "You pressed widget %W"}

This event will hit in two situations: when the user presses the
question mark in the title bar of the window and pick a widget; and
when user presses the F1 key \(or other platform-defined help key\) over
one window \(this latter case only for bindings in the toplevel\).

The event will support the usual %W %x %y substitutions and other
values.

# Reference Implementation

<http://sf.net/tracker/?func=detail&atid=312997&aid=845248&group\_id=12997>

# Comments

It would be preferable to use a virtual event **<<Help>>_ instead of extending the set of X events.  \(In particular, adding a new **<Help>** event means there has to be a new **HelpMask** bit flag to select for it, and we're running out of event mask bits\).

# Copyright

This document has been placed in the public domain.








|

















|


















|





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
71
72
73
74
75
76
77
78
79
80
81
configured to have this option, a small question mark button is
displayed in the window title bar near the close button. If users pick
that button, a question mark cursor is actived and the user can pick a
widget \(or location in a widget.\)  The typical program reaction to
this is to offer a pop-up window with some short help text or to open
the program help in the relevant section.

Additionally, the new proposed event `<Help>` can also get
information when user presses key F1 over one window.

This implementation is proposed for the Windows OS only, though in the
future some Window Managers like KDE \(in Linux\) have the same feature
and could be also implemented.  In any case, this TIP only proposes
implementation on Windows.

# Specification

A new option will be added to **wm attributes** with the following
syntax:

 > **wm attributes** _window_ **-contexthelp** ?_boolean_?

If set and if the window is transient, the question mark button will
appear in the window title bar.

A new event `<Help>` is added to the event list so as a user can
do:

	  bind $w <Help> {puts "You pressed widget %W"}

This event will hit in two situations: when the user presses the
question mark in the title bar of the window and pick a widget; and
when user presses the F1 key \(or other platform-defined help key\) over
one window \(this latter case only for bindings in the toplevel\).

The event will support the usual %W %x %y substitutions and other
values.

# Reference Implementation

<http://sf.net/tracker/?func=detail&atid=312997&aid=845248&group\_id=12997>

# Comments

It would be preferable to use a virtual event `<<Help>>` instead of extending the set of X events.  \(In particular, adding a new `<Help>` event means there has to be a new **HelpMask** bit flag to select for it, and we're running out of event mask bits\).

# Copyright

This document has been placed in the public domain.

Changes to tip/178.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 178: [info pid] and [info tid] Subcommands
	Author:         Joe Mistachkin <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        21-Mar-2004
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes two new **info** subcommands which are used to
obtain the current process and thread identifiers.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 178: [info pid] and [info tid] Subcommands
	Author:         Joe Mistachkin <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        21-Mar-2004
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Ticket:     920731ffffffffffffff
-----

# Abstract

This TIP proposes two new **info** subcommands which are used to
obtain the current process and thread identifiers.

Changes to tip/216.md.
13
14
15
16
17
18
19
20
21
22
23
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

Currently there is no means to add new command-line options to the
standard Tcl shells, tclsh and wish, that can be handled at the script
level. This hampers the development of, for instance, a scripted
debugger or tracing tool, because the shell must be called with an
awkward command line \(stating the location of the script file
implementing the facility\).  This TIP proposes a simple mechanism so
that a command line like "tclsh -debug myprog.tcl" is possible.  The
new mechanism relies on the existing package mechanism and a few
conventions. It can be implemented for the most part in Tcl.

# Rationale

With Tcl 8.4 it is quite easy to create a scripted debugger - see for
instance <http://wiki.tcl.tk/6007>  and <http://wiki.tcl.tk.12251>  -
since this version introduced execution traces. However, it is less
simple to turn that into an "out-of-the-box" resource: suppose its
implementation file is "debug.tcl", residing in a directory
"~/my-tcl-utils" \(or "d:\\my-tcl-utils" under Windows\), then the
following command-line is necessary:

	 tclsh ~/my-tcl-utils/debug.tcl myapp.tcl

or under Windows:

	 tclsh d:\my-tcl-utils\debug.tcl myapp.tcl

instead of the more elegant:

	 tclsh -debug myapp.tcl

where some mechanism links the option "-debug" to the implementation
file "debug.tcl".

An alternative method could be to make the file "debug.tcl" a loadable
package but this requires the user to change the application: it
should then load the debug package whenever the user wants to
interactively debug it.

# Proposed Changes

The only thing that needs to be changed in tclsh and wish







|









|
|












|
|

|







13
14
15
16
17
18
19
20
21
22
23
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

Currently there is no means to add new command-line options to the
standard Tcl shells, tclsh and wish, that can be handled at the script
level. This hampers the development of, for instance, a scripted
debugger or tracing tool, because the shell must be called with an
awkward command line \(stating the location of the script file
implementing the facility\).  This TIP proposes a simple mechanism so
that a command line like `tclsh -debug myprog.tcl` is possible.  The
new mechanism relies on the existing package mechanism and a few
conventions. It can be implemented for the most part in Tcl.

# Rationale

With Tcl 8.4 it is quite easy to create a scripted debugger - see for
instance <http://wiki.tcl.tk/6007>  and <http://wiki.tcl.tk.12251>  -
since this version introduced execution traces. However, it is less
simple to turn that into an "out-of-the-box" resource: suppose its
implementation file is `debug.tcl`, residing in a directory
`~/my-tcl-utils` \(or `d:\\my-tcl-utils` under Windows\), then the
following command-line is necessary:

	 tclsh ~/my-tcl-utils/debug.tcl myapp.tcl

or under Windows:

	 tclsh d:\my-tcl-utils\debug.tcl myapp.tcl

instead of the more elegant:

	 tclsh -debug myapp.tcl

where some mechanism links the option `-debug` to the implementation
file `debug.tcl`.

An alternative method could be to make the file `debug.tcl` a loadable
package but this requires the user to change the application: it
should then load the debug package whenever the user wants to
interactively debug it.

# Proposed Changes

The only thing that needs to be changed in tclsh and wish
Changes to tip/220.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 220: Escalate Privileges in VFS Close Callback
	Author:         Colin McCormack <[email protected]>
	Author:         Andreas Kupries <[email protected]>
	Author:         Vince Darley <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        12-Sep-2004
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This tip allows the creator and opener of a channel to cast away
privileges and have them restored on close, to permit last-minute
processing.  It is sufficient to resolve a _tclvfs_ bug, minimal,










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 220: Escalate Privileges in VFS Close Callback
	Author:         Colin McCormack <[email protected]>
	Author:         Andreas Kupries <[email protected]>
	Author:         Vince Darley <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        12-Sep-2004
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Ticket:     1057093
-----

# Abstract

This tip allows the creator and opener of a channel to cast away
privileges and have them restored on close, to permit last-minute
processing.  It is sufficient to resolve a _tclvfs_ bug, minimal,
Changes to tip/225.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 225: Arithmetic Series with Optimized Space Complexity
	Author:         Salvatore Sanfilippo <[email protected]>
	Author:         Miguel Sofer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        25-Oct-2004
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to add a new command to generate arithmetic
sequences as Tcl lists that may be stored in constant space in many
practical situations.  The only change from the point of view of the









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 225: Arithmetic Series with Optimized Space Complexity
	Author:         Salvatore Sanfilippo <[email protected]>
	Author:         Miguel Sofer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        25-Oct-2004
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Ticket:     1052584
-----

# Abstract

This TIP proposes to add a new command to generate arithmetic
sequences as Tcl lists that may be stored in constant space in many
practical situations.  The only change from the point of view of the
Changes to tip/238.md.
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
instances and act on their creation.

# Rationale

It would be useful if it was possible to set an event on class bindings to
allow custom code to be run when a widget of a particular class is created.

Note that the standard X11 <Create> event is not quite suitable, because that
is delivered to the X11 parent of the widget, which is not Tk in the case of
toplevel windows.

# Proposal

It is proposed that the virtual event <<Create>> be sent to every widget upon
the creation of its actual underlying window \(i.e. as part of
**Tk\_MakeWindowExist**\). Note that this is the earliest at which an event
can actually be delivered to the widget; before that, doing **event
generate** to the widget just creates an event that gets discarded.

## Example








|





|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
instances and act on their creation.

# Rationale

It would be useful if it was possible to set an event on class bindings to
allow custom code to be run when a widget of a particular class is created.

Note that the standard X11 `<Create>` event is not quite suitable, because that
is delivered to the X11 parent of the widget, which is not Tk in the case of
toplevel windows.

# Proposal

It is proposed that the virtual event `<<Create>>` be sent to every widget upon
the creation of its actual underlying window \(i.e. as part of
**Tk\_MakeWindowExist**\). Note that this is the earliest at which an event
can actually be delivered to the widget; before that, doing **event
generate** to the widget just creates an event that gets discarded.

## Example

Changes to tip/240.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 240: An Ensemble Command to Manage Processes
	Author:         Steve Bold <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        22-Feb-2005
	Post-History:   
	Keywords:       Tcl
	Obsoletes:      88
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes some new commands through which Tcl scripts can create and
monitor child processes.











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 240: An Ensemble Command to Manage Processes
	Author:         Steve Bold <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        22-Feb-2005
	Post-History:   
	Keywords:       Tcl
	Obsoletes:      88
	Tcl-Version:    8.7
	Tcl-Ticket:     1315115
-----

# Abstract

This TIP proposes some new commands through which Tcl scripts can create and
monitor child processes.

Changes to tip/243.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 243: Supply Find Dialog for the Text Widget
	Author:		Rüdiger Härtel <[email protected]>
	State:		Draft
	Type:		Project
	Vote:		Pending
	Created:	16-Mar-2005
	Tcl-Version:	8.7
	Post-History:	
	Keywords:	Tk

-----

# Abstract

This TIP adds a _find dialog_ to the Tk **text** widget.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 243: Supply Find Dialog for the Text Widget
	Author:		Rüdiger Härtel <[email protected]>
	State:		Draft
	Type:		Project
	Vote:		Pending
	Created:	16-Mar-2005
	Tcl-Version:	8.7
	Post-History:	
	Keywords:	Tk
	Tk-Ticket:      1167420
-----

# Abstract

This TIP adds a _find dialog_ to the Tk **text** widget.

# Rationale
Changes to tip/271.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 271: Windows-Style Open and Save File Dialog on Unix
	Author:         Matthew Middleton <[email protected]>
	Author:         susanta kumar mishra <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        11-Jul-2006
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP describes updates to the Unix file dialogs to make them more like the
dialogs found on the Windows platform. This increases the usability of the
dialog for general "power" users.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 271: Windows-Style Open and Save File Dialog on Unix
	Author:         Matthew Middleton <[email protected]>
	Author:         susanta kumar mishra <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        11-Jul-2006
	Post-History:   
	Tcl-Version:    8.7
	Tk-Ticket:      1520742
-----

# Abstract

This TIP describes updates to the Unix file dialogs to make them more like the
dialogs found on the Windows platform. This increases the usability of the
dialog for general "power" users.
Changes to tip/278.md.
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
# TIP 278: Fix Variable Name Resolution Quirks
	Author:         Miguel Sofer <[email protected]>
	Author:         Miguel Sofer <[email protected]>
	Author:         Kevin Kenny <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        03-Oct-2006
	Post-History:
	Discussions To: Tcl Core List
	Tcl-Version:    9.0

-----

# Abstract

This TIP proposes to fix the behaviour for variable name resolution, modelling
it on the resolution for namespace names instead of the current command name
resolution.












>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# TIP 278: Fix Variable Name Resolution Quirks
	Author:         Miguel Sofer <[email protected]>
	Author:         Miguel Sofer <[email protected]>
	Author:         Kevin Kenny <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        03-Oct-2006
	Post-History:
	Discussions To: Tcl Core List
	Tcl-Version:    9.0
	Tcl-Branch:     tip-278
-----

# Abstract

This TIP proposes to fix the behaviour for variable name resolution, modelling
it on the resolution for namespace names instead of the current command name
resolution.
Changes to tip/282.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 282: Enhanced Expression Syntax
	Author:         Will Duquette <[email protected]>
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        13-Oct-2006
	Post-History:   
	Keywords:       expr,operator,assignment
	Tcl-Version:    8.7

-----

# Abstract

This TIP extends the syntax of the **expr** command to allow a sequence of
mathematical computations to be expressed clearly and concisely.











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 282: Enhanced Expression Syntax
	Author:         Will Duquette <[email protected]>
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        13-Oct-2006
	Post-History:   
	Keywords:       expr,operator,assignment
	Tcl-Version:    8.7
	Tcl-Ticket:     1969722
-----

# Abstract

This TIP extends the syntax of the **expr** command to allow a sequence of
mathematical computations to be expressed clearly and concisely.

Changes to tip/283.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 283: Modify Ensemble Command Resolution Behaviour
	Author:         Miguel Sofer <[email protected]>
	Author:         Neil Madden <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        01-Oct-2006
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes that ensembles resolve all commands in their namespace.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 283: Modify Ensemble Command Resolution Behaviour
	Author:         Miguel Sofer <[email protected]>
	Author:         Neil Madden <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        01-Oct-2006
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Ticket:     1577282
-----

# Abstract

This TIP proposes that ensembles resolve all commands in their namespace.

# Rationale
Changes to tip/284.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 284: New 'invoke' and 'namespace invoke' Commands
	Author:         Miguel Sofer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        01-Oct-2006
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP exposes a Tcl script-level interface to the direct command invokation
engine already present in the Tcl library for years.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 284: New 'invoke' and 'namespace invoke' Commands
	Author:         Miguel Sofer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        01-Oct-2006
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Ticket:     1577324
-----

# Abstract

This TIP exposes a Tcl script-level interface to the direct command invokation
engine already present in the Tcl library for years.

Changes to tip/290.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 290: Registration of Custom Error Handler Scripts
	Author:         Eckhard Lehmann <[email protected]>
	Author:         Larry W. Virden <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        29-Oct-2006
	Post-History:   
	Keywords:       Tcl,error,trap
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes the possibility to register a custom command as error and exception handler.

# Rationale










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 290: Registration of Custom Error Handler Scripts
	Author:         Eckhard Lehmann <[email protected]>
	Author:         Larry W. Virden <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        29-Oct-2006
	Post-History:   
	Keywords:       Tcl,error,trap
	Tcl-Version:    8.7
	Tcl-Ticket:     1587317
-----

# Abstract

This TIP proposes the possibility to register a custom command as error and exception handler.

# Rationale
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

# Specification

The implementation consists of two parts: a registration command for the custom command and a place where the handler is called. For this to work, there are some minor changes necessary to the Tcl execution engine and to the Interp structure. For running the handler on caught and or uncaught errors \(depending on how the user wants to have it\) it is necessary to capture the current level of "catch"es that occure during execution.

The registration command is responsible for:

    * register the command for caught and/or uncaught exceptions

    * retrieve the currently registered command

    * change the execution details \(caught and/or uncaught errors\) and the command

    * unregister the command and thus get back to the current behaviour in error cases

Since the functionality is very similar to the family of **trace** commands, the proposed registration command is an extension to trace:

**trace set exception ?-caught? ?-uncaught? ?command?**: Registration and modification

The arguments _-caught_ and/or _-uncaught_ to _trace set exception_ modify the run conditions for the currently registered handler \(run on caught/uncaught errors\). With the _command_ argument, this is set as the new handler. The return code and result of the command that was executing is appended to the registered _command_. So, the real call is: _command code result_.

**trace info exception**: Information about the current handler

This command returns a list with the elements \{-caught y/n -uncaught y/n script\}, where caught and uncaught flags are specified and script is the currently registered handler.

**trace unset exception**: Remove registerred handler

Any previously set error handler is unregistered.

The _command_ that is registered will quell the error if it returns normal \(return code 0\). If the script returns abnormal, it's return code is returned to the interpreter. Errors inside the handler are not trapped by the script again, rather they are presented to the interpreter as usual - otherwise this would result in an endless loop.

The changes in the execution engine should be done so that:

    * existing functionality is not disturbed

    * the call frame is preserved after the error occured - thus the custom command is run in the same level as where the error was thrown

    * the _::errorInfo_ and _::errorCode_ variables are updated to contain the error information **that is available in the current callframe**. This information must be updated before the custom command is run, so that it is accessible from there.

The innermost function that is called on Tcl code execution is _TclEvalObjvInternal\(\)_. It is called from others to execute a command and returns the code that the executed command returned. It's the best place to trigger the error handler execution, but whether errors are catched \(catchLevel\) must be present at this time. Therefore, this level is stored in the current Interp\* from within the callers of _TclEvalObjvInternal\(\)_. The catch level can be determined either from _TclExecuteByteCode\(\)_ or from _Tcl\_CatchObjCmd\(\)_ directly.

The errorInfo and errorCode variables are set directly before the handler is run. This ensures that they are updated properly. Eventually registerred traces on this variable are handled as usual, before the custom error command is executed.

# Reference Implementation








|

|

|

|



















|

|

|







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

# Specification

The implementation consists of two parts: a registration command for the custom command and a place where the handler is called. For this to work, there are some minor changes necessary to the Tcl execution engine and to the Interp structure. For running the handler on caught and or uncaught errors \(depending on how the user wants to have it\) it is necessary to capture the current level of "catch"es that occure during execution.

The registration command is responsible for:

   * register the command for caught and/or uncaught exceptions

   * retrieve the currently registered command

   * change the execution details \(caught and/or uncaught errors\) and the command

   * unregister the command and thus get back to the current behaviour in error cases

Since the functionality is very similar to the family of **trace** commands, the proposed registration command is an extension to trace:

**trace set exception ?-caught? ?-uncaught? ?command?**: Registration and modification

The arguments _-caught_ and/or _-uncaught_ to _trace set exception_ modify the run conditions for the currently registered handler \(run on caught/uncaught errors\). With the _command_ argument, this is set as the new handler. The return code and result of the command that was executing is appended to the registered _command_. So, the real call is: _command code result_.

**trace info exception**: Information about the current handler

This command returns a list with the elements \{-caught y/n -uncaught y/n script\}, where caught and uncaught flags are specified and script is the currently registered handler.

**trace unset exception**: Remove registerred handler

Any previously set error handler is unregistered.

The _command_ that is registered will quell the error if it returns normal \(return code 0\). If the script returns abnormal, it's return code is returned to the interpreter. Errors inside the handler are not trapped by the script again, rather they are presented to the interpreter as usual - otherwise this would result in an endless loop.

The changes in the execution engine should be done so that:

   * existing functionality is not disturbed

   * the call frame is preserved after the error occured - thus the custom command is run in the same level as where the error was thrown

   * the _::errorInfo_ and _::errorCode_ variables are updated to contain the error information **that is available in the current callframe**. This information must be updated before the custom command is run, so that it is accessible from there.

The innermost function that is called on Tcl code execution is _TclEvalObjvInternal\(\)_. It is called from others to execute a command and returns the code that the executed command returned. It's the best place to trigger the error handler execution, but whether errors are catched \(catchLevel\) must be present at this time. Therefore, this level is stored in the current Interp\* from within the callers of _TclEvalObjvInternal\(\)_. The catch level can be determined either from _TclExecuteByteCode\(\)_ or from _Tcl\_CatchObjCmd\(\)_ directly.

The errorInfo and errorCode variables are set directly before the handler is run. This ensures that they are updated properly. Eventually registerred traces on this variable are handled as usual, before the custom error command is executed.

# Reference Implementation

Changes to tip/312.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 312: Add More Link Types
	Author:         Rene Zaumseil <[email protected]>
	Author:         Larry W. Virden <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        26-Jan-2008
	Post-History:   
	Keywords:       variable,trace
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes adding a command, **Tcl\_LinkArray**, to allow linking of C
variables to Tcl lists. It also adds more types of linked variable.











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 312: Add More Link Types
	Author:         Rene Zaumseil <[email protected]>
	Author:         Larry W. Virden <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        26-Jan-2008
	Post-History:   
	Keywords:       variable,trace
	Tcl-Version:    8.7
	Tcl-Ticket:     1992824
-----

# Abstract

This TIP proposes adding a command, **Tcl\_LinkArray**, to allow linking of C
variables to Tcl lists. It also adds more types of linked variable.

Changes to tip/342.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 342: Dict Get With Default
	Author:		Lars Hellström <[email protected]>
	State:		Draft
	Type:		Project
	Vote:		Pending
	Tcl-Version:	8.7
	Created:	27-Nov-2008
	Keywords:	dictionary, default value
	Post-History:	

-----

# Abstract

A new subcommand of **dict** is proposed, which returns a dictionary value
if it exists and returns a per-call default otherwise.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 342: Dict Get With Default
	Author:		Lars Hellström <[email protected]>
	State:		Draft
	Type:		Project
	Vote:		Pending
	Tcl-Version:	8.7
	Created:	27-Nov-2008
	Keywords:	dictionary, default value
	Post-History:	
	Tcl-Ticket:     2370575
-----

# Abstract

A new subcommand of **dict** is proposed, which returns a dictionary value
if it exists and returns a per-call default otherwise.

107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

Even if it is deemed appropriate to have a dedicated subcommand of **dict**
for this, it could be argued that it needn't be part of the compiled Tcl core;
since **dict** is an ensemble, anyone can extend it at the script level and
"the core can do without this bloat". However, it turns out than an in-core
implementation is very easy whereas the alternatives are not so easy.

Concretely, the necessary DictGetWithDefaultCmd is a trivial modification of
DictExistsCmd, to take one extra argument after the _key_s and change the
final

	  Tcl_SetObjResult(interp, Tcl_NewBooleanObj(valuePtr != NULL));

to

	  Tcl_SetObjResult(interp, valuePtr != NULL ? valuePtr : objv[objc-1]);

It is nowhere near as easy to do this in a well-behaved extension, since
DictExistsCmd relies on TclTraceDictPath to do most of the work, and the
latter is AFAICT at best available in the internal stubs table.

A script-level implementation is certainly possible, but the minute details of
producing core-looking error messages in this case appears considerable both
compared to the functional parts of the command and compared to the amount of
code needed to do it in the core.








|
|









|







108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133

Even if it is deemed appropriate to have a dedicated subcommand of **dict**
for this, it could be argued that it needn't be part of the compiled Tcl core;
since **dict** is an ensemble, anyone can extend it at the script level and
"the core can do without this bloat". However, it turns out than an in-core
implementation is very easy whereas the alternatives are not so easy.

Concretely, the necessary `DictGetWithDefaultCmd` is a trivial modification of
`DictExistsCmd`, to take one extra argument after the _key_s and change the
final

	  Tcl_SetObjResult(interp, Tcl_NewBooleanObj(valuePtr != NULL));

to

	  Tcl_SetObjResult(interp, valuePtr != NULL ? valuePtr : objv[objc-1]);

It is nowhere near as easy to do this in a well-behaved extension, since
`DictExistsCmd` relies on `TclTraceDictPath` to do most of the work, and the
latter is AFAICT at best available in the internal stubs table.

A script-level implementation is certainly possible, but the minute details of
producing core-looking error messages in this case appears considerable both
compared to the functional parts of the command and compared to the amount of
code needed to do it in the core.

Changes to tip/345.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 345: Kill the 'identity' Encoding
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        05-Feb-2009
	Post-History:
	Discussions-To: Tcl Core List
	Keywords:       Tcl,encoding,invalid UTF-8
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to remove the 'identity' encoding which is the Pandora's Box
of invalid UTF-8 string representations.











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 345: Kill the 'identity' Encoding
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        05-Feb-2009
	Post-History:
	Discussions-To: Tcl Core List
	Keywords:       Tcl,encoding,invalid UTF-8
	Tcl-Version:    8.7
	Tcl-Ticket:     2564363
-----

# Abstract

This TIP proposes to remove the 'identity' encoding which is the Pandora's Box
of invalid UTF-8 string representations.

Changes to tip/346.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 346: Error on Failed String Encodings
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        02-Feb-2009
	Post-History:   
	Keywords:       Tcl,encoding,convertto,strict,Unicode,String,ByteArray
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to raise an error when an encoding-based conversion
loses information.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 346: Error on Failed String Encodings
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        02-Feb-2009
	Post-History:   
	Keywords:       Tcl,encoding,convertto,strict,Unicode,String,ByteArray
	Tcl-Version:    8.7
	Tcl-Ticket:     1665628
-----

# Abstract

This TIP proposes to raise an error when an encoding-based conversion
loses information.

Changes to tip/351.md.
1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
# TIP 351: Add Striding Support to lsearch
	Author:         Peter da Silva <[email protected]>
	Author:         Donal K. Fellows <[email protected]>
	Author:         Harald Oehlmann <[email protected]>
	Author:         Andreas Leitgeb <[email protected]>
	State:          Final 
	Type:           Project
	Vote:           Done
	Created:        09-Jul-2009
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP allows the searching of lists that are grouped into collections of
several elements.












>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# TIP 351: Add Striding Support to lsearch
	Author:         Peter da Silva <[email protected]>
	Author:         Donal K. Fellows <[email protected]>
	Author:         Harald Oehlmann <[email protected]>
	Author:         Andreas Leitgeb <[email protected]>
	State:          Final 
	Type:           Project
	Vote:           Done
	Created:        09-Jul-2009
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     tip-351
-----

# Abstract

This TIP allows the searching of lists that are grouped into collections of
several elements.

Changes to tip/355.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 355: Stop Fast Recycling of Channel Names on Unix
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        01-Sep-2009
	Tcl-Version:    8.7
	Post-History:   

-----

# Abstract

This TIP proposes to put an end to the unix-specific habit of naming channels
after the underlying file descriptor, by using a much longer-lived incremented
counter instead.








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 355: Stop Fast Recycling of Channel Names on Unix
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        01-Sep-2009
	Tcl-Version:    8.7
	Post-History:   
	Tcl-Ticket:     2826430
-----

# Abstract

This TIP proposes to put an end to the unix-specific habit of naming channels
after the underlying file descriptor, by using a much longer-lived incremented
counter instead.
Changes to tip/366.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 366: Variable Sized Indicators for Menubuttons
	Author:         Russell Davidson <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        29-Apr-2010
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7

-----

# Abstract

This TIP is to allow custom sizing of menubutton indicators using
**-indwidth** and **-indheight** as options.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 366: Variable Sized Indicators for Menubuttons
	Author:         Russell Davidson <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        29-Apr-2010
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Ticket:      2996760
-----

# Abstract

This TIP is to allow custom sizing of menubutton indicators using
**-indwidth** and **-indheight** as options.

Changes to tip/369.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 369: Widget cargo command
	Author:         Russell Davidson <[email protected]>
	Author:         Trevor Davel <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        15-Jul-2010
	Post-History:   
	Keywords:       Tk,user-defined data,dictionary
	Tcl-Version:    8.7

-----

# Abstract

This TIP is to add a **cargo** subcommand to widgets for storing data in a
data dictionary. This TIP is related to [[349]](349.md).











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 369: Widget cargo command
	Author:         Russell Davidson <[email protected]>
	Author:         Trevor Davel <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        15-Jul-2010
	Post-History:   
	Keywords:       Tk,user-defined data,dictionary
	Tcl-Version:    8.7
	Tk-Ticket:      3023578
-----

# Abstract

This TIP is to add a **cargo** subcommand to widgets for storing data in a
data dictionary. This TIP is related to [[349]](349.md).

Changes to tip/389.md.
1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
# TIP 389: Full support for Unicode 10.0 and later (part 1)
	Author:         Jan Nijtmans <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        23-Aug-2011
	Post-History:   
	Discussions-To: Tcl Core list
	Keywords:       Tcl
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to add full support for all characters in Unicode 10.0\+,
inclusive the characters >= **U\+010000**.












>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# TIP 389: Full support for Unicode 10.0 and later (part 1)
	Author:         Jan Nijtmans <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        23-Aug-2011
	Post-History:   
	Discussions-To: Tcl Core list
	Keywords:       Tcl
	Tcl-Version:    8.7
	Tcl-Branch:     tip-389
-----

# Abstract

This TIP proposes to add full support for all characters in Unicode 10.0\+,
inclusive the characters >= **U\+010000**.

161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
in a character with length 2 (the original one) and another character with
length 0 (the empty string).

Also note that the regexp engine still cannot really handle Unicode characters >U+FFFF,
it will handle those as if they consist of 2 separate characters. Most usage of
regular expressions won't notice the difference.

Those caveats are planned to be handled in "part 2" (TIP #497)

# Reference Implementation

A reference implementation is available in the [tip-389 branch]
(https://core.tcl.tk/tk/timeline?r=tip-389).

# Rejected Alternatives







|







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
in a character with length 2 (the original one) and another character with
length 0 (the empty string).

Also note that the regexp engine still cannot really handle Unicode characters >U+FFFF,
it will handle those as if they consist of 2 separate characters. Most usage of
regular expressions won't notice the difference.

Those caveats are planned to be handled in "part 2" ([TIP #497](497.md))

# Reference Implementation

A reference implementation is available in the [tip-389 branch]
(https://core.tcl.tk/tk/timeline?r=tip-389).

# Rejected Alternatives
Changes to tip/401.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 401: Comment Words with Leading {#}
	Author:         Lars Hellström <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        29-Apr-2012
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

The basic syntax rules of Tcl \(the "dodekalogue"\) are modified to allow words
that are comments. In analogy with the argument expansion **\{\*\}**, such
comment words will begin with **\{\#\}** \(left brace, hash sign, right brace\).  








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 401: Comment Words with Leading {#}
	Author:         Lars Hellström <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        29-Apr-2012
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     tip-401
-----

# Abstract

The basic syntax rules of Tcl \(the "dodekalogue"\) are modified to allow words
that are comments. In analogy with the argument expansion **\{\*\}**, such
comment words will begin with **\{\#\}** \(left brace, hash sign, right brace\).  
Changes to tip/402.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 402: General Platform UNC Support
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Jul-2011
	Post-History:   
	Discussions-To: Tcl Core list
	Keywords:       Tcl
	Tcl-Version:    8.7

-----

# Abstract

Both Windows and Cygwin interpret paths starting with **//** as a special
prefix, indicating that the path has the form: **//server/share/file\_path**.
Windows has built-in handling of such paths built-in. UNIX doesn't have this.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 402: General Platform UNC Support
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Jul-2011
	Post-History:   
	Discussions-To: Tcl Core list
	Keywords:       Tcl
	Tcl-Version:    8.7
	Tcl-Branch:     jn-unc-vfs
-----

# Abstract

Both Windows and Cygwin interpret paths starting with **//** as a special
prefix, indicating that the path has the form: **//server/share/file\_path**.
Windows has built-in handling of such paths built-in. UNIX doesn't have this.
Changes to tip/406.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 406: "C" is for Cookie
	State:		Draft
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Pending
	Post-History:	
	Author:		Donal K. Fellows <[email protected]>
	Created:	01-Aug-2012

-----

# Abstract

The "http" package needs cookie support, especially to support complex modern
web authentication protocols. This TIP defines a pluggable interface and a
TclOO class that implements that interface so that Tcl programmers can control








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 406: "C" is for Cookie
	State:		Draft
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Pending
	Post-History:	
	Author:		Donal K. Fellows <[email protected]>
	Created:	01-Aug-2012
	Tcl-Branch:	dkf-http-cookies
-----

# Abstract

The "http" package needs cookie support, especially to support complex modern
web authentication protocols. This TIP defines a pluggable interface and a
TclOO class that implements that interface so that Tcl programmers can control
Changes to tip/414.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# 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

-----

# 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.









>







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.
Changes to tip/415.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 415: Enable Easy Creation of Circular Arc Segments
	Author:         Simon Geard <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Oct-2012
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7

-----

# Abstract

Creating a segment of a circular arc is unnecessarily difficult using the
**canvas** arc. This TIP proposes a simple extension of the syntax to
support the creation of circular arc segments in a natural way. A similar









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 415: Enable Easy Creation of Circular Arc Segments
	Author:         Simon Geard <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Oct-2012
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Branch:      tip-415
-----

# Abstract

Creating a segment of a circular arc is unnecessarily difficult using the
**canvas** arc. This TIP proposes a simple extension of the syntax to
support the creation of circular arc segments in a natural way. A similar
Changes to tip/421.md.
8
9
10
11
12
13
14

15
16
17
18
19
20
21
	Author:		Brad Lanam <[email protected]>
	Author:		Donal K. Fellows <[email protected]>
	Created:	28-Nov-2012
	Updated:	24-Oct-2017
	For:		DKF, AF, JN, SL, KBK, DGP, AK
	Against:	none
	Present:	none

-----

# Abstract

This TIP proposes an efficient mechanism for iterating over the contents of a
large array.








>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
	Author:		Brad Lanam <[email protected]>
	Author:		Donal K. Fellows <[email protected]>
	Created:	28-Nov-2012
	Updated:	24-Oct-2017
	For:		DKF, AF, JN, SL, KBK, DGP, AK
	Against:	none
	Present:	none
	Tcl-Branch:     tip-421
-----

# Abstract

This TIP proposes an efficient mechanism for iterating over the contents of a
large array.

Changes to tip/422.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 422: Don't Use stdarg.h/va_list in Public API
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        02-Jan-2013
	Post-History:
	Tcl-Version:    9.0
	Keywords:	Tcl, API removal, varargs

-----

# Abstract

This TIP proposes to remove all functions which use the `va_list` type from
the public API, and it describes what extensions using this should do to make
their extension portable on the mingw-w64 gcc compiler on the AMD64 platform.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 422: Don't Use stdarg.h/va_list in Public API
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        02-Jan-2013
	Post-History:
	Tcl-Version:    9.0
	Keywords:	Tcl, API removal, varargs
	Tcl-Branch:     tip-422
-----

# Abstract

This TIP proposes to remove all functions which use the `va_list` type from
the public API, and it describes what extensions using this should do to make
their extension portable on the mingw-w64 gcc compiler on the AMD64 platform.
Changes to tip/424.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 424: Improving [exec]
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        07-Jul-2013
	Post-History:   
	Keywords:       Tcl,subprocess,execution
	Tcl-Version:    8.7

-----

# Abstract

This extension overcomes day-1 limitations of [**exec**]'s syntax,
allowing for unconstrained arguments to commands, and opening the path to more
exotic redirections.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 424: Improving [exec]
	Author:         Alexandre Ferrieux <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        07-Jul-2013
	Post-History:   
	Keywords:       Tcl,subprocess,execution
	Tcl-Version:    8.7
	Tcl-Branch:     tip-improve-exec
-----

# Abstract

This extension overcomes day-1 limitations of [**exec**]'s syntax,
allowing for unconstrained arguments to commands, and opening the path to more
exotic redirections.
Changes to tip/425.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 425: Correct use of UTF-8 in Panic Callback (Windows only)
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        17-Jul-2013
	Post-History:   
	Keywords:       Tcl,platform integration,i18n
	Tcl-Version:    8.7

-----

# Abstract

The default panic proc on Windows console applications writes the
message in UTF-8 to stderr. Unfortunately, the Windows console
normally does not have UTF-8 as code page but some single-byte









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 425: Correct use of UTF-8 in Panic Callback (Windows only)
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        17-Jul-2013
	Post-History:   
	Keywords:       Tcl,platform integration,i18n
	Tcl-Version:    8.7
	Tcl-Branch:     win-console-panic
-----

# Abstract

The default panic proc on Windows console applications writes the
message in UTF-8 to stderr. Unfortunately, the Windows console
normally does not have UTF-8 as code page but some single-byte
Changes to tip/426.md.
1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
# TIP 426: Determining the "Type" of Commands
	State:		Final
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Done
	Post-History:	
	Author:		Donal K. Fellows <[email protected]>
	Created:	31-Jul-2013
	Keywords:	introspection, commands, Tcl, Tk
	Vote-Results:   4/2/3 accepted
	Votes-For:      DKF, BG, JN, JD
	Votes-Against:  DGP, AK
	Votes-Present:  KBK, FV, SL

-----

# Abstract

This TIP describes a mechanism for determining what "type" of command
a particular command is. This can be used as a prelude to performing
other kinds of introspection, such as using **info body**,













>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# TIP 426: Determining the "Type" of Commands
	State:		Final
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Done
	Post-History:	
	Author:		Donal K. Fellows <[email protected]>
	Created:	31-Jul-2013
	Keywords:	introspection, commands, Tcl, Tk
	Vote-Results:   4/2/3 accepted
	Votes-For:      DKF, BG, JN, JD
	Votes-Against:  DGP, AK
	Votes-Present:  KBK, FV, SL
	Tcl-Branch:     dkf-command-type
-----

# Abstract

This TIP describes a mechanism for determining what "type" of command
a particular command is. This can be used as a prelude to performing
other kinds of introspection, such as using **info body**,
Changes to tip/428.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 428: Produce Error Dictionary from 'fconfigure -error'
	Author:         Harald Oehlmann <[email protected]>
	Author:         Harald Oehlmann <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Mar-2014
	Post-History:   
	Keywords:       socket,non-blocking,error reporting,option dictionary
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes a new method which allows to return the error message and the error code of a background socket error \(as reported by **fconfigure -error**\), similar to the option dictionaries produced by catch and try and consumed by return.

# Rationale










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 428: Produce Error Dictionary from 'fconfigure -error'
	Author:         Harald Oehlmann <[email protected]>
	Author:         Harald Oehlmann <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Mar-2014
	Post-History:   
	Keywords:       socket,non-blocking,error reporting,option dictionary
	Tcl-Version:    8.7
	Tcl-Branch:     tip-428
-----

# Abstract

This TIP proposes a new method which allows to return the error message and the error code of a background socket error \(as reported by **fconfigure -error**\), similar to the option dictionaries produced by catch and try and consumed by return.

# Rationale
Changes to tip/430.md.
9
10
11
12
13
14
15

16
17
18
19
20
21
22
	Created:        03-Sep-2014
	Post-History:
	Keywords:       virtual filesystem,zip,tclkit,boot,bootstrap
	Tcl-Version:    8.7
	Votes-For:      DKF, KBK, SL, AK, JD, JN (partially)
	Votes-Against:  JN (partially)
	Present:        JN (partially)

-----

# Abstract

This proposal will add basic support for mounting zip archive files as virtual
filesystems to the Tcl core.








>







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
	Created:        03-Sep-2014
	Post-History:
	Keywords:       virtual filesystem,zip,tclkit,boot,bootstrap
	Tcl-Version:    8.7
	Votes-For:      DKF, KBK, SL, AK, JD, JN (partially)
	Votes-Against:  JN (partially)
	Present:        JN (partially)
	Tcl-Branch:     core_zip_vfs
-----

# Abstract

This proposal will add basic support for mounting zip archive files as virtual
filesystems to the Tcl core.

Changes to tip/439.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 439: Semantic Versioning
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        08-Dec-2015
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

The version schema used by Tcl and Tk has the form MAJOR.MINOR.PATCH, which is
the same schema used by "Semantic Versioning" <http://semver.org/> . For alpha
and beta releases the schema is MAJOR.MINORaPATCH resp MAJOR.MINORbPATCH,








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 439: Semantic Versioning
	Author:         Jan Nijtmans <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        08-Dec-2015
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     semver
-----

# Abstract

The version schema used by Tcl and Tk has the form MAJOR.MINOR.PATCH, which is
the same schema used by "Semantic Versioning" <http://semver.org/> . For alpha
and beta releases the schema is MAJOR.MINORaPATCH resp MAJOR.MINORbPATCH,
Changes to tip/442.md.
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
# TIP 442: Display text in progressbars
	Author:         René Zaumseil <[email protected]>
	Author:         Kevin B Kenny <[email protected]>
	Author:         Andreas Leitgeb <[email protected]>
	Author:         Kevin Kenny <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        17-Feb-2016
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7

-----

# Abstract

Horizontal progress bars should support the ability to display text inside the progress bar.
Buttons should allow justification of multiline texts.













>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# TIP 442: Display text in progressbars
	Author:         René Zaumseil <[email protected]>
	Author:         Kevin B Kenny <[email protected]>
	Author:         Andreas Leitgeb <[email protected]>
	Author:         Kevin Kenny <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        17-Feb-2016
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Branch:      tip-442
-----

# Abstract

Horizontal progress bars should support the ability to display text inside the progress bar.
Buttons should allow justification of multiline texts.

Changes to tip/444.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 444: Add "weekdays" unit in clock add
	Author:         Pietro Cerutti <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        23-Feb-2016
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes an enhancement to the **clock add** command to support
performing days arithmetic using weekdays only.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 444: Add "weekdays" unit in clock add
	Author:         Pietro Cerutti <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        23-Feb-2016
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     tip-444
-----

# Abstract

This TIP proposes an enhancement to the **clock add** command to support
performing days arithmetic using weekdays only.

Changes to tip/445.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 445: Tcl_ObjType Utility Routines
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        18-Mar-2016
	Post-History:   
	Tcl-Version:	8.7

-----

# Abstract

Proposes additional public routines useful for extensions that implement
custom **Tcl\_ObjType_s.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 445: Tcl_ObjType Utility Routines
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        18-Mar-2016
	Post-History:   
	Tcl-Version:	8.7
	Tcl-Branch:     tip-445
-----

# Abstract

Proposes additional public routines useful for extensions that implement
custom **Tcl\_ObjType_s.

Changes to tip/447.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 447: Execution Time Verbosity Levels in tcltest::configure
	Author:         Pietro Cerutti <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        20-Apr-2016
	Post-History:   
	Keywords:       Tcl,tcltest
	Tcl-Version:    8.7

-----

# Abstract

The **-verbose** option of the **tcltest::configure** command accepts a set of
verbosity levels to specify what pieces of information about tests the user
wants reported. This TIP proposes the addition of two new verbosity levels to









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 447: Execution Time Verbosity Levels in tcltest::configure
	Author:         Pietro Cerutti <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        20-Apr-2016
	Post-History:   
	Keywords:       Tcl,tcltest
	Tcl-Version:    8.7
	Tcl-Branch:     gahr-tip-447
-----

# Abstract

The **-verbose** option of the **tcltest::configure** command accepts a set of
verbosity levels to specify what pieces of information about tests the user
wants reported. This TIP proposes the addition of two new verbosity levels to
Changes to tip/449.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 449: [text] undo/redo to Return Range of Characters
	Author:         François Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        07-Jun-2016
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7

-----

# Abstract

Tk features an undo/redo mechanism for the **text** widget. This TIP
proposes that the **edit undo** and **edit redo** commands of the text
widget return the ranges of characters impacted by the undo or redo operation.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 449: [text] undo/redo to Return Range of Characters
	Author:         François Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        07-Jun-2016
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Branch:      tip-449
-----

# Abstract

Tk features an undo/redo mechanism for the **text** widget. This TIP
proposes that the **edit undo** and **edit redo** commands of the text
widget return the ranges of characters impacted by the undo or redo operation.
Changes to tip/451.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 451: Modify [update] to Give Full Script Access to Tcl_DoOneEvent
	Author:         Colin McCormack <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        10-Aug-2016
	Post-History:   
	Keywords:       Tcl,event loop
	Tcl-Version:    8.7

-----

# Abstract

This TIP add flags to **update** to represent all the flag values available
to the underlying API, _Tcl\_DoOneEvent\(\)_, exposing them to script access.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 451: Modify [update] to Give Full Script Access to Tcl_DoOneEvent
	Author:         Colin McCormack <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        10-Aug-2016
	Post-History:   
	Keywords:       Tcl,event loop
	Tcl-Version:    8.7
	Tcl-Branch:     updateextended
-----

# Abstract

This TIP add flags to **update** to represent all the flag values available
to the underlying API, _Tcl\_DoOneEvent\(\)_, exposing them to script access.

Changes to tip/452.md.
8
9
10
11
12
13
14

15
16
17
18
19
20
21
	Created:        10-Aug-2016
	Post-History:   
	Tcl-Version:    8.7
	Vote-Results:   2/4/3 rejection in favour of further work
	Votes-For:      KBK, JD
	Votes-Against:  DKF, JN, DGP, AK
	Votes-Present:  BG, FV, SL

-----

# Abstract

This TIP proposes an enhancement to the **tcltest** package to add support
for easy creation of test stubs, mocks and seams.








>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
	Created:        10-Aug-2016
	Post-History:   
	Tcl-Version:    8.7
	Vote-Results:   2/4/3 rejection in favour of further work
	Votes-For:      KBK, JD
	Votes-Against:  DKF, JN, DGP, AK
	Votes-Present:  BG, FV, SL
	Tcl-Branch:     tip-452
-----

# Abstract

This TIP proposes an enhancement to the **tcltest** package to add support
for easy creation of test stubs, mocks and seams.

Changes to tip/456.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 456: Extend the C API to Support Passing Options to TCP Server Creation
	Author:         LemonBoy <[email protected]>
	Author:         lime boy <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        18-Nov-2016
	Post-History:   
	Keywords:       Tcl,socket,SO_REUSEPORT,SO_REUSEADDR
	Tcl-Version:    8.7

-----

# Abstract

The **Tcl\_OpenTcpServer** interface doesn't provide enough flexibility as
experienced during the implementation of the scaffolding necessary to support
the **SO\_REUSEPORT** flag for sockets. This TIP adds that capability through










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 456: Extend the C API to Support Passing Options to TCP Server Creation
	Author:         LemonBoy <[email protected]>
	Author:         lime boy <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        18-Nov-2016
	Post-History:   
	Keywords:       Tcl,socket,SO_REUSEPORT,SO_REUSEADDR
	Tcl-Version:    8.7
	Tcl-Branch:     tip-456
-----

# Abstract

The **Tcl\_OpenTcpServer** interface doesn't provide enough flexibility as
experienced during the implementation of the scaffolding necessary to support
the **SO\_REUSEPORT** flag for sockets. This TIP adds that capability through
Changes to tip/457.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 457: Add Support for Named Arguments
	Author:         Mathieu Lafon <[email protected]>
	Author:         Andreas Leitgeb <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        21-Nov-2016
	Post-History:   
	Keywords:       Tcl,procedure,argument handling
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes an enhancement of the Tcl language to support named
arguments and additional features when calling a procedure.











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 457: Add Support for Named Arguments
	Author:         Mathieu Lafon <[email protected]>
	Author:         Andreas Leitgeb <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        21-Nov-2016
	Post-History:   
	Keywords:       Tcl,procedure,argument handling
	Tcl-Version:    8.7
	Tcl-Branch:     tip-457
-----

# Abstract

This TIP proposes an enhancement of the Tcl language to support named
arguments and additional features when calling a procedure.

Changes to tip/458.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 458: Add Support for epoll() and kqueue() in the Notifier
	Author:         Lucio Andrés Illanes Albornoz <[email protected]>
	Author:         Lucio Andrés Illanes Albornoz <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        24-Nov-2016
	Post-History:   
	Keywords:       event loop,scalability
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to replace _select_\(2\) in the notifier implementation with _epoll_\(7\) and _kqueue_\(2\) on Linux and DragonFly-, Free-, Net-, and OpenBSD respectively. This is to remove a major bottleneck in the ability of Tcl to scale up to thousands and tens of thousands of sockets \(aka **C10K**\).
Furthermore, this should also provide sufficient infrastructure in order to permit adding support for other platform-specific event mechanisms in the future, such as IOCPs on Solaris and Windows.











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 458: Add Support for epoll() and kqueue() in the Notifier
	Author:         Lucio Andrés Illanes Albornoz <[email protected]>
	Author:         Lucio Andrés Illanes Albornoz <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        24-Nov-2016
	Post-History:   
	Keywords:       event loop,scalability
	Tcl-Version:    8.7
	Tcl-Branch:     tip-458
-----

# Abstract

This TIP proposes to replace _select_\(2\) in the notifier implementation with _epoll_\(7\) and _kqueue_\(2\) on Linux and DragonFly-, Free-, Net-, and OpenBSD respectively. This is to remove a major bottleneck in the ability of Tcl to scale up to thousands and tens of thousands of sockets \(aka **C10K**\).
Furthermore, this should also provide sufficient infrastructure in order to permit adding support for other platform-specific event mechanisms in the future, such as IOCPs on Solaris and Windows.

Changes to tip/459.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 459: Tcl Package Introspection Improvements
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        08-Dec-2016
	Post-History:   
	Keywords:       Tcl,package
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to improve package introspection by providing a new command
**package files**.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 459: Tcl Package Introspection Improvements
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        08-Dec-2016
	Post-History:   
	Keywords:       Tcl,package
	Tcl-Version:    8.7
	Tcl-Branch:     package_files
-----

# Abstract

This TIP proposes to improve package introspection by providing a new command
**package files**.

Changes to tip/460.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 460: An Alternative to Upvar
	Author:         Don Hathway <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        08-Dec-2016
	Post-History:   
	Keywords:       Tcl,variable,link,upvar
	Tcl-Version:    9.0

-----

# Abstract

Variable linking with the _upvar_ command is not as intuitive or effecient
as it should be. This TIP proposes an alternative through automatic variable
linking.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 460: An Alternative to Upvar
	Author:         Don Hathway <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        08-Dec-2016
	Post-History:   
	Keywords:       Tcl,variable,link,upvar
	Tcl-Version:    9.0
	Tcl-Branch:     dah-proc-arg-upvar
-----

# Abstract

Variable linking with the _upvar_ command is not as intuitive or effecient
as it should be. This TIP proposes an alternative through automatic variable
linking.
Changes to tip/462.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 462: Add New [::tcl::process] Ensemble for Subprocess Management
	Author:         Frédéric Bonnet <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        23-Jan-2017
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to improve Tcl's handling of subprocesses created by the 
`exec` and `open` commands by adding a new `::tcl::process` ensemble.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 462: Add New [::tcl::process] Ensemble for Subprocess Management
	Author:         Frédéric Bonnet <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        23-Jan-2017
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     tip-462
-----

# Abstract

This TIP proposes to improve Tcl's handling of subprocesses created by the 
`exec` and `open` commands by adding a new `::tcl::process` ensemble.

Changes to tip/463.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 463: Command-Driven Substitutions for regsub
	State:		Final
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Done
	Post-History:	
	Author:		Donal Fellows <[email protected]>
	Created:	11-Feb-2017
	Keywords:	Tcl, regular expression

-----

# Abstract

The **regsub** command can only do substitutions of a limited complexity.
This TIP adds an option to generate substitution text using another Tcl
command, allowing a more complex range of substitutions to be performed easily









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 463: Command-Driven Substitutions for regsub
	State:		Final
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Done
	Post-History:	
	Author:		Donal Fellows <[email protected]>
	Created:	11-Feb-2017
	Keywords:	Tcl, regular expression
	Tcl-Branch:	tip-463
-----

# Abstract

The **regsub** command can only do substitutions of a limited complexity.
This TIP adds an option to generate substitution text using another Tcl
command, allowing a more complex range of substitutions to be performed easily
Changes to tip/465.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 465: Change Rule 8 of the Dodekalogue to Cut Some Corner Cases
	Author:         Andreas Leitgeb <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        03-Mar-2017
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to make **$**-substitution more conforming to naive
expectations and just rule out certain odd-ball uses that can safely be
assumed to not appear in serious use, but only in crafted examples "serving"








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 465: Change Rule 8 of the Dodekalogue to Cut Some Corner Cases
	Author:         Andreas Leitgeb <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        03-Mar-2017
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     tip-465
-----

# Abstract

This TIP proposes to make **$**-substitution more conforming to naive
expectations and just rule out certain odd-ball uses that can safely be
assumed to not appear in serious use, but only in crafted examples "serving"
Changes to tip/466.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 466: Revised Implementation of the Text Widget
	Author:         François Vogel <[email protected]>
	Author:         Gregor Cramer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        10-Mar-2017
	Post-History:   
	Keywords:       Tk,text widget
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes the replacement of the current implementation of the text
widget \(the "legacy" text widget\) by a revised implementation offering a large
number of advantages.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 466: Revised Implementation of the Text Widget
	Author:         François Vogel <[email protected]>
	Author:         Gregor Cramer <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        10-Mar-2017
	Post-History:   
	Keywords:       Tk,text widget
	Tcl-Version:    8.7
	Tk-Branch:      revised_text
-----

# Abstract

This TIP proposes the replacement of the current implementation of the text
widget \(the "legacy" text widget\) by a revised implementation offering a large
number of advantages.
Changes to tip/468.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 468: Support Passing TCP listen Backlog Size Option to TCP Socket Creation
	Author:		Shannon Noe <[email protected]>
	State:		Draft
	Type:		Project
	Vote:		Pending
	Created:	03-Apr-2017
	Post-History:  
	Keywords:	Tcl, socket, SOMAXCONN
	Tcl-Version:	8.7

-----

# Abstract

This TIP adds the ability to control the TCP backlog depth used by the
_listen_ system call within the **socket** Command. The API function,
**Tcl\_OpenTcpServerEx**, will be extended to allow the passing of the









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 468: Support Passing TCP listen Backlog Size Option to TCP Socket Creation
	Author:		Shannon Noe <[email protected]>
	State:		Draft
	Type:		Project
	Vote:		Pending
	Created:	03-Apr-2017
	Post-History:  
	Keywords:	Tcl, socket, SOMAXCONN
	Tcl-Version:	8.7
	Tcl-Branch:		tip-468-bis
-----

# Abstract

This TIP adds the ability to control the TCP backlog depth used by the
_listen_ system call within the **socket** Command. The API function,
**Tcl\_OpenTcpServerEx**, will be extended to allow the passing of the
Changes to tip/469.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 469: A Callback for Channel-Exception Conditions
	Author:         Andreas Leitgeb <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Apr-2017
	Post-History:   
	Keywords:       Tcl,event handling
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to extend the **fileevent** Tcl command to also accept the
keyword **exception** for its second argument. This will allow to register a
callback for the specific event that the OS reports an exception on the









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 469: A Callback for Channel-Exception Conditions
	Author:         Andreas Leitgeb <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        16-Apr-2017
	Post-History:   
	Keywords:       Tcl,event handling
	Tcl-Version:    8.7
	Tcl-Branch:     tip-469
-----

# Abstract

This TIP proposes to extend the **fileevent** Tcl command to also accept the
keyword **exception** for its second argument. This will allow to register a
callback for the specific event that the OS reports an exception on the
Changes to tip/470.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 470: Reliable Access to OO Definition Context Object
	State:		Final
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Done
	Post-History:	
	Author:		Donal Fellows <[email protected]>
	Created:	23-Apr-2017
	Keywords:	TclOO, metaprogramming

-----

# Abstract

This TIP makes it easier for people to write procedures to extend TclOO's
definition sublanguage.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 470: Reliable Access to OO Definition Context Object
	State:		Final
	Type:		Project
	Tcl-Version:	8.7
	Vote:		Done
	Post-History:	
	Author:		Donal Fellows <[email protected]>
	Created:	23-Apr-2017
	Keywords:	TclOO, metaprogramming
	Tcl-Branch:	tip-470
-----

# Abstract

This TIP makes it easier for people to write procedures to extend TclOO's
definition sublanguage.

Changes to tip/471.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 471: Add [info linkedname] Introspection Command
	Author:         Mathieu Lafon <[email protected]>
	State:          Draft
	Type:           Project
	Created:        05-May-2017
	Tcl-Version:    8.7
	Vote:		Pending
	Post-History:

-----

# Abstract

This TIP proposes to improve link variable introspection by providing a new
**info linkedname** command.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 471: Add [info linkedname] Introspection Command
	Author:         Mathieu Lafon <[email protected]>
	State:          Draft
	Type:           Project
	Created:        05-May-2017
	Tcl-Version:    8.7
	Vote:		Pending
	Post-History:
	Tcl-Branch:     info-linkedname
-----

# Abstract

This TIP proposes to improve link variable introspection by providing a new
**info linkedname** command.

Changes to tip/472.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 472: Add Support for 0d Radix Prefix to Integer Literals
	Author:         Venkat Iyer <[email protected]>
	Author:         Brian Griffin <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        25-May-2017
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes adding support for a **0d** decimal radix prefix to
complement the existing **0x** hexidecimal, **0o** octal and **0b**
binary radix prefixes.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 472: Add Support for 0d Radix Prefix to Integer Literals
	Author:         Venkat Iyer <[email protected]>
	Author:         Brian Griffin <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        25-May-2017
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     bsg-0d-radix-prefix
-----

# Abstract

This TIP proposes adding support for a **0d** decimal radix prefix to
complement the existing **0x** hexidecimal, **0o** octal and **0b**
binary radix prefixes.
Changes to tip/476.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 476: Scan/Printf format consistency
	Author: Jan Nijtmans ([email protected])
	State: Final
	Type: Project
	Vote: Done
	Created: 27-Sep-2017
	Post-history: PM
	Tcl-Version: 8.7
	Keywords: scan printf

-----

# Abstract

The Scan/Printf format handlers are originally derived from the
C-equivalent `scan()` and `printf()` functions. Since ISO C99 there is
the `inttypes.h` header file, which defines useful macros. But since








|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 476: Scan/Printf format consistency
	Author: Jan Nijtmans ([email protected])
	State: Final
	Type: Project
	Vote: Done
	Created: 27-Sep-2017
	Post-history: PM
	Tcl-Version: 8.7
	Keywords: scan, printf
	Tcl-Branch: z_modifier
-----

# Abstract

The Scan/Printf format handlers are originally derived from the
C-equivalent `scan()` and `printf()` functions. Since ISO C99 there is
the `inttypes.h` header file, which defines useful macros. But since
Changes to tip/478.md.
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
# TIP 478: Add Expected Class Level Behaviors to oo::class
	Author:         Gerald Lester <[email protected]>
	Author:         Donal K. Fellows <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        18-Oct-2017
	Post-History:   
	Keywords:       Tcl
	Tcl-Version:    8.7
	Votes-For:      DKF, AK, JD, SL, JN
	Votes-Against:  none

-----
# Abstract

TclOO provides a native OO system for Tcl.  This TIP is to enhance it to meet some of the common expectations of people coming in from other languages.

# Rationale













>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# TIP 478: Add Expected Class Level Behaviors to oo::class
	Author:         Gerald Lester <[email protected]>
	Author:         Donal K. Fellows <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        18-Oct-2017
	Post-History:   
	Keywords:       Tcl
	Tcl-Version:    8.7
	Votes-For:      DKF, AK, JD, SL, JN
	Votes-Against:  none
	Tcl-Branch:     tip-478
-----
# Abstract

TclOO provides a native OO system for Tcl.  This TIP is to enhance it to meet some of the common expectations of people coming in from other languages.

# Rationale

Changes to tip/479.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 479: Add Named Procedures as a New Command in Tcl (procx)
	Author:         Sean Woods <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        23-Oct-2017
	Post-History:
	Keywords:       Tcl,procedure,argument handling
	Tcl-Version:    8.7

-----
# Abstract

This TIP proposes an enhancement of the Tcl language to support named
parameters when defining a procedure or OO method.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 479: Add Named Procedures as a New Command in Tcl (procx)
	Author:         Sean Woods <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        23-Oct-2017
	Post-History:
	Keywords:       Tcl,procedure,argument handling
	Tcl-Version:    8.7
	Tcl-Branch:     tip479
-----
# Abstract

This TIP proposes an enhancement of the Tcl language to support named
parameters when defining a procedure or OO method.

# Rationale
Changes to tip/481.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# 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

-----
# Abstract

This TIP proposes enhancing various C API functions which having a `int *` parameter,
to be used with a `size_t *` parameter as well. In addition, a new `Tcl_GetValue()`
function is proposed which can retrieve a signed or unsigned (wide) integer or a
float/double/long double from a `Tcl_Obj`, .









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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

This TIP proposes enhancing various C API functions which having a `int *` parameter,
to be used with a `size_t *` parameter as well. In addition, a new `Tcl_GetValue()`
function is proposed which can retrieve a signed or unsigned (wide) integer or a
float/double/long double from a `Tcl_Obj`, .
Changes to tip/482.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 482: Record Tk demo directory information
	Author:         Stuart Cassoff <[email protected]>
	State:          Accepted
	Type:           Project
	Vote:           Done
	Created:        03-Nov-2017
	Post-History:   
	Keywords:       Tk, demos, configuration
	Tcl-Version:    8.7

-----
# Abstract

The Tk demos can be installed anywhere but this location is not recorded anywhere.
This TIP proposes recording the demo directory location.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 482: Record Tk demo directory information
	Author:         Stuart Cassoff <[email protected]>
	State:          Accepted
	Type:           Project
	Vote:           Done
	Created:        03-Nov-2017
	Post-History:   
	Keywords:       Tk, demos, configuration
	Tcl-Version:    8.7
	Tk-Branch:      tk-stu-pkg
-----
# Abstract

The Tk demos can be installed anywhere but this location is not recorded anywhere.
This TIP proposes recording the demo directory location.

# Rationale
Changes to tip/483.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 483: Improved TIP #59 implementation for Tk
	Author:         Stuart Cassoff <[email protected]>
	State:          Accepted
	Type:           Project
	Vote:           Done
	Created:        03-Nov-2017
	Post-History:   
	Keywords:       Tk, configuration
	Tcl-Version:    8.7

-----
# Abstract

Initially implemented in TIP #205 [[205]](205.md), the TIP #59 [[59]](59.md) implementation for Tk is incomplete.

This TIP proposes a more complete TIP #59 implementation for Tk.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 483: Improved TIP #59 implementation for Tk
	Author:         Stuart Cassoff <[email protected]>
	State:          Accepted
	Type:           Project
	Vote:           Done
	Created:        03-Nov-2017
	Post-History:   
	Keywords:       Tk, configuration
	Tcl-Version:    8.7
	Tk-Branch:      tk-stu-pkg
-----
# Abstract

Initially implemented in TIP #205 [[205]](205.md), the TIP #59 [[59]](59.md) implementation for Tk is incomplete.

This TIP proposes a more complete TIP #59 implementation for Tk.

Changes to tip/484.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 484: Merge 'int' and 'wideInt' Obj-type to a single 'int'
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        06-Nov-2017
	Post-History:
	Keywords:       Tcl
	Tcl-Version:    8.7

-----
# Abstract

The 'wideInt' type was invented for Tcl because the 'int' type (which was
actually 'long') was not sufficient to store numbers larger than [+-]2**31.
This TIP proposes to merge the 'int' and the 'wideInt' Obj-types such that
'int' does all internal calculations using Tcl_WideInt in stead of long.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 484: Merge 'int' and 'wideInt' Obj-type to a single 'int'
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        06-Nov-2017
	Post-History:
	Keywords:       Tcl
	Tcl-Version:    8.7
	Tcl-Branch:     no-wideint
-----
# Abstract

The 'wideInt' type was invented for Tcl because the 'int' type (which was
actually 'long') was not sufficient to store numbers larger than [+-]2**31.
This TIP proposes to merge the 'int' and the 'wideInt' Obj-types such that
'int' does all internal calculations using Tcl_WideInt in stead of long.
Changes to tip/485.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 485: Remove Deprecated API
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        08-Nov-2017
	Post-History:   
	Tcl-Version:    9.0

-----

# Abstract

The "case" command, and the "read\|puts ... nonewline" construct are replaced
by better commands long ago (resp. "switch" and "read\|puts -nonewline ..."),
but the old forms were never actually removed from the Tcl code base. They still








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 485: Remove Deprecated API
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        08-Nov-2017
	Post-History:   
	Tcl-Version:    9.0
	Tcl-Branch:     tip-485
-----

# Abstract

The "case" command, and the "read\|puts ... nonewline" construct are replaced
by better commands long ago (resp. "switch" and "read\|puts -nonewline ..."),
but the old forms were never actually removed from the Tcl code base. They still
Changes to tip/487.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 487: Stop support for Pre-XP Windows 
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        20-Nov-2017
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

Windows CE will be end-of-life in 2018, june 9 (See:
[here](http://rfsmart.com/blog/hardware-tip-operating-systems-end-of-life). This is
still about half a year away, but it seems counter-productive to support Pre-XP Windows








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 487: Stop support for Pre-XP Windows 
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        20-Nov-2017
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     tip-487
-----

# Abstract

Windows CE will be end-of-life in 2018, june 9 (See:
[here](http://rfsmart.com/blog/hardware-tip-operating-systems-end-of-life). This is
still about half a year away, but it seems counter-productive to support Pre-XP Windows
Changes to tip/488.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 488: Remove tcl_precision
	Author:         Arjen Markus <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        24-Nov-2017
	Post-History:
	Keywords:       Tcl, string representation, floating-point
	Tcl-Version:    9.0

-----
<!-- TOC BEGIN (auto generated with tiptoc) -->
* <a href='#toc-2'>Abstract</a>
* <a href='#toc-3'>Rationale</a>
* <a href='#toc-4'>Proposal</a>
* <a href='#toc-5'>Compatibility considerations</a>
* <a href='#toc-6'>Reference Implementation</a>









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 488: Remove tcl_precision
	Author:         Arjen Markus <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        24-Nov-2017
	Post-History:
	Keywords:       Tcl, string representation, floating-point
	Tcl-Version:    9.0
	Tcl-Branch:     tip-488
-----
<!-- TOC BEGIN (auto generated with tiptoc) -->
* <a href='#toc-2'>Abstract</a>
* <a href='#toc-3'>Rationale</a>
* <a href='#toc-4'>Proposal</a>
* <a href='#toc-5'>Compatibility considerations</a>
* <a href='#toc-6'>Reference Implementation</a>
Changes to tip/489.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 489: Add image widget command to the Tk canvas
	Author:         Scott Pitcher <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        02-Dec-2017
	Post-History:
	Keywords:       canvas, image
	Tcl-Version:    8.7

-----

# Abstract

This TIP adds an **image** widget command to the Tk canvas. This new command provides a mechanism for the contents of the canvas to be drawn onto a Tk photo image.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 489: Add image widget command to the Tk canvas
	Author:         Scott Pitcher <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        02-Dec-2017
	Post-History:
	Keywords:       canvas, image
	Tcl-Version:    8.7
	Tk-Branch:      canvas_image
-----

# Abstract

This TIP adds an **image** widget command to the Tk canvas. This new command provides a mechanism for the contents of the canvas to be drawn onto a Tk photo image.

# Rationale
Changes to tip/490.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 490: msgcat for TclOO
	Author:         Harald Oehlmann <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        07-Dec-2017
	Post-History:
	Keywords:       msgcat, oo
	Tcl-Version:    8.7

-----

# Abstract

Package **msgcat** implements message catalogues for packages organized in nested namespaces.
This TIP proposes the extension to TclOO.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 490: msgcat for TclOO
	Author:         Harald Oehlmann <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        07-Dec-2017
	Post-History:
	Keywords:       msgcat, oo
	Tcl-Version:    8.7
	Tcl-Branch:     tip490-msgcat-oo-2
-----

# Abstract

Package **msgcat** implements message catalogues for packages organized in nested namespaces.
This TIP proposes the extension to TclOO.

Changes to tip/491.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 491: Threading Support: phasing out non-threaded builds
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        11-Dec-2017
	Post-History:
	Keywords:       threads
	Tcl-Version:    8.7

-----

# Abstract

Since [TIP #364](364.md) proposed improving thread support, time has come to gradually phase out
non-threaded builds on all platforms. On Windows and MacOSX, there are known problems
on non-threaded build. But also on UNIX it is becoming increasingly difficult to support









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 491: Threading Support: phasing out non-threaded builds
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        11-Dec-2017
	Post-History:
	Keywords:       threads
	Tcl-Version:    8.7
	Tcl-Branch:     tip-491
-----

# Abstract

Since [TIP #364](364.md) proposed improving thread support, time has come to gradually phase out
non-threaded builds on all platforms. On Windows and MacOSX, there are known problems
on non-threaded build. But also on UNIX it is becoming increasingly difficult to support
Changes to tip/492.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 492: Introspection for 'tk busy'
	Author:         Francois Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        19-Dec-2017
	Post-History:
	Keywords:       tk busy
	Tcl-Version:    8.7

-----

# Abstract

This TIP provides user access to the busy window that Tk uses to let a user think a widget is busy.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 492: Introspection for 'tk busy'
	Author:         Francois Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        19-Dec-2017
	Post-History:
	Keywords:       tk busy
	Tcl-Version:    8.7
	Tk-Branch:      tip-492
-----

# Abstract

This TIP provides user access to the busy window that Tk uses to let a user think a widget is busy.

# Rationale
Changes to tip/493.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 493: Cease Distribution of http 1.0
	Author:         Don Porter <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        29-Dec-2017
	Post-History:   
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to stop distributing package http 1.0 with Tcl source
code distributions.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 493: Cease Distribution of http 1.0
	Author:         Don Porter <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        29-Dec-2017
	Post-History:   
	Tcl-Version:    8.7
	Tcl-Branch:     tip-493
-----

# Abstract

This TIP proposes to stop distributing package http 1.0 with Tcl source
code distributions.

Changes to tip/494.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 494: More use of size_t in Tcl 9
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        29-Dec-2017
	Post-History:
	Keywords:       tcl
	Tcl-Version:    9.0

-----

# Abstract

This TIP describes the non-controversial part of the Tcl 9 changes: Make Tcl 9 ready for the 64-bit era.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 494: More use of size_t in Tcl 9
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        29-Dec-2017
	Post-History:
	Keywords:       tcl
	Tcl-Version:    9.0
	Tcl-Branch:     memory-API
-----

# Abstract

This TIP describes the non-controversial part of the Tcl 9 changes: Make Tcl 9 ready for the 64-bit era.

# Rationale
Changes to tip/495.md.
180
181
182
183
184
185
186
187
188
189
	  }
	}

# More Info

*This is a work in progress.*

Details are trickling in from the Practcl project

[http://www.etoyoc.com/tcl/Practcl.pdf]







|
<
<
180
181
182
183
184
185
186
187


	  }
	}

# More Info

*This is a work in progress.*

Details are trickling in from the [Practcl project](http://www.etoyoc.com/tcl/Practcl.pdf).


Changes to tip/496.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 496: Display hints in ::entry ::spinbox ::ttk::entry ::ttk::spinbox and ::ttk::combobox
	Author:         René Zaumseil <[email protected]>
	Author:         François Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        17-Jan-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7

-----

# Abstract

Entry fields should support the ability to display informational text when no text is given.

# Rationale










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 496: Display hints in ::entry ::spinbox ::ttk::entry ::ttk::spinbox and ::ttk::combobox
	Author:         René Zaumseil <[email protected]>
	Author:         François Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        17-Jan-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Branch:      tip-496
-----

# Abstract

Entry fields should support the ability to display informational text when no text is given.

# Rationale
Changes to tip/497.md.
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
# TIP 497: Full support for Unicode 11.0 and later (part 2)
	Author:         Jan Nijtmans <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        23-Jan-2018
	Post-History:   
	Discussions-To: Tcl Core list
	Keywords:       Tcl
	Tcl-Version:    9.0

-----

# Abstract

This TIP proposes to add full support for all characters in Unicode 10.0\+,
inclusive the characters >= **U\+010000**, even the adaptation in the regexp
engine. Also, the caveats remaining from TIP #389 will be handled here.












>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# TIP 497: Full support for Unicode 11.0 and later (part 2)
	Author:         Jan Nijtmans <[email protected]>
	Author:         Jan Nijtmans <[email protected]>
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        23-Jan-2018
	Post-History:   
	Discussions-To: Tcl Core list
	Keywords:       Tcl
	Tcl-Version:    9.0
	Tcl-Branch:     tip-497
-----

# Abstract

This TIP proposes to add full support for all characters in Unicode 10.0\+,
inclusive the characters >= **U\+010000**, even the adaptation in the regexp
engine. Also, the caveats remaining from TIP #389 will be handled here.
Changes to tip/498.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 498: Simplify Tcl_DeleteNamespace
	Author:         Nathan Coulter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        18-Jan-2016
	Post-History:
	Keywords:       tcl
	Tcl-Version:    8.7

-----


# Abstract

Simplify the implementation of `Tcl_DeleteNamespace` in order to make behaviour
more consistent, facilitate the resolution of outstanding issues, and pave the









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 498: Simplify Tcl_DeleteNamespace
	Author:         Nathan Coulter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        18-Jan-2016
	Post-History:
	Keywords:       tcl
	Tcl-Version:    8.7
	Tcl-Branch:     bug-e593adf103-core-8
-----


# Abstract

Simplify the implementation of `Tcl_DeleteNamespace` in order to make behaviour
more consistent, facilitate the resolution of outstanding issues, and pave the
Changes to tip/499.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 499: Custom locale search list for msgcat
	Author:         Harald Oehlmann <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        07-Dec-2017
	Post-History:
	Keywords:       msgcat, oo
	Tcl-Version:    8.7

-----

# Abstract

Package **msgcat** derives its locale search list from one specified locale by constructing a list of this locales and their precedor.
This TIP proposes to allow a custom locale search list, which may contain any locale.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 499: Custom locale search list for msgcat
	Author:         Harald Oehlmann <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        07-Dec-2017
	Post-History:
	Keywords:       msgcat, oo
	Tcl-Version:    8.7
	Tcl-Branch:     tip499-msgcat-custom-preferences
-----

# Abstract

Package **msgcat** derives its locale search list from one specified locale by constructing a list of this locales and their precedor.
This TIP proposes to allow a custom locale search list, which may contain any locale.

Changes to tip/500.md.
1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
# TIP 500: Private Methods and Variables in TclOO
	Author:         Donal K. Fellows <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        10-Feb-2018
	Post-History:
	Keywords:       Tcl, object orientation, visibility
	Tcl-Version:    8.7
	Votes-For:      DKF, JN, AF, JD, SL, AK, KBK
	Votes-Against:  none

-----

# Abstract

This TIP proposes a mechanism for private methods and variables in TclOO.
Private methods are methods that can only be called from methods of the same
class. Private variables have names so that they are unlikely to be used











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# TIP 500: Private Methods and Variables in TclOO
	Author:         Donal K. Fellows <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        10-Feb-2018
	Post-History:
	Keywords:       Tcl, object orientation, visibility
	Tcl-Version:    8.7
	Votes-For:      DKF, JN, AF, JD, SL, AK, KBK
	Votes-Against:  none
	Tcl-Branch:     tip-500
-----

# Abstract

This TIP proposes a mechanism for private methods and variables in TclOO.
Private methods are methods that can only be called from methods of the same
class. Private variables have names so that they are unlikely to be used
Changes to tip/501.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 501: string is dict
	Author:         Sean Woods <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        12-Feb-2018
	Post-History:
	Keywords:       Tcl,string
	Tcl-Version:    8.7

-----
# Abstract
This tip proposes the addition of an *is dict* test to the string ensemble. The command
will return true if the value is a valid dict, and false otherwise.

# Rationale










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 501: string is dict
	Author:         Sean Woods <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        12-Feb-2018
	Post-History:
	Keywords:       Tcl,string
	Tcl-Version:    8.7
	Tcl-Branch:     tip-501
-----
# Abstract
This tip proposes the addition of an *is dict* test to the string ensemble. The command
will return true if the value is a valid dict, and false otherwise.

# Rationale

Changes to tip/502.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 502: Index Value Reform
	Author:         Don Porter <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        26-Feb-2018
	Post-History:   
	Tcl-Version:	8.7

-----

# Abstract

Proposes reformed handling of Tcl index values.

# Background








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 502: Index Value Reform
	Author:         Don Porter <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        26-Feb-2018
	Post-History:   
	Tcl-Version:	8.7
	Tcl-Branch:     tip-502
-----

# Abstract

Proposes reformed handling of Tcl index values.

# Background
Changes to tip/503.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 503: End Tcl 8.3 Source Compatibility Support
	Author:         Don Porter <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        05-Feb-2018
	Post-History:   
	Tcl-Version:	8.7

-----

# Abstract

Stop supporting source compatibility with pre-8.4 Tcl.

# Background








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 503: End Tcl 8.3 Source Compatibility Support
	Author:         Don Porter <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        05-Feb-2018
	Post-History:   
	Tcl-Version:	8.7
	Tcl-Branch:     tip-503
-----

# Abstract

Stop supporting source compatibility with pre-8.4 Tcl.

# Background
Changes to tip/504.md.
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
# TIP 504: New subcommand [string insert]
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        21-Mar-2018
	Obsoletes:	475
	Post-History:   
	Keywords:	Tcl,string,insert
	Tcl-Version:	8.7

-----

# Abstract

This TIP proposes a [`string insert`] subcommand for inserting a substring at a
given index.  This new [`string insert`] command is to be the string analogue of
[`linsert`].










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# TIP 504: New subcommand [string insert]
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        21-Mar-2018
	Obsoletes:	475
	Post-History:   
	Keywords:	Tcl,string,insert
	Tcl-Version:	8.7
	Tcl-Branch:     dgp-string-insert
-----

# Abstract

This TIP proposes a [`string insert`] subcommand for inserting a substring at a
given index.  This new [`string insert`] command is to be the string analogue of
[`linsert`].
Changes to tip/506.md.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
# TIP 506: Purge RefCount Macros
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        30-Mar-2018
	Post-History:   
	Tcl-Version:	9.0

-----

# Abstract

Stop having all extensions and applications use macros to access the
**refCount** field of the **Tcl_Obj** struct.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# TIP 506: Purge RefCount Macros
	Author:         Don Porter <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Pending
	Created:        30-Mar-2018
	Post-History:   
	Tcl-Version:	9.0
	Tcl-Branch:     tip-506
-----

# Abstract

Stop having all extensions and applications use macros to access the
**refCount** field of the **Tcl_Obj** struct.

Changes to tip/507.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 507: Include simple svg support with nanosvg
	Author:         René Zaumseil <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           
	Created:        9-May-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7

-----

# Abstract

Tk needs scalable images on high res mobile devices. This TIP proposes to let Tk be able to read an SVG image (plus information about orientation and pixel scale) and make it into a photo. It is therefore a (lossy and single direction) conversion operation from an SVG format to a pixel format.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 507: Include simple svg support with nanosvg
	Author:         René Zaumseil <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           
	Created:        9-May-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Branch:      tip-507
-----

# Abstract

Tk needs scalable images on high res mobile devices. This TIP proposes to let Tk be able to read an SVG image (plus information about orientation and pixel scale) and make it into a photo. It is therefore a (lossy and single direction) conversion operation from an SVG format to a pixel format.

# Rationale
Changes to tip/508.md.
1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
# TIP 508: New subcommand [array default]
	Author:         Frédéric Bonnet <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        13-May-2018
	Post-History:   
	Keywords:       Tcl,array
	Tcl-Version:	8.7
	Vote-Results:   9/0/0 accepted
	Votes-For:      DKF, BG, KBK, JN, JD, DGP, FV, SL, AK
	Votes-Against:  none
	Votes-Present:  none

-----

# Abstract

This TIP proposes a new **array default** subcommand that allows default values
for arrays, causing that value to be returned any time an attempt is made to
access an element of the array that isn't present.













>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# TIP 508: New subcommand [array default]
	Author:         Frédéric Bonnet <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        13-May-2018
	Post-History:   
	Keywords:       Tcl,array
	Tcl-Version:	8.7
	Vote-Results:   9/0/0 accepted
	Votes-For:      DKF, BG, KBK, JN, JD, DGP, FV, SL, AK
	Votes-Against:  none
	Votes-Present:  none
	Tcl-Branch:     tip-508
-----

# Abstract

This TIP proposes a new **array default** subcommand that allows default values
for arrays, causing that value to be returned any time an attempt is made to
access an element of the array that isn't present.
Changes to tip/509.md.
1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
# TIP 509: Implement reentrant mutexes on all platforms
	Author:         Frédéric Bonnet <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        24-May-2018
	Post-History:   
	Keywords:       Tcl,threads
	Tcl-Version:	8.7
	Vote-Results:   8/0/1 accepted
	Votes-For:      DKF, KBK, JN, JD, DGP, FV, SL, AK
	Votes-Against:  none
	Votes-Present:  BG

-----

# Abstract

This TIP proposes to improve the `Tcl_Mutex` API by enforcing a consistent
behavior on all core-supported platforms regarding reentrancy.














>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# TIP 509: Implement reentrant mutexes on all platforms
	Author:         Frédéric Bonnet <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        24-May-2018
	Post-History:   
	Keywords:       Tcl,threads
	Tcl-Version:	8.7
	Vote-Results:   8/0/1 accepted
	Votes-For:      DKF, KBK, JN, JD, DGP, FV, SL, AK
	Votes-Against:  none
	Votes-Present:  BG
	Tcl-Branch:     tip-509
-----

# Abstract

This TIP proposes to improve the `Tcl_Mutex` API by enforcing a consistent
behavior on all core-supported platforms regarding reentrancy.

Changes to tip/510.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 510: Add Rbc to Tk
	Author:         René Zaumseil <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           
	Created:        5-Jun-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7

-----

# Abstract

*Rbc* aka "Refactored BLT Components" provides some widgets which are missing in *Tk*.
This tip intend to add *Rbc* in the same way as *Ttk* to *Tk*.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 510: Add Rbc to Tk
	Author:         René Zaumseil <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           
	Created:        5-Jun-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Branch:      tip-510
-----

# Abstract

*Rbc* aka "Refactored BLT Components" provides some widgets which are missing in *Tk*.
This tip intend to add *Rbc* in the same way as *Ttk* to *Tk*.

Changes to tip/512.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# 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

-----

# Abstract

This TIP proposes to remove the stub entries for `Tcl_SetExitProc()`,
`Tcl_SetPanicProc()`, `Tcl_FindExecutable()` and (for Tk) `Tk_MainEx()`.
The normal exported symbols for those functions will be kept intact.









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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
-----

# Abstract

This TIP proposes to remove the stub entries for `Tcl_SetExitProc()`,
`Tcl_SetPanicProc()`, `Tcl_FindExecutable()` and (for Tk) `Tk_MainEx()`.
The normal exported symbols for those functions will be kept intact.
Changes to tip/514.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 514: Platform differences in handling int/wide
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        20-Aug-2018
	Post-History:   
	Keywords:       Tcl
	Tcl-Version:	8.7

-----

# Abstract

This TIP proposes to resolve the platform differences between int/wide/entier math functions and commands like "sting is integer"/"string is wide"/"string is entier".
At the script level it should not be relevant whether the platform is 32-bit or 64-bit any more.










>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 514: Platform differences in handling int/wide
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        20-Aug-2018
	Post-History:   
	Keywords:       Tcl
	Tcl-Version:	8.7
	Tcl-Branch:     tip-514
-----

# Abstract

This TIP proposes to resolve the platform differences between int/wide/entier math functions and commands like "sting is integer"/"string is wide"/"string is entier".
At the script level it should not be relevant whether the platform is 32-bit or 64-bit any more.

Changes to tip/515.md.
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
# TIP 515: Level Value Reform
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        7-Sept-2018
	Post-History:   
	Tcl-Version:	8.7
	Vote-Results:   8/0/1 accepted
	Votes-For:      DKF, KBK, JN, JD, DGP, FV, SL, AK
	Votes-Against:  none
	Votes-Present:  BG

-----

# Abstract

Proposes reformed handling of Tcl level values. This TIP is inspired by TIP #502, which handles "index" values, realizing that "level" values have
kind of the same problems as described there.













>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# TIP 515: Level Value Reform
	Author:         Jan Nijtmans <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        7-Sept-2018
	Post-History:   
	Tcl-Version:	8.7
	Vote-Results:   8/0/1 accepted
	Votes-For:      DKF, KBK, JN, JD, DGP, FV, SL, AK
	Votes-Against:  none
	Votes-Present:  BG
	Tcl-Branch:     tip-515
-----

# Abstract

Proposes reformed handling of Tcl level values. This TIP is inspired by TIP #502, which handles "index" values, realizing that "level" values have
kind of the same problems as described there.

Changes to tip/516.md.
1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
# TIP 516: More OO Slot Operations
	Author:         Donal K. Fellows <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        7-Sept-2018
	Post-History:   
	Tcl-Version:	8.7
	Keywords:       Tcl, TclOO
	Vote-Results:   4/0/5 accepted
	Votes-For:      DKF, JN, JD, AK
	Votes-Against:  none
	Votes-Present:  BG, KBK, DGP, FV, SL

-----

# Abstract

This TIP proposes to add some more operations to slots by updating the class
that implements them.














>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# TIP 516: More OO Slot Operations
	Author:         Donal K. Fellows <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        7-Sept-2018
	Post-History:   
	Tcl-Version:	8.7
	Keywords:       Tcl, TclOO
	Vote-Results:   4/0/5 accepted
	Votes-For:      DKF, JN, JD, AK
	Votes-Against:  none
	Votes-Present:  BG, KBK, DGP, FV, SL
	Tcl-Branch:     tip-516
-----

# Abstract

This TIP proposes to add some more operations to slots by updating the class
that implements them.

Changes to tip/517.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 517: Add -activerelief Configuration Option to the menu widget
	Author:         Francois Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        13-Sept-2018
	Post-History:
	Keywords:       tk menu
	Tcl-Version:    8.7

-----

# Abstract

This TIP proposes to get rid of the motif-style rendering that is still how the active menu entry is rendered on Linux.

# Rationale









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 517: Add -activerelief Configuration Option to the menu widget
	Author:         Francois Vogel <[email protected]>
	State:          Final
	Type:           Project
	Vote:           Done
	Created:        13-Sept-2018
	Post-History:
	Keywords:       tk menu
	Tcl-Version:    8.7
	Tk-Branch:      tip-517
-----

# Abstract

This TIP proposes to get rid of the motif-style rendering that is still how the active menu entry is rendered on Linux.

# Rationale
Changes to tip/518.md.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
# TIP 518: Virtual Event when Last Child is not Managed any more
	Author:         Harald Oehlmann <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Done
	Created:        22-Sep-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7.0

-----
# Abstract

A **frame**-like widget has 1x1 required size if created.
If children are added by pack/grid and the last children is unpacked/grid, the frame-like widget does not return to the 1x1 required size.
Instead, it keeps the size of the last packed item.
It should automatically or under control resize to the initial requested size of 1x1.








|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TIP 518: Virtual Event when Last Child is not Managed any more
	Author:         Harald Oehlmann <[email protected]>
	State:          Draft
	Type:           Project
	Vote:           Done
	Created:        22-Sep-2018
	Post-History:   
	Keywords:       Tk
	Tcl-Version:    8.7
	Tk-Branch:      tip518-event-last-child-unmanaged
-----
# Abstract

A **frame**-like widget has 1x1 required size if created.
If children are added by pack/grid and the last children is unpacked/grid, the frame-like widget does not return to the 1x1 required size.
Instead, it keeps the size of the last packed item.
It should automatically or under control resize to the initial requested size of 1x1.
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
And there is nothing, a programmer can do, as the Configure event does not fire on the scrolled frame widget.

Another example is the scrolledwindow example by Emiliano in ticket 2863003fff <https://core.tcl.tk/tk/info/12006979562649c9> , where the solution 2 specific part may be removed \(or is ignored\).

A typical workaround is to configure the width/height manually after the last children was unmapped.
Unfortunately, this fact may not be determined for example by scrolling widgets etc. An eventual Configure binding is not firing.

Within this TIP, a new virtual event \<\<NoManagedChild\>\> is fired to inform about no remaining childs.

# Example

Here is an example to ilustrate the issue.
It consisting of a simple scrolling megawidget.
The megawidget exposes a frame where a user may pack or grid other widgets and the scrollbar is adjusted following the changing content.
This works well when widgets are added or removed. Only removing the last client will not update the scrollbar. With the proposed patch applied, it will update the scrollbar also when the last user widget is removed.

Please paste the code below to a wish console or execute it.
On startup it shows on the console:

	requested frame height: 1

Then press the "\+" button to add a user widget. The console output is:

	+

	requested frame height: 100

Technically, the frame ".c.f.i1" was packed into the client frame ".c.f".
The client frame ".c.f" changes its requested size to hold the new child, which invokes the Convigure event and adjustes the scrolling region of the canvas.
The new scrolling region is shown graphically by the scrollbar.

Then press the "-" button to remove the user widget. The console output is:
	-
So, the child widget ".c.f.i1" is destroyed, but the frame ".c.f" does not rechange its requested size to 1x1 \(initial value\) but stays at 100x100 showing an empty plane.







|










>


|
>
|
>

>







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
And there is nothing, a programmer can do, as the Configure event does not fire on the scrolled frame widget.

Another example is the scrolledwindow example by Emiliano in ticket 2863003fff <https://core.tcl.tk/tk/info/12006979562649c9> , where the solution 2 specific part may be removed \(or is ignored\).

A typical workaround is to configure the width/height manually after the last children was unmapped.
Unfortunately, this fact may not be determined for example by scrolling widgets etc. An eventual Configure binding is not firing.

Within this TIP, a new virtual event `<<NoManagedChild>>` is fired to inform about no remaining childs.

# Example

Here is an example to ilustrate the issue.
It consisting of a simple scrolling megawidget.
The megawidget exposes a frame where a user may pack or grid other widgets and the scrollbar is adjusted following the changing content.
This works well when widgets are added or removed. Only removing the last client will not update the scrollbar. With the proposed patch applied, it will update the scrollbar also when the last user widget is removed.

Please paste the code below to a wish console or execute it.
On startup it shows on the console:

	requested frame height: 1

Then press the "\+" button to add a user widget. The console output
is:

	+
	requested frame height: 100

Technically, the frame ".c.f.i1" was packed into the client frame ".c.f".
The client frame ".c.f" changes its requested size to hold the new child, which invokes the Convigure event and adjustes the scrolling region of the canvas.
The new scrolling region is shown graphically by the scrollbar.

Then press the "-" button to remove the user widget. The console output is:
	-
So, the child widget ".c.f.i1" is destroyed, but the frame ".c.f" does not rechange its requested size to 1x1 \(initial value\) but stays at 100x100 showing an empty plane.
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
	    .c configure -scrollregion [list 0 0 100 $y]
	}
	frameConfigure
	bind .c.f <Configure> frameConfigure

# Proposal

The proposal is to fire the new virtual event \<\<NoManagedChild\>\> if the last children is unpacked/ungridded/destroyed.
A managing widget may bind to this event and do the resize of the widget or other appropriate action.

Here are additional lines for the example above.

	proc frameNoChild {} {
	    .c.f configure -height 1
	    .c.f configure -height 0







|







93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
	    .c configure -scrollregion [list 0 0 100 $y]
	}
	frameConfigure
	bind .c.f <Configure> frameConfigure

# Proposal

The proposal is to fire the new virtual event `<<NoManagedChild>>` if the last children is unpacked/ungridded/destroyed.
A managing widget may bind to this event and do the resize of the widget or other appropriate action.

Here are additional lines for the example above.

	proc frameNoChild {} {
	    .c.f configure -height 1
	    .c.f configure -height 0
125
126
127
128
129
130
131
132
133
134
135
136
137
138
This is a logical and elegant proposal.

TIP 454 was withdrawn due to:

   1. if the geometry manager is changed (ex: pack to grid), there is a flickering introduced.
   2. an additional Configure event was introduced which breaks present script.

To invoke \<\<Configure\>\> instead \<\<NoManagedChild\>\> would trigger incompatibility 2 of TIP454.
Due to that, a new virtual event is proposed.

# Copyright

This document has been placed in the public domain.








|






130
131
132
133
134
135
136
137
138
139
140
141
142
143
This is a logical and elegant proposal.

TIP 454 was withdrawn due to:

   1. if the geometry manager is changed (ex: pack to grid), there is a flickering introduced.
   2. an additional Configure event was introduced which breaks present script.

To invoke `<<Configure>>` instead `<<NoManagedChild>>` would trigger incompatibility 2 of TIP454.
Due to that, a new virtual event is proposed.

# Copyright

This document has been placed in the public domain.