TIP #3: TIP Format


TIP:3
Title:TIP Format
Version:$Revision: 1.8 $
Authors: Andreas Kupries <a dot kupries at westend dot com>
Donal K. Fellows <fellowsd at cs dot man dot ac dot uk>
State:Accepted
Type:Process
Vote:Done
Created:Thursday, 14 September 2000

Abstract

This TIP is a companion document to the TIP Guidelines TIP #2 and describes the structure and formatting to use when writing a TIP.

Rationale

The major goals of this document are to define a format that is

The latter is important because non-acceptance essentially means that the TIP process will be stillborn. This not only means basically plain text without much markup but also that we should reuse formats with which people are already acquainted.

As the concept of TIPs borrows heavily from Python's PEPs [1] their definition on how to structure and format a PEP was reviewed for its suitability of use by the TCT and the community at large.

The major points of the format are:

A header section like is used in mail or news is something people are acquainted with and fulfils the other criteria too. In addition it is extendable. Using indentation to convey semantic and syntactic information on the other hand is something Pythonistas are used to but here in the Tcl world we are not to the same extent.

Looking at bit closer to home we find the Tcl'ers Wiki [2]

It does use a plain text format with some very light formatting conventions to allow things like links, images, enumerated and itemized lists.

Given the rather high acceptance of this site by the community using its format should be beneficiary to the acceptance of TIPs too.

It is therefore proposed to use a combination of a header in mail/news style together with a body employing a slightly extended/modified Wiki format (mostly backward compatible) as the format for TIPs. This proposed format is specified in detail below.

Note that the use of TAB characters within a TIP is discouraged (but permitted) as some mailers (notably Outlook Express) make a mess of them. Please be considerate and avoid their use...

Rejected Alternatives

But before we specify the format a (short) discussion of possible alternatives and why they where rejected.

There were three primary competitors to the format specified below, these are SGML/XML, HTML and a markup based upon plain text with embedded tcl-commands, for example like ... [section Abstract] ...

Header Format

The general format of the header for a TIP is specified in RFC 822 [3]. This leaves us to define and explain the keywords, their meaning and their values. The following keywords are required, and unless otherwise stated, should occur exactly once:

TIP

The number of the TIP as assigned by the TIP editor. Unchangeable later on.

Title

Defines the title of the document using plain text. May change during the discussion and review phases.

Version

Specifies the version of the document. Usually something like $Revision: 1.8 $. (Initially $Revision: 1.8 $ should be used, which is then changed by the version control to contain the actual revision number.

Author

Contact information (email address) for each author. The email address has to contain the real name of the author. If there are multiple authors of the document, this header may occur multiple times (once per author.) The format should be approximately like this: Firstname Lastname <emailaddress>

State

Defines the state the TIP is currently in. Allowed values are Draft, Active, Accepted, Deferred, Final, Rejected and Withdrawn. This list will be influenced by the finalization of the workflow in TIP #2.

Type

The type of the TIP. Allowed values are Process, Project and Informative. See TIP #2 for more explanations about the various types.

Vote

The current state of voting for the TIP. Allowed values are Pending, In progress, Done and No voting. The latter is used to indicate a TIP which doesn't require a vote, for example TIP #1.

Created

The date the TIP was created, in the format dd-mmm-yyyy. mmm is the (English) short name of the month. The other information is numerical. Example: 14-Sep-2000

All numeric dates, though more easily internationalised, are not used because the ordering of particularly the month and day is ambiguous and subject to some confusion between different locales. Unix-style timestamps are unreadable to the majority of people (as well as being over-precise,) and I (<fellowsd at cs dot man dot ac dot uk>) don't know ISO 8601 well enough to be able to comment on it.

Post-History

A list of the dates the document was posted to the mailing list for discussion.

Tcl-Version

This indicates the version of Tcl that a Project TIP depends upon (where it is required.) Process and Informative TIPs must not have this keyword.

The following headers are optional and should (unless otherwise stated) occur at most once:

Discussions-To

While a TIP is in private discussions (usually during the initial Draft phase), this header will indicate the mailing list or URL where the TIP is being discussed.

Obsoletes

Indicates a TIP number that this TIP renders obsolete. (Thanks to Joel Saunier <Joel dot Saunier at agriculture dot gouv dot fr> for suggesting this!)

Obsoleted-By

Indicates a TIP number that renders this TIP obsolete. (Thanks to Joel Saunier <Joel dot Saunier at agriculture dot gouv dot fr> for suggesting this!)

Keywords

A comma-separated list of keywords relating to this TIP, to facilitate automated indexing and improve search engine results.

The following headers are proposed (by Donald G. Porter <dgp at cam dot nist dot gov>) but not currently supported:

Sponsor

A TCT member that is sponsoring this TIP. May occur multiple times, once per sponsor.

Supporter

A person (not necessarily a TCT member) who is supporting this TIP. May occur multiple times, once per supporter.

Objector

A person (not necessarily a TCT member) who is opposed to this TIP. May occur multiple times, once per objector.

Body Format

The body of a TIP is split by visually blank lines (i.e. lines containing nothing other than conventional whitespace) into units that will be called paragraphs. Each paragraph is in one of the following forms.

If the paragraph consists of exactly four minus symbols "----" then it is a separator paragraph and should be rendered as a horizonal rule.

If the paragraph consists of a vertical bar "|" followed by text, then it is a verbatim paragraph. The bar will be stripped from the front of each line and the rest of the text will be formatted literally. Tab characters will be expanded to 8-character boundaries. (Note that this is completely incompatible with the Tcl'ers Wiki.)

If the paragraph consists of one or more tildes "~" (which may be space-separated) followed by text, then it is a section heading. The text following is the name of the section. In the name of good style, the section heading should have its significant words capitalised. The number of tildes indicates whether this is a section heading, a subsection heading or a subsubsection heading (one, two or three tildes respectively.)

If the paragraph consists of the sequence "#index:" followed by some optional text, then it is a request to insert an index. The text following (after trimming spaces) indicates the kind of index desired. The default is a "medium" index, and fully compliant implementations should support "short" (expected to contain less detail) and "long" (expected to contain all header details plus the abstract) as well. Support for other kinds of indices is optional.

If the paragraph consists of the sequence "#image:" followed by some text, then it is a request to insert an image. The first word of the following text is a reference to the image, and the other words are an optional caption for the image (in plain text.) Image references that consist of just letters, numbers, hyphens and underscores are handled specially by the current implementation, which can map them to the correct media type for its current output format (assuming it has a suitable image in its repository.)

All other paragraphs that start with a non-whitespace character are ordinary paragraphs.

If a paragraph starts with a whitespace character sequence (use three spaces and keep the whole paragraph on a single line if you want compatability with the Tcl'ers Wiki,) a star "*" and another whitespace character, it is an item in a bulleted list.

If a paragraph starts with a whitespace character sequence, a number, a full stop "." and another whitespace character, it is an item in an enumerated list. If the number is 1 then the number of the item is guessed from the current list context, and any other value sets the number explicitly. If you want compatability with the Tcl'ers Wiki, make the initial whitespace sequence be three spaces, the number be 1, and keep the whole paragraph on a single line.

If a paragraph starts with a whitespace character sequence, some text (that includes no tabs or newlines but can include spaces), a colon and another whitespace character, then it is an item in a descriptive (a.k.a. definition) list. The item being described cannot contain advanced formatting (including any kind of emphasis) because this is not supported by all formats that a TIP may be viewed in.

If a paragraph does not start with a whitespace character sequence, a greater than symbol ">", and then another whitespace character, it is also an ordinary paragraph. (Note that this is completely incompatible with the Tcl'ers Wiki.)

Where a paragraph does begin with the sequence described in the preceding paragraph, it is a nested list item (if the paragraph contained is a list item) or a subsequent paragraph (if the paragraph contained is an ordinary paragraph.) If there's no suitable "enclosing" list context (i.e. if the preceding paragraph was not part of a list) the paragraph will be a quotation instead. (The rules for these continuation paras seem complex at first glance, but seem to work out fairly well in practise, especially since they are only rarely used.)

Within the body text of a (non-verbatim) paragraph, there are two styles of emphasis:

The two emphasis styles should not be nested. Special URLs of the form tip:tipnumber are expanded into full URLs to the given TIP through the current formatting engine (where applicable.) References of the form [tipnumber] are also expanded as links to the given TIP, but are not displayed as URLs (the expansion is format dependent, of course.) Doubled up square brackets are converted into matching single square brackets. Email addresses (of the form <email at address>) and ordinary URLs in single square brackets might also be treated specially.

The first paragraph of the body of any TIP must be an abstract section title ("~Abstract" or "~ Abstract"), and the second must be an ordinary paragraph (and should normally be just plain text, to make processing by tools easier.)

You can compare these rules with those for the Tcl'ers Wiki which are described at http://wiki.tcl.tk/14.html, with the following modifications:

  1. The text for an item in an itemized, enumerated or tagged list can be split over multiple physical lines. The text of the item will reach until the next empty line.

  2. All paragraphs must be split with whitespace. This is a corollary of the above item.

  3. A paragraph starting with the character ~ is interpreted as a section heading. Consequently it should be very short so that it renders onto a single line under most circumstances.

  4. A full verbatim mode is added. Any line starting with the bar character is reproduced essentially verbatim (the bar character is removed). This allows embedding of code or other texts containing formatting usually recognized as special by the formatter without triggering this special processing. This applies especially to brackets and the hyperlinking they provide and their role in tcl code. This is used in preference to the whitespace rule of the Tcl'ers Wiki which is potentially far more sensitive. Our rule makes it extremely obvious what lines are verbatim, and what those lines will be rendered as.

  5. Only one style of emphasis within paragraphs is supported. Having multiple emphasis styles (italic and bold) not only fails to carry across well in all media, but also makes for confusion on the part of authors and is more difficult to write renderers for too.

  6. Images are only supported in a limited way, since under HTML the support for images varies a lot more than most people would like to think, and the concept of an inline image can vary quite a lot between different rendered formats too.

Reference Implementation

A reference renderer was created by Donal Fellows <fellowsd at cs dot man dot ac dot uk> and is installed (as a behind-the-scenes rendering engine) on a set of TIP documents [4] with the source code to the rendering engine being available [5]

Note that this code does support nested lists and multi-paragraph items, but this is experimental right now. Examples are presented behind the code itself.


Examples

This document itself is an example of the new format.

Examples for nested lists, multi-paragraph items in list's, and quotations.

Here is the source (itself a demonstration of verbatim text)

 * This is a paragraph

 > * This is an inner paragraph
     that goes onto two lines.

 > > * This one's even further in!

 > > * So's this one.

 > * Out again

 > > And a second paragraph here...

 > * Yet another item.

 * Outermost level once more.

 1. Enumerate?

 > 1. Deeper?

 2. Out again?

 list item: body text that is relatively long so that we can tell
   that it laps round properly as a paragraph even though this takes a
   ridiculous amount of text on my browser...

| VERB IN LIST?

 > nested: body

Top-level paragraph once more.

 > A quotation from someone famous might be rendered something like
   this.  As you can see, it is inset somewhat from the surrounding
   text. - ''Donal K. Fellows <fellowsd@cs.man.ac.uk>''

And back to the top-level yet again.  Now we show off both ''italic''
and '''bold''' text.

----

and the rendered result

  1. Enumerate?

    1. Deeper?

  2. Out again?

list item

body text that is relatively long so that we can tell that it laps round properly as a paragraph even though this takes a ridiculous amount of text on my browser...

 VERB IN LIST?
nested

body

Top-level paragraph once more.

A quotation from someone famous might be rendered something like this. As you can see, it is inset somewhat from the surrounding text. - Donal K. Fellows <fellowsd at cs dot man dot ac dot uk>

And back to the top-level yet again. Now we show off both italic and bold text.


Examples of index generation and image paragraphs.

Here is the code

#index:

#index:short

#index: long

#image:3example This is a test caption

This is an example long TIP reference tip:3 that should be expanded in
a renderer-specific way...

This is an example non-reference - ''index[[3]]'' - that should not
be rendered as a link (to this document or anywhere else) at all.
Note that the dashes in the previous sentence (with whitespace on
each side) are candidates for rendering as long dashes (em-dashes) on
output-media which support this.

 Supported URLs: should be http, https, mailto, news, newsrc, ftp and
   gopher.  Test here...

 > HTTP URL - http://purl.org/thecliff/tcl/wiki/

 > HTTP URL in brackets - [http://wiki.tcl.tk]

 > HTTPS URL - https://sourceforge.net/

 > FTP URL - ftp://src.doc.ic.ac.uk/packages/tcl/tcl/

 > NEWS URL - news:comp.lang.tcl

 > MAILTO URL - mailto:fellowsd@cs.man.ac.uk?subject=TIP3
 
 > Others (might not be valid links!) - gopher://info.mcc.ac.uk,
   newsrc:2845823825

and here is the rendered result.

Series ID Type State Title

TIP #0 Process Final Tcl Core Team Basic Rules
TIP #1 Informative Active TIP Index
TIP #2 Process Draft TIP Guidelines
TIP #3 Process Accepted TIP Format
TIP #4 Informative Draft Tcl Release and Distribution Philosophy
TIP #5 Project (8.4) Final Make TkClassProcs and TkSetClassProcs Public and Extensible
TIP #6 Project (8.4.0) Rejected Include [Incr Tcl] in the Core Tcl distribution
TIP #7 Project (8.4) Final Increased resolution for TclpGetTime on Windows
TIP #8 Project (8.4.0) Final Add Winico support to the wm command on windows
TIP #9 Project (8.4) Withdrawn Tk Standard Library
TIP #10 Project (8.4) Final Tcl I/O Enhancement: Thread-Aware Channels
TIP #11 Project (8.4) Final Tk Menubutton Enhancement: -compound option for menubutton
TIP #12 Informative Draft The "Batteries Included" Distribution
TIP #13 Process Accepted Web Service for Drafting and Archiving TIPs
TIP #14 Project (8.4.0) Final Access to Tk Photo Image Transparency
TIP #15 Project (8.4.0) Final Functions to List and Detail Math Functions
TIP #16 Process Accepted Tcl Functional Areas for Maintainer Assignments
TIP #17 Project (8.4.0) Final Redo Tcl's filesystem
TIP #18 Project (8.4) Final Add Labels to Frames
TIP #19 Project (8.4a2) Final Add a Text Changed Flag to Tk's Text Widget
TIP #20 Project (8.5) Deferred Add C Locale-Exact CType Functions
TIP #21 Project (8.4) Final Asymmetric Padding in the Pack and Grid Geometry Managers
TIP #22 Project (8.4a2) Final Multiple Index Arguments to lindex
TIP #23 Process Accepted Tk Toolkit Functional Areas for Maintainer Assignments
TIP #24 Informative Draft Tcl Maintainer Assignments
TIP #25 Project (8.5) Withdrawn Native tk_messageBox on Macintosh
TIP #26 Project (8.4) Final Enhancements for the Tk Text Widget
TIP #27 Project (8.4) Final CONST Qualification on Pointers in Tcl API's
TIP #28 Informative Draft How to be a good maintainer for Tcl/Tk
TIP #29 Project (9.0) Rejected Allow array syntax for Tcl lists
TIP #30 Informative Draft Tk Toolkit Maintainer Assignments
TIP #31 Informative Draft CVS tags in the Tcl and Tk repositories
TIP #32 Project (8.4a4) Final Add Tcl_Obj-enabled counterpart to Tcl_CreateTrace
TIP #33 Project (8.4) Final Add 'lset' Command to Assign to List Elements.
TIP #34 Project (8.5) Withdrawn Modernize TEA Build System
TIP #35 Project (8.4) Final Enhanced Support for Serial Communications
TIP #36 Project (8.4) Final Library Access to 'Subst' Functionality
TIP #37 Project (8.4) Final Uniform Rows and Columns in Grid
TIP #38 Project (8.5) Withdrawn Add Support for Default Bindtags
TIP #39 Project (8.5) Withdrawn Add New Standard Tk Option: -component
TIP #40 Project (8.0) Withdrawn Documentation Generator for Tcl Scripts
TIP #41 Project (8.4a2) Final Paned Window Tk Widget
TIP #42 Project (8.5) Withdrawn Add New Standard Tk Option: -clientdata
TIP #43 Informative Draft How to be a TIP Editor
TIP #44 Project (8.4) Final Move Tk's Private Commands and Variables into ::tk Namespace
TIP #45 Project (8.4b1) Final Empty index lists for [lindex] and [lset]
TIP #46 Project (8.5) Withdrawn Consistent Overlap Behavior of Area-Defining Canvas Items
TIP #47 Project (8.4) Final Modifying Tk to Allow Writing X Window managers
TIP #48 Project (8.4) Final Tk Widget Styling Support
TIP #49 Project (8.4) Final I/O Subsystem: Add API Tcl_OutputBuffered(chan)
TIP #50 Informative Final Bundle [incr Tcl] with the Core Tcl distribution
TIP #51 Project (8.5) Withdrawn Native Menubutton on Macintosh
TIP #52 Project (8.5) Withdrawn Hierarchical Namespace Lookup of Commands and Variables
TIP #53 Project (8.4) Withdrawn Addition of 'assert' Command
TIP #54 Process Withdrawn Using PURLs to Unite the Tcl Webspace
TIP #55 Informative Draft Package Format for Tcl Extensions
TIP #56 Project (8.4) Final Standardize Call Interface to Tcl_Eval* Functions
TIP #57 Project (8.5) Final Move TclX's [lassign] into the Tcl Core
TIP #58 Project (8.5) Rejected Extend [set] to Assign Multiple Values to Multiple Variables
TIP #59 Project (8.5) Final Embed Build Information in Tcl Binary Library
TIP #60 Project (8.6) Rejected EXTERN Macro Change to Support a Wider Set of Attributes
TIP #61 Project (8.5) Deferred Make TK_NO_SECURITY Run-Time Switchable
TIP #62 Project (8.4) Final Add Support for Command Tracing
TIP #63 Project (8.4) Final Add -compound Option to Menu Entries
TIP #64 Project (8.4) Deferred Improvements to Windows Font Handling
TIP #65 Project (8.5) Rejected Enhanced [info args]
TIP #66 Informative Draft Stand-alone and Embedded Tcl/Tk Applications
TIP #67 Project (8.5) Withdrawn Allow Subclassing of tk_getOpenFile, tk_getSaveFile on UNIX
TIP #68 Project (8.4) Final Dynamic Trace Result Handling
TIP #69 Project (9.0) Draft Improvements for the Tcl Hash Table
TIP #70 Project (8.5) Withdrawn A Relational Switch Control Structure
TIP #71 Project (8.5) Withdrawn Tk Bitmap Image Improvements
TIP #72 Project (8.4) Final 64-Bit Value Support for Tcl on 32-Bit Platforms
TIP #73 Project (8.4) Final Export Tcl_GetTime in the Public API
TIP #74 Project (8.4) Final wm stackorder command
TIP #75 Project (8.5) Final Refer to Sub-RegExps Inside 'switch -regexp' Bodies
TIP #76 Project (8.4) Final Make 'regsub' Return a String
TIP #77 Project (8.5) Withdrawn Support for Nested Paired Item Lists
TIP #78 Informative Draft TEA 2.0 Definitions
TIP #79 Project (8.4) Final Add Deletion Callback to Tcl_CreateObjTrace
TIP #80 Project (8.4) Final Additional Options for 'lsearch'
TIP #81 Process Withdrawn [incr Tcl] Functional Areas for Maintainer Assignments
TIP #82 Project (8.4) Final Add -offrelief Option to Checkbutton and Radiobutton
TIP #83 Project (8.5) Withdrawn Augment Tcl_EvalFile with Tcl_EvalChannel and Tcl_EvalUrl
TIP #84 Project (8.4) Final Add control for mouse movement filtering
TIP #85 Project (8.4) Final Custom Comparisons in Tcltest
TIP #86 Project (8.7) Draft Improved Debugger Support
TIP #87 Project (8.4) Final Allow Tcl Access to the Recursion Limit
TIP #88 Project (8.4) Rejected Extend Tcl Process Id Control via 'pid'
TIP #89 Project (8.6) Withdrawn Try/Catch Exception Handling in the Core
TIP #90 Project (8.5) Final Enable [return -code] in Control Structure Procs
TIP #91 Project (8.4) Final Backward Compatibility for Channel Types with 32-bit SeekProcs
TIP #92 Project (8.4) Withdrawn Move Package Load Decisions to Application Developer
TIP #93 Project (8.4) Final Get/Delete Enhancement for the Tk Text Widget
TIP #94 Project (8.4) Final Add Listbox -activestyle Option
TIP #95 Project (8.4) Final Add [wm attributes] Command
TIP #96 Project (8.4) Final Add [tk caret] Command and Tk_SetCaretPos API
TIP #97 Project (8.6) Final Moving Vertices of Canvas Items
TIP #98 Project (8.4) Final Adding Transparency Compositing Rules to Photo Images
TIP #99 Project (8.4) Final Add 'file link' to Tcl
TIP #100 Project (8.5) Final Add Support for Unloading Dynamic Libraries Loaded with [load]
TIP #101 Project (8.4) Final Export Tcltest Configuration
TIP #102 Project (8.4) Final Change [trace list] to [trace info]
TIP #103 Project (8.5) Rejected Argument Expansion Command
TIP #104 Project (8.4) Final Generalization of the Tk Undo Subsystem
TIP #105 Project (8.5) Withdrawn Add Prefix Matching for Switch
TIP #106 Project (8.6) Final Add Encoding Abilities to the [dde] Command
TIP #107 Project (8.4) Final Fix the 2-second "raise delay" in Tk
TIP #108 Informative Final Summary of Changes to Generic Tcl/Tk Code to Enable Mac OS X Port
TIP #109 Project (8.5) Final New Look for Checkbutton and Radiobutton on Unix
TIP #110 Project (8.5) Final Add a Tristate Mode to the Checkbutton and Radiobutton
TIP #111 Project (8.5) Final Dictionary Values and Manipulators
TIP #112 Project (8.5) Final Ensembles are Namespaces are Commands
TIP #113 Project (8.5) Final Multi-Line Searches in the Text Widget
TIP #114 Project (9.0) Draft Eliminate Octal Parsing of Leading Zero Integer Strings
TIP #115 Project (9.0) Draft Making Tcl Truly 64-Bit Ready
TIP #116 Project (8.5) Final More Safety for Large Images
TIP #117 Project (8.5) Withdrawn Object Type Introspection
TIP #118 Project (8.5) Final Enhance [file attributes] and [file copy] on Mac OS X & BSD
TIP #119 Project (8.6) Final Angled Text on a Canvas
TIP #120 Project (8.5) Final Restricted DDE Services
TIP #121 Project (8.5) Final Controlled Application Shutdown via Tcl_Exit
TIP #122 Project (8.6) Rejected Use tcl_{non,}wordchars Throughout Tcl/Tk
TIP #123 Project (8.5) Final Adding an Exponentiation Operator to the [expr] Command
TIP #124 Project (8.5) Final High-Resolution Absolute Time Values From [clock]
TIP #125 Project (8.5) Final Converting between Frame and Toplevel Windows
TIP #126 Project (9.0) Draft Rich Strings for Representation Persistence
TIP #127 Project (8.5) Final Add an -index Option to [lsearch]
TIP #128 Project (8.6) Rejected Ability to Install a Custom Memory Allocator
TIP #129 Project (8.5) Final New Format Codes for the [binary] Command
TIP #130 Project (8.5) Final Unique DDE server names.
TIP #131 Project (8.5) Draft Read My Mind and Do What I Mean
TIP #132 Project (8.5) Final Revised Floating-Point Conversions in Tcl
TIP #133 Project (8.7) Draft Extending [expr] Operators
TIP #134 Project (8.5) Withdrawn Subsystem Per-Thread Data Interfaces
TIP #135 Project (8.5) Final Change 'dde servername -exact' Option to -force
TIP #136 Project (8.5) Final Large List Initialisation
TIP #137 Project (8.5) Final Specifying Script Encodings for [source] and tclsh
TIP #138 Project (8.5) Final New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables
TIP #139 Project (8.5) Final Publish Part of Tcl's Namespace API
TIP #140 Project (8.5) Deferred Tracing Namespace Modifications
TIP #141 Project (8.5) Final Multiple Initial-Files in [tk_getOpenFile]
TIP #142 Project (8.5) Withdrawn Search Path Variable to Lookup Command Names in Namespaces
TIP #143 Project (8.5) Final An Interpreter Resource Limiting Framework
TIP #144 Project (8.5) Withdrawn Argument Expansion Syntax
TIP #145 Project (8.5) Final Enhanced Tk Font Handling
TIP #146 Project (8.5) Final Add Overall Anchoring to the Grid Geometry Manager
TIP #147 Project (8.5) Final Make Grid's Column/Row Configure Easier
TIP #148 Project (8.5) Final Correct [list]-Quoting of the '#' Character
TIP #149 Project (8.5) Withdrawn Allow "enabled" as Synonym for "normal" in -state Option
TIP #150 Project (8.5) Deferred Implement the Tk send Command for Windows
TIP #151 Project (8.5) Final Remove -e: Command Line Option from tclsh and wish
TIP #152 Project (8.5) Final New -detail Option for tk_messageBox
TIP #153 Project (8.5) Final Enhancing the [winfo toplevel] Command
TIP #154 Project (8.7) Draft Add Named Colors to Tk
TIP #155 Project (8.5) Final Fix Some of the Text Widget's Limitations
TIP #156 Project (8.5) Final Language-Neutral Root Locale for Msgcat
TIP #157 Project (8.5) Final Argument Expansion with Leading {expand}
TIP #158 Project (8.5) Final Distinguish the two 'Enter' keys on Windows
TIP #159 Project (8.5) Final Extending Tk 'wm' Command to Support Coloured Icons
TIP #160 Project (8.7) Draft Improvements to Terminal and Serial Channel Handling
TIP #161 Project (9.0) Draft Change Default for Menu's -tearoff Option to False
TIP #162 Project (8.6) Final IPv6 Sockets for Tcl
TIP #163 Project (8.5) Final A [dict merge] Subcommand
TIP #164 Project (8.7) Draft Add Rotate Subcommand to the Canvas Widget
TIP #165 Project (8.5) Final A User-Data Field for Virtual Events
TIP #166 Project (8.7) Draft Reading and Writing the Photo Image Alpha Channel
TIP #167 Project (8.7) Draft Add a New Option for Context Help for Windows
TIP #168 Project (8.5) Final Cubic Bezier Curves on the Canvas
TIP #169 Project (8.5) Final Add Peer Text Widgets
TIP #170 Project (8.7) Draft Better Support for Nested Lists
TIP #171 Project (8.6) Final Change Default <MouseWheel> Bindings Behavior
TIP #172 Project (8.5) Withdrawn Improve UNIX Tk Look and Feel
TIP #173 Project (8.5) Final Internationalisation and Refactoring of the 'clock' Command
TIP #174 Project (8.5) Final Math Operators as Commands
TIP #175 Project (9.0) Withdrawn Add an -async Option to [open]
TIP #176 Project (8.5) Final Add String Index Values
TIP #177 Project (8.5) Final Add -stretch Option to panedwindow Widget
TIP #178 Project (8.7) Draft [info pid] and [info tid] Subcommands
TIP #179 Project (8.5) Final Add -hide Option to panedwindow Widget
TIP #180 Project (8.7) Draft Add a Megawidget Support Core Package
TIP #181 Project (8.5) Final Add a [namespace unknown] Command
TIP #182 Project (8.5) Final Add [expr bool] Math Function
TIP #183 Project (8.5) Final Add a Binary Flag to [open]
TIP #184 Project (8.5) Final Avoid Creating Unusable Variables
TIP #185 Project (8.6) Rejected Null Handling
TIP #186 Project (8.7) Draft Expose the Type and Modified-State of Widget Options
TIP #187 Project (8.6) Rejected Procedures as Values
TIP #188 Project (8.5) Final Add 'string is wideinteger' to the 'string is' Subcommand
TIP #189 Project (8.5) Final Tcl Modules
TIP #190 Informative Draft Implementation Choices for Tcl Modules
TIP #191 Informative Draft Managing Tcl Packages and Modules in a Multi-Version Environment
TIP #192 Project (9.0) Draft Lazy Lists
TIP #193 Project (8.7) Draft Simple Syntax Help System
TIP #194 Project (8.5) Final Procedures as Values via '''apply'''
TIP #195 Project (8.6) Final A Unique Prefix Handling Command
TIP #196 Project (8.5) Withdrawn Tcl Commands as Values
TIP #197 Project (8.6) Final Unfocussed Text Widget Cursor Control
TIP #198 Project (8.7) Draft Image Command XPM Extension
TIP #199 Project (8.6) Rejected Specification of Alternatives to .wishrc/.tclshrc
TIP #200 Project (8.5) Rejected Listing the Values in an Array
TIP #201 Project (8.5) Final Add 'in' Operator to [expr]
TIP #202 Project (8.5) Final Add 2>@1 Special Case to [open] and [exec]
TIP #203 Project (8.5) Withdrawn Create tclConfig.sh-Equivalent in Tcl
TIP #204 Project (8.5) Final Virtual Events for Keyboard Traversal
TIP #205 Project (8.5) Final Use pkgconfig Database to Register Xft Support
TIP #206 Project (8.5) Rejected Add an [ftruncate] Command
TIP #207 Project (8.5) Final Add a -namespace Option to [interp invokehidden]
TIP #208 Project (8.5) Final Add a 'chan' Command
TIP #209 Project (8.5) Final Add [clock milliseconds], and [clock microseconds]
TIP #210 Project (8.6) Final Add 'tempfile' Subcommand to 'file'
TIP #211 Project (8.5) Withdrawn Add Full Stack Trace Capability
TIP #212 Project (8.5) Final Temporarily Opening out a Dictionary
TIP #213 Project (8.6) Withdrawn A Standard Dialog for Font Selection
TIP #214 Project (8.7) Withdrawn Add New Object Introspection Command
TIP #215 Project (8.5) Final Make [incr] Auto-Initialize Undefined Variables
TIP #216 Project (8.7) Draft Handling Command-Line Options in Tclsh and Wish
TIP #217 Project (8.5) Final Getting Sorted Indices out of Lsort
TIP #218 Project (8.5) Final Tcl Channel Driver Thread State Actions
TIP #219 Project (8.5) Final Tcl Channel Reflection API
TIP #220 Project (8.7) Draft Escalate Privileges in VFS Close Callback
TIP #221 Project (8.5) Final Allow Background Error Handlers to Accept Return Options
TIP #222 Project (8.5) Final Add [wm attributes -alpha] Attribute on Windows
TIP #223 Project (8.5) Final Full-Screen Toplevel Support for Tk
TIP #224 Project (8.7) Draft Add New [array] Subcommands 'incr' and 'value'
TIP #225 Project (8.7) Draft Arithmetic Series with Optimized Space Complexity
TIP #226 Project (8.5) Final Interface to Save and Restore Interpreter State
TIP #227 Project (8.5) Final Interface to Get and Set the Return Options of an Interpreter
TIP #228 Project (8.7) Draft Tcl Filesystem Reflection API
TIP #229 Project (8.5) Final Scripted Control of Name Resolution in Namespaces
TIP #230 Project (8.6) Final Tcl Channel Transformation Reflection API
TIP #231 Project (8.5) Final Support for [wm attributes] on X11
TIP #232 Project (8.5) Final Creating New Math Functions for the 'expr' Command
TIP #233 Project (8.5) Final Virtualization of Tcl's Sense of Time
TIP #234 Project (8.6) Final Add Support For Zlib Compression
TIP #235 Project (8.5) Final Exposing a C API for Ensembles
TIP #236 Project (8.6) Final Absolute Positioning of Canvas Items
TIP #237 Project (8.5) Final Arbitrary-Precision Integers for Tcl
TIP #238 Project (8.7) Draft Fire Event when Widget Created
TIP #239 Project (8.7) Draft Enhance the 'load' Command
TIP #240 Project (8.7) Draft An Ensemble Command to Manage Processes
TIP #241 Project (8.5) Final Case-Insensitive Switches and List Searching and Sorting
TIP #242 Project (8.5) Final Preselect Filter on tk_get*File Dialogs
TIP #243 Project (8.7) Draft Supply Find Dialog for the Text Widget
TIP #244 Project (8.6) Final PNG Photo Image Support for Tk
TIP #245 Project (8.5) Final Discover User Inactivity Time
TIP #246 Project (8.7) Draft Unify Pattern Matching
TIP #247 Informative Draft Tcl/Tk Engineering Manual
TIP #248 Project (8.5) Final Integrate Tile into Tk as Ttk
TIP #249 Informative Draft Unification of Tcl's Parsing of Numbers
TIP #250 Project (8.5) Final Efficient Access to Namespace Variables
TIP #251 Project (8.6) Rejected Enhance the 'list' Command
TIP #252 Project (8.6) Rejected Add New 'string' Command Options
TIP #253 Project (8.7) Draft Consolidate Package-Related Commands
TIP #254 Project (8.5) Final New Types for Tcl_LinkVar
TIP #255 Project (8.5) Final Add 'min' and 'max' [expr] Functions
TIP #256 Project (8.5) Final Implement Tabular and Wordprocessor Style Tabbing
TIP #257 Project (8.6) Final Object Orientation for Tcl
TIP #258 Project (8.5) Final Enhanced Interface for Encodings
TIP #259 Project (8.7) Draft Making 'exec' Optionally Binary Safe
TIP #260 Project (8.5) Final Add Underline Option to Canvas Text Items
TIP #261 Project (8.5) Final Return Imported Commands from [namespace import]
TIP #262 Project (8.7) Draft Background Images for Frames
TIP #263 Project (9.2) Draft Quantum Tcl
TIP #264 Project (8.5) Final Add Function to Retrieve the Interpreter of a Window
TIP #265 Project (8.6) Final A Convenient C-side Command Option Parser for Tcl
TIP #266 Project (8.5) Rejected Numbers are Commands
TIP #267 Project (8.5) Final Allow 'exec' to Ignore Stderr
TIP #268 Project (8.5) Final Enhance 'package' Version Handling
TIP #269 Project (8.5) Final Add 'string is list' to the 'string is' Subcommand
TIP #270 Project (8.5) Final Utility C Routines for String Formatting
TIP #271 Project (8.7) Draft Windows-Style Open and Save File Dialog on Unix
TIP #272 Project (8.5) Final String and List Reversal Operations
TIP #273 Project (8.5) Rejected Add Tcl_Expr... Support to Tcl_Get... Functions
TIP #274 Project (8.5) Final Right-Associativity for the Exponentiation Operator
TIP #275 Project (8.5) Final Support Unsigned Values in binary Command
TIP #276 Project (8.7) Draft Specify and Unify Variable Linking Commands
TIP #277 Project (8.7) Draft Create Namespaces as Needed
TIP #278 Project (9.0) Draft Fix Variable Name Resolution Quirks
TIP #279 Project (8.7) Draft Adding an Extensible Object System to the Core
TIP #280 Project (8.5) Final Add Full Stack Trace Capability With Location Introspection
TIP #281 Project (8.7) Draft Improvements in System Error Handling
TIP #282 Project (8.7) Draft Enhanced Expression Syntax
TIP #283 Project (8.7) Draft Modify Ensemble Command Resolution Behaviour
TIP #284 Project (8.7) Draft New 'invoke' and 'namespace invoke' Commands
TIP #285 Project (8.6) Final Script Cancellation with [interp cancel] and Tcl_CancelEval
TIP #286 Project (8.5) Final Add 'xposition' Command to Menu Widgets
TIP #287 Project (8.5) Final Add a Commands for Determining Size of Buffered Data
TIP #288 Project (8.7) Draft Allow "args" Anywhere in Procedure Formal Arguments
TIP #289 Project (8.5) Rejected Revision of [lrepeat] Argument Order
TIP #290 Project (8.7) Draft Registration of Custom Error Handler Scripts
TIP #291 Project (8.5) Final Add the 'platform' Package to Tcl
TIP #292 Project (8.7) Draft Allow Unquoted Strings in Expressions
TIP #293 Project (8.5) Final Argument Expansion with Leading {*}
TIP #294 Project (8.5) Rejected The "entier" Function: It's Spelt "entire"
TIP #295 Project (8.7) Draft Enhance Arguments to lrange
TIP #296 Project (8.7) Draft Enhanced Syntax for Pair-Wise Indices
TIP #297 Project (8.7) Draft Integer Type Introspection and Conversion
TIP #298 Project (8.5) Final Revise Shared Value Rules for Tcl_GetBignumAndClearObj
TIP #299 Project (8.5) Final Add isqrt() Math Function
TIP #300 Project (8.5) Final Examine Glyph Substitution in the 'font actual' Command
TIP #301 Project (8.6) Withdrawn Split Bidirectional Channels For Half-Close
TIP #302 Project (8.7) Draft Fix "after"'s Sensitivity To Adjustments Of System Clock
TIP #303 Project (8.7) Draft Enhance 'llength' Command to Support Nested Lists
TIP #304 Project (8.6) Final A Standalone [chan pipe] Primitive for Advanced Child IPC
TIP #305 Project (8.5) Withdrawn ANSI Escape Sequence Support for Windows's Console Channel Driver
TIP #306 Project (8.6) Rejected Auto-Naming Widgets
TIP #307 Project (8.6) Final Make TclTransferResult() Public
TIP #308 Informative Final Tcl Database Connectivity (TDBC)
TIP #309 Project (8.7) Draft Expose the Expression Parsing
TIP #310 Project (8.6) Rejected Add a New Pseudo-Random Number Generator
TIP #311 Informative Draft Tcl/Tk 8.6 Release Calendar
TIP #312 Project (8.7) Draft Add More Link Types
TIP #313 Project (8.6) Final Inexact Searching in Sorted List
TIP #314 Project (8.6) Final Ensembles with Parameters
TIP #315 Project (8.6) Final Add pathSeparator to tcl_platform Array
TIP #316 Project (8.6) Final Portable Access Functions for Stat Buffers
TIP #317 Project (8.6) Final Extend binary Ensemble with Binary Encodings
TIP #318 Project (8.6) Final Extend Default Whitespace in 'string trim' Beyond ASCII
TIP #319 Project (8.7) Draft Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets
TIP #320 Project (8.6) Final Improved Variable Handling in the Core Object System
TIP #321 Project (8.6) Final Add a [tk busy] Command
TIP #322 Project (8.6) Final Publish the NRE API
TIP #323 Project (8.6) Final Do Nothing Gracefully
TIP #324 Project (8.6) Final A Standard Dialog For Font Selection
TIP #325 Project (8.7) Draft System Tray Access
TIP #326 Project (8.6) Final Add -stride Option to lsort
TIP #327 Project (8.6) Final Proper Tailcalls
TIP #328 Project (8.6) Final Coroutines
TIP #329 Project (8.6) Final Try/Catch/Finally syntax
TIP #330 Project (8.6) Final Eliminate interp->result from the Public Headers
TIP #331 Project (8.6) Final Allow [lset] to Extend Lists
TIP #332 Project (8.6) Final Half-Close for Bidirectional Channels
TIP #333 Project (8.7) Draft New Variable and Namespace Resolving Interface
TIP #334 Project (8.6) Withdrawn Make 'lrepeat' Accept Zero as a Count
TIP #335 Project (8.6) Final An API for Detecting Active Interpreters
TIP #336 Project (8.6) Final Supported Access To interp->errorline
TIP #337 Project (8.6) Final Make TclBackgroundException() Public
TIP #338 Project (8.6) Final Embedder Access to Startup Scripts of *_Main()
TIP #339 Project (8.6) Rejected Case-Insensitive Package Names
TIP #340 Project (8.7) Withdrawn Const Qualification of Tcl_SetResult's Argument
TIP #341 Project (8.6) Final Multiple 'dict filter' Patterns
TIP #342 Project (8.7) Draft Dict Get With Default
TIP #343 Project (8.6) Final A Binary Specifier for [format/scan]
TIP #344 Project (8.7) Draft Bring TCP_NODELAY and SO_KEEPALIVE to socket options
TIP #345 Project (8.7) Draft Kill the 'identity' Encoding
TIP #346 Project (8.7) Draft Error on Failed String Encodings
TIP #347 Project (8.7) Withdrawn Align 'string is ...' to Type-Conversion Functions in 'expr'
TIP #348 Project (8.6) Final Substituted 'errorstack' / 'traceback'
TIP #349 Project (8.7) Draft New "-cargo" option for every Tk widget
TIP #350 Informative Draft Tcl Database Connectivity - Corrigenda
TIP #351 Project (8.7) Draft Add Striding Support to lsearch
TIP #352 Informative Draft Tcl Style Guide
TIP #353 Project (8.6) Final NR-enabled Expressions for Extensions
TIP #354 Project (8.6) Final Minor Production-Driven TclOO Revisions
TIP #355 Project (8.7) Draft Stop Fast Recycling of Channel Names on Unix
TIP #356 Project (8.6) Final NR-enabled Substitutions for Extensions
TIP #357 Project (8.6) Final Export TclLoadFile
TIP #358 Project (8.7) Draft Suppress Empty List Element Generation from the Split Command
TIP #359 Project (8.6) Final Extended Window Manager Hint Support
TIP #360 Project (8.6) Final Modernize X11 Menus
TIP #361 Project (8.7) Draft Releasing Channel Buffers
TIP #362 Project (8.6) Final Simple 32 and 64 bit Registry Support
TIP #363 Project (9.0) Draft Vector Math in the Tcl Core
TIP #364 Project (8.6) Final Threading Support: Configuration and Package
TIP #365 Project (8.6) Draft Add Python Compatibility Mode
TIP #366 Project (8.7) Draft Variable Sized Indicators for Menubuttons
TIP #367 Project (8.7) Draft A Command to Remove Elements from a List
TIP #368 Project (8.7) Withdrawn Listbox Justification Option
TIP #369 Project (8.7) Draft Widget cargo command
TIP #370 Project (8.7) Draft Extend Tk's selection with a -time option
TIP #371 Project (8.7) Draft Improvements for the dict command
TIP #372 Project (8.6) Draft Multi-argument Yield for Coroutines
TIP #373 Project (8.6) Withdrawn Improved Yielding Support for Coroutines
TIP #374 Project (8.7) Draft Stackless Vwait
TIP #375 Project (8.6) Draft Symmetric Coroutines and Yieldto
TIP #376 Project (8.6) Final Bundle sqlite3 and tdbc::sqlite3 Packages
TIP #377 Project (8.6) Withdrawn Portably Determining the Number of Processors in the System
TIP #378 Project (8.6) Final Fixing the Performance of TIP 280
TIP #379 Project (8.7) Draft Add a Command for Delivering Events Without Tk
TIP #380 Project (8.6) Final TclOO Slots for Flexible Declarations
TIP #381 Project (8.6) Final Call Chain Introspection and Control
TIP #382 Project (8.5.11) Final Let tk_getSaveFile ignore file overwrites
TIP #383 Project (8.7) Draft Injecting Code into Suspended Coroutines
TIP #384 Project (8.7) Draft Add File Alteration Monitoring to the Tcl Core
TIP #385 Project (9.0) Draft Functional Traces On Variables
TIP #386 Informative Draft Relocation of Tcl/Tk Source Control Repositories
TIP #387 Project (8.6) Withdrawn Unified Yield Command Syntax
TIP #388 Project (8.6) Final Extending Unicode literals past the BMP
TIP #389 Project (8.7) Draft Full support for Unicode 8.0 and later
TIP #390 Project (8.7) Draft A Logging API for Tcl
TIP #391 Project (8.7) Withdrawn Support for UDP Sockets in Tcl
TIP #392 Project (8.5) Draft Allow Bignums to be Disabled at Runtime on a Per-Interp Basis
TIP #393 Project (8.7) Draft Add -command Option to lsearch
TIP #394 Project (8.7) Draft Platform-Independent Handling of Contemporary Mice
TIP #395 Project (8.6) Final New 'string is entier' Command
TIP #396 Project (8.6) Final Symmetric Coroutines, Multiple Args, and yieldto
TIP #397 Project (8.6) Final Extensible Object Copying
TIP #398 Project (8.6) Final Quickly Exit with Non-Blocking Blocked Channels
TIP #399 Project (8.6) Accepted Dynamic Locale Changing for msgcat
TIP #400 Project (8.6) Final Setting the Compression Dictionary and Other 'zlib' Updates
TIP #401 Project (8.7) Draft Comment Words with Leading {#}
TIP #402 Project (8.7) Draft General Platform UNC Support
TIP #403 Project (8.6) Final Web Colors for Tk
TIP #404 Project (8.6) Final Let Message Catalogs get the Locale from their File Name
TIP #405 Project (8.6) Final Add Collecting Loops, the 'lmap' and 'dict map' Commands
TIP #406 Project (8.6) Draft "C" is for Cookie
TIP #407 Informative Draft The String Representation of Tcl Lists: the Gory Details
TIP #408 Project (8.7) Draft Allow Any Command for expr Functions
TIP #409 Project (8.7) Draft UDP in Tcl
TIP #410 Project (8.7) Draft Three Features of scan Adapted for binary scan/format
TIP #411 Project (8.7) Draft Improved Channel Introspection via "chan info"
TIP #412 Project (8.6) Final Dynamic Locale Changing for msgcat with On-Demand File Load
TIP #413 Project (8.6) Final Unicode Support for 'string is space' and 'string trim'
TIP #414 Project (8.7) Draft Add (back) Tcl_InitSubsystems as Public API
TIP #415 Project (8.7) Draft Enable Easy Creation of Circular Arc Segments
TIP #416 Project (8.6) Final New Options for 'load': -global and -lazy
TIP #417 Project (8.7) Draft Use Explicit Option Names for "file tempfile"
TIP #418 Project (8.7) Draft Add [binary] Subcommands for In-Place Modification
TIP #419 Project (8.7) Draft A New Command for Binding to Tk Events
TIP #420 Project (8.7) Draft 'vexpr', a Vector Expression Command
TIP #421 Project (8.7) Draft A Command for Iterating Over Arrays
TIP #422 Project (9.0) Draft Don't Use stdarg.h/va_list in Public API
TIP #423 Project (8.7) Draft Formatting Timestamps with Milliseconds
TIP #424 Project (8.7) Draft Improving [exec]
TIP #425 Project (8.7) Draft Internationalization of Default Panic Callback on Windows
TIP #426 Project (8.7) Draft Determining the "Type" of Commands
TIP #427 Project (8.6.4) Final Introspection of Asynchronous Socket Connection
TIP #428 Project (8.7) Draft Produce Error Dictionary from 'fconfigure -error'
TIP #429 Project (8.6.2) Final A 'string' Subcommand for Concatenation
TIP #430 Project (8.6.3) Draft Add basic ZIP archive support to Tcl
TIP #431 Project (8.6.4) Draft Add 'tempdir' Subcommand to 'file'
TIP #432 Project (8.6.3) Final Support for New Windows File Dialogs in Vista and Later
TIP #433 Project (8.6.4) Final Add %M binding substitution
TIP #434 Project (8.6) Draft Specify Event Sources for 'vwait'
TIP #435 Project (8.6.5) Rejected Safe Mutex Disposal API
TIP #436 Project (8.6.5) Final Improve TclOO isa Introspection
TIP #437 Project (8.5.18) Final Tk panedwindow options for proxy window
TIP #438 Project (8.6.5) Final Ensure Line Metrics are Up-to-Date
TIP #439 Project (8.7) Draft Semantic Versioning
TIP #440 Project (8.5) Final Add engine to tcl_platform Array
TIP #441 Project (8.6.5) Final Add -justify Configuration Option to the listbox Widget
TIP #442 Project (8.7) Final Display text in progressbars
TIP #443 Project (8.6.6) Final More Tag Configuration Options for the Text Widget
TIP #444 Project (8.7) Final Add "weekdays" unit in clock add
TIP #445 Project (8.7) Draft Tcl_ObjType Utility Routines
TIP #446 Project (8.6.6) Final Introspect Undo/Redo Stack Depths
TIP #447 Project (8.7) Final Execution Time Verbosity Levels in tcltest::configure
TIP #448 Project (8.7) Draft Update Tcl_SetNotifier to Reinitialize Event Loop
TIP #449 Project (8.7) Final [text] undo/redo to Return Range of Characters
TIP #450 Project (8.7) Draft Add [binary] subcommand "set" for in-place modification
TIP #451 Project (8.7) Draft Modify [update] to Give Full Script Access to Tcl_DoOneEvent
TIP #452 Project (8.6) Draft Add "stubs" Package to or Along Side of TclTest
TIP #453 Project (8.7) Draft Tcl Based Automation for tcl/pkgs
TIP #454 Project (8.6.6) Draft Automatically Resize Frames After Last Child Removed
TIP #455 Project (8.7) Draft Extensions to [vwait]: Variable Sets and Scripted Access to Tcl_DoOneEvent
TIP #456 Project (8.7) Final Extend the C API to Support Passing Options to TCP Server Creation
TIP #457 Project (8.7) Draft Add Support for Named Arguments
TIP #458 Project (8.7) Final Add Support for epoll() and kqueue() in the Notifier
TIP #459 Project (8.7) Draft Tcl Package Introspection Improvements
TIP #460 Project (9.0) Draft An Alternative to Upvar
TIP #461 Project (8.7) Draft Separate Numeric and String Comparison Operators
TIP #462 Project (8.7) Draft Add New [info ps] Ensemble for Subprocess Management
TIP #463 Project (8.7) Final Command-Driven Substitutions for regsub
TIP #464 Project (8.5) Final Support for Multimedia Keys on Windows
TIP #465 Project (8.7) Draft Change Rule 8 of the Dodekalogue to Cut Some Corner Cases
TIP #466 Project (8.7) Draft Revised Implementation of the Text Widget
TIP #467 Process Draft Move TIP Collection to Fossil
TIP #468 Project (8.7) Draft Support Passing TCP listen Backlog Size Option to TCP Socket Creation
TIP #469 Project (8.7) Draft A Callback for Channel-Exception Conditions
TIP #470 Project (8.7) Final Reliable Access to OO Definition Context Object
TIP #471 Project (8.7) Draft Add [info linkedname] Introspection Command
TIP #472 Project (8.7) Accepted Add Support for 0d Radix Prefix to Integer Literals
TIP #473 Project (8.6.7) Final Allow a Defined Target Namespace in oo::copy
TIP #10000 Informative Draft Dummy Proposal for Testing Editing Interfaces

TIP #10000: Draft
Dummy Proposal for Testing Editing Interfaces

TIP #473:
Allow a Defined Target Namespace in oo::copy

TIP #472: Accepted
Add Support for 0d Radix Prefix to Integer Literals

TIP #471: Draft
Add [info linkedname] Introspection Command

TIP #470:
Reliable Access to OO Definition Context Object

TIP #469: Draft
A Callback for Channel-Exception Conditions

TIP #468: Draft
Support Passing TCP listen Backlog Size Option to TCP Socket Creation

TIP #467: Draft
Move TIP Collection to Fossil

TIP #466: Draft
Revised Implementation of the Text Widget

TIP #465: Draft
Change Rule 8 of the Dodekalogue to Cut Some Corner Cases

TIP #464:
Support for Multimedia Keys on Windows

TIP #463:
Command-Driven Substitutions for regsub

TIP #462: Draft
Add New [info ps] Ensemble for Subprocess Management

TIP #461: Draft
Separate Numeric and String Comparison Operators

TIP #460: Draft
An Alternative to Upvar

TIP #459: Draft
Tcl Package Introspection Improvements

TIP #458:
Add Support for epoll() and kqueue() in the Notifier

TIP #457: Draft
Add Support for Named Arguments

TIP #456:
Extend the C API to Support Passing Options to TCP Server Creation

TIP #455: Draft
Extensions to [vwait]: Variable Sets and Scripted Access to Tcl_DoOneEvent

TIP #454: Draft
Automatically Resize Frames After Last Child Removed

TIP #453: Draft
Tcl Based Automation for tcl/pkgs

TIP #452: Draft
Add "stubs" Package to or Along Side of TclTest

TIP #451: Draft
Modify [update] to Give Full Script Access to Tcl_DoOneEvent

TIP #450: Draft
Add [binary] subcommand "set" for in-place modification

TIP #449:
[text] undo/redo to Return Range of Characters

TIP #448: Draft
Update Tcl_SetNotifier to Reinitialize Event Loop

TIP #447:
Execution Time Verbosity Levels in tcltest::configure

TIP #446:
Introspect Undo/Redo Stack Depths

TIP #445: Draft
Tcl_ObjType Utility Routines

TIP #444:
Add "weekdays" unit in clock add

TIP #443:
More Tag Configuration Options for the Text Widget

TIP #442:
Display text in progressbars

TIP #441:
Add -justify Configuration Option to the listbox Widget

TIP #440:
Add engine to tcl_platform Array

TIP #439: Draft
Semantic Versioning

TIP #438:
Ensure Line Metrics are Up-to-Date

TIP #437:
Tk panedwindow options for proxy window

TIP #436:
Improve TclOO isa Introspection

TIP #435: Rejected
Safe Mutex Disposal API

TIP #434: Draft
Specify Event Sources for 'vwait'

TIP #433:
Add %M binding substitution

TIP #432:
Support for New Windows File Dialogs in Vista and Later

TIP #431: Draft
Add 'tempdir' Subcommand to 'file'

TIP #430: Draft
Add basic ZIP archive support to Tcl

TIP #429:
A 'string' Subcommand for Concatenation

TIP #428: Draft
Produce Error Dictionary from 'fconfigure -error'

TIP #427:
Introspection of Asynchronous Socket Connection

TIP #426: Draft
Determining the "Type" of Commands

TIP #425: Draft
Internationalization of Default Panic Callback on Windows

TIP #424: Draft
Improving [exec]

TIP #423: Draft
Formatting Timestamps with Milliseconds

TIP #422: Draft
Don't Use stdarg.h/va_list in Public API

TIP #421: Draft
A Command for Iterating Over Arrays

TIP #420: Draft
'vexpr', a Vector Expression Command

TIP #419: Draft
A New Command for Binding to Tk Events

TIP #418: Draft
Add [binary] Subcommands for In-Place Modification

TIP #417: Draft
Use Explicit Option Names for "file tempfile"

TIP #416:
New Options for 'load': -global and -lazy

TIP #415: Draft
Enable Easy Creation of Circular Arc Segments

TIP #414: Draft
Add (back) Tcl_InitSubsystems as Public API

TIP #413:
Unicode Support for 'string is space' and 'string trim'

TIP #412:
Dynamic Locale Changing for msgcat with On-Demand File Load

TIP #411: Draft
Improved Channel Introspection via "chan info"

TIP #410: Draft
Three Features of scan Adapted for binary scan/format

TIP #409: Draft
UDP in Tcl

TIP #408: Draft
Allow Any Command for expr Functions

TIP #407:
The String Representation of Tcl Lists: the Gory Details

TIP #406: Draft
"C" is for Cookie

TIP #405:
Add Collecting Loops, the 'lmap' and 'dict map' Commands

TIP #404:
Let Message Catalogs get the Locale from their File Name

TIP #403:
Web Colors for Tk

TIP #402: Draft
General Platform UNC Support

TIP #401: Draft
Comment Words with Leading {#}

TIP #400:
Setting the Compression Dictionary and Other 'zlib' Updates

TIP #399: Accepted
Dynamic Locale Changing for msgcat

TIP #398:
Quickly Exit with Non-Blocking Blocked Channels

TIP #397:
Extensible Object Copying

TIP #396:
Symmetric Coroutines, Multiple Args, and yieldto

TIP #395:
New 'string is entier' Command

TIP #394: Draft
Platform-Independent Handling of Contemporary Mice

TIP #393: Draft
Add -command Option to lsearch

TIP #392: Draft
Allow Bignums to be Disabled at Runtime on a Per-Interp Basis

TIP #391: Withdrawn
Support for UDP Sockets in Tcl

TIP #390: Draft
A Logging API for Tcl

TIP #389: Draft
Full support for Unicode 8.0 and later

TIP #388:
Extending Unicode literals past the BMP

TIP #387: Withdrawn
Unified Yield Command Syntax

TIP #386: Draft
Relocation of Tcl/Tk Source Control Repositories

TIP #385: Draft
Functional Traces On Variables

TIP #384: Draft
Add File Alteration Monitoring to the Tcl Core

TIP #383: Draft
Injecting Code into Suspended Coroutines

TIP #382:
Let tk_getSaveFile ignore file overwrites

TIP #381:
Call Chain Introspection and Control

TIP #380:
TclOO Slots for Flexible Declarations

TIP #379: Draft
Add a Command for Delivering Events Without Tk

TIP #378:
Fixing the Performance of TIP 280

TIP #377: Withdrawn
Portably Determining the Number of Processors in the System

TIP #376:
Bundle sqlite3 and tdbc::sqlite3 Packages

TIP #375: Draft
Symmetric Coroutines and Yieldto

TIP #374: Draft
Stackless Vwait

TIP #373: Withdrawn
Improved Yielding Support for Coroutines

TIP #372: Draft
Multi-argument Yield for Coroutines

TIP #371: Draft
Improvements for the dict command

TIP #370: Draft
Extend Tk's selection with a -time option

TIP #369: Draft
Widget cargo command

TIP #368: Withdrawn
Listbox Justification Option

TIP #367: Draft
A Command to Remove Elements from a List

TIP #366: Draft
Variable Sized Indicators for Menubuttons

TIP #365:
Add Python Compatibility Mode

TIP #364:
Threading Support: Configuration and Package

TIP #363: Draft
Vector Math in the Tcl Core

TIP #362:
Simple 32 and 64 bit Registry Support

TIP #361: Draft
Releasing Channel Buffers

TIP #360:
Modernize X11 Menus

TIP #359:
Extended Window Manager Hint Support

TIP #358: Draft
Suppress Empty List Element Generation from the Split Command

TIP #357:
Export TclLoadFile

TIP #356:
NR-enabled Substitutions for Extensions

TIP #355: Draft
Stop Fast Recycling of Channel Names on Unix

TIP #354:
Minor Production-Driven TclOO Revisions

TIP #353:
NR-enabled Expressions for Extensions

TIP #352: Draft
Tcl Style Guide

TIP #351: Draft
Add Striding Support to lsearch

TIP #350: Draft
Tcl Database Connectivity - Corrigenda

TIP #349: Draft
New "-cargo" option for every Tk widget

TIP #348:
Substituted 'errorstack' / 'traceback'

TIP #347: Withdrawn
Align 'string is ...' to Type-Conversion Functions in 'expr'

TIP #346: Draft
Error on Failed String Encodings

TIP #345: Draft
Kill the 'identity' Encoding

TIP #344: Draft
Bring TCP_NODELAY and SO_KEEPALIVE to socket options

TIP #343:
A Binary Specifier for [format/scan]

TIP #342: Draft
Dict Get With Default

TIP #341:
Multiple 'dict filter' Patterns

TIP #340: Withdrawn
Const Qualification of Tcl_SetResult's Argument

TIP #339: Rejected
Case-Insensitive Package Names

TIP #338:
Embedder Access to Startup Scripts of *_Main()

TIP #337:
Make TclBackgroundException() Public

TIP #336:
Supported Access To interp->errorline

TIP #335:
An API for Detecting Active Interpreters

TIP #334: Withdrawn
Make 'lrepeat' Accept Zero as a Count

TIP #333: Draft
New Variable and Namespace Resolving Interface

TIP #332:
Half-Close for Bidirectional Channels

TIP #331:
Allow [lset] to Extend Lists

TIP #330:
Eliminate interp->result from the Public Headers

TIP #329:
Try/Catch/Finally syntax

TIP #328:
Coroutines

TIP #327:
Proper Tailcalls

TIP #326:
Add -stride Option to lsort

TIP #325: Draft
System Tray Access

TIP #324:
A Standard Dialog For Font Selection

TIP #323:
Do Nothing Gracefully

TIP #322:
Publish the NRE API

TIP #321:
Add a [tk busy] Command

TIP #320:
Improved Variable Handling in the Core Object System

TIP #319: Draft
Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets

TIP #318:
Extend Default Whitespace in 'string trim' Beyond ASCII

TIP #317:
Extend binary Ensemble with Binary Encodings

TIP #316:
Portable Access Functions for Stat Buffers

TIP #315:
Add pathSeparator to tcl_platform Array

TIP #314:
Ensembles with Parameters

TIP #313:
Inexact Searching in Sorted List

TIP #312: Draft
Add More Link Types

TIP #311: Draft
Tcl/Tk 8.6 Release Calendar

TIP #310: Rejected
Add a New Pseudo-Random Number Generator

TIP #309: Draft
Expose the Expression Parsing

TIP #308:
Tcl Database Connectivity (TDBC)

TIP #307:
Make TclTransferResult() Public

TIP #306: Rejected
Auto-Naming Widgets

TIP #305: Withdrawn
ANSI Escape Sequence Support for Windows's Console Channel Driver

TIP #304:
A Standalone [chan pipe] Primitive for Advanced Child IPC

TIP #303: Draft
Enhance 'llength' Command to Support Nested Lists

TIP #302: Draft
Fix "after"'s Sensitivity To Adjustments Of System Clock

TIP #301: Withdrawn
Split Bidirectional Channels For Half-Close

TIP #300:
Examine Glyph Substitution in the 'font actual' Command

TIP #299:
Add isqrt() Math Function

TIP #298:
Revise Shared Value Rules for Tcl_GetBignumAndClearObj

TIP #297: Draft
Integer Type Introspection and Conversion

TIP #296: Draft
Enhanced Syntax for Pair-Wise Indices

TIP #295: Draft
Enhance Arguments to lrange

TIP #294: Rejected
The "entier" Function: It's Spelt "entire"

TIP #293:
Argument Expansion with Leading {*}

TIP #292: Draft
Allow Unquoted Strings in Expressions

TIP #291:
Add the 'platform' Package to Tcl

TIP #290: Draft
Registration of Custom Error Handler Scripts

TIP #289: Rejected
Revision of [lrepeat] Argument Order

TIP #288: Draft
Allow "args" Anywhere in Procedure Formal Arguments

TIP #287:
Add a Commands for Determining Size of Buffered Data

TIP #286:
Add 'xposition' Command to Menu Widgets

TIP #285:
Script Cancellation with [interp cancel] and Tcl_CancelEval

TIP #284: Draft
New 'invoke' and 'namespace invoke' Commands

TIP #283: Draft
Modify Ensemble Command Resolution Behaviour

TIP #282: Draft
Enhanced Expression Syntax

TIP #281: Draft
Improvements in System Error Handling

TIP #280:
Add Full Stack Trace Capability With Location Introspection

TIP #279: Draft
Adding an Extensible Object System to the Core

TIP #278: Draft
Fix Variable Name Resolution Quirks

TIP #277: Draft
Create Namespaces as Needed

TIP #276: Draft
Specify and Unify Variable Linking Commands

TIP #275:
Support Unsigned Values in binary Command

TIP #274:
Right-Associativity for the Exponentiation Operator

TIP #273: Rejected
Add Tcl_Expr... Support to Tcl_Get... Functions

TIP #272:
String and List Reversal Operations

TIP #271: Draft
Windows-Style Open and Save File Dialog on Unix

TIP #270:
Utility C Routines for String Formatting

TIP #269:
Add 'string is list' to the 'string is' Subcommand

TIP #268:
Enhance 'package' Version Handling

TIP #267:
Allow 'exec' to Ignore Stderr

TIP #266: Rejected
Numbers are Commands

TIP #265:
A Convenient C-side Command Option Parser for Tcl

TIP #264:
Add Function to Retrieve the Interpreter of a Window

TIP #263: Draft
Quantum Tcl

TIP #262: Draft
Background Images for Frames

TIP #261:
Return Imported Commands from [namespace import]

TIP #260:
Add Underline Option to Canvas Text Items

TIP #259: Draft
Making 'exec' Optionally Binary Safe

TIP #258:
Enhanced Interface for Encodings

TIP #257:
Object Orientation for Tcl

TIP #256:
Implement Tabular and Wordprocessor Style Tabbing

TIP #255:
Add 'min' and 'max' [expr] Functions

TIP #254:
New Types for Tcl_LinkVar

TIP #253: Draft
Consolidate Package-Related Commands

TIP #252: Rejected
Add New 'string' Command Options

TIP #251: Rejected
Enhance the 'list' Command

TIP #250:
Efficient Access to Namespace Variables

TIP #249:
Unification of Tcl's Parsing of Numbers

TIP #248:
Integrate Tile into Tk as Ttk

TIP #247: Draft
Tcl/Tk Engineering Manual

TIP #246: Draft
Unify Pattern Matching

TIP #245:
Discover User Inactivity Time

TIP #244:
PNG Photo Image Support for Tk

TIP #243: Draft
Supply Find Dialog for the Text Widget

TIP #242:
Preselect Filter on tk_get*File Dialogs

TIP #241:
Case-Insensitive Switches and List Searching and Sorting

TIP #240: Draft
An Ensemble Command to Manage Processes

TIP #239: Draft
Enhance the 'load' Command

TIP #238: Draft
Fire Event when Widget Created

TIP #237:
Arbitrary-Precision Integers for Tcl

TIP #236:
Absolute Positioning of Canvas Items

TIP #235:
Exposing a C API for Ensembles

TIP #234:
Add Support For Zlib Compression

TIP #233:
Virtualization of Tcl's Sense of Time

TIP #232:
Creating New Math Functions for the 'expr' Command

TIP #231:
Support for [wm attributes] on X11

TIP #230:
Tcl Channel Transformation Reflection API

TIP #229:
Scripted Control of Name Resolution in Namespaces

TIP #228: Draft
Tcl Filesystem Reflection API

TIP #227:
Interface to Get and Set the Return Options of an Interpreter

TIP #226:
Interface to Save and Restore Interpreter State

TIP #225: Draft
Arithmetic Series with Optimized Space Complexity

TIP #224: Draft
Add New [array] Subcommands 'incr' and 'value'

TIP #223:
Full-Screen Toplevel Support for Tk

TIP #222:
Add [wm attributes -alpha] Attribute on Windows

TIP #221:
Allow Background Error Handlers to Accept Return Options

TIP #220: Draft
Escalate Privileges in VFS Close Callback

TIP #219:
Tcl Channel Reflection API

TIP #218:
Tcl Channel Driver Thread State Actions

TIP #217:
Getting Sorted Indices out of Lsort

TIP #216: Draft
Handling Command-Line Options in Tclsh and Wish

TIP #215:
Make [incr] Auto-Initialize Undefined Variables

TIP #214: Withdrawn
Add New Object Introspection Command

TIP #213: Withdrawn
A Standard Dialog for Font Selection

TIP #212:
Temporarily Opening out a Dictionary

TIP #211: Withdrawn
Add Full Stack Trace Capability

TIP #210:
Add 'tempfile' Subcommand to 'file'

TIP #209:
Add [clock milliseconds], and [clock microseconds]

TIP #208:
Add a 'chan' Command

TIP #207:
Add a -namespace Option to [interp invokehidden]

TIP #206: Rejected
Add an [ftruncate] Command

TIP #205:
Use pkgconfig Database to Register Xft Support

TIP #204:
Virtual Events for Keyboard Traversal

TIP #203: Withdrawn
Create tclConfig.sh-Equivalent in Tcl

TIP #202:
Add 2>@1 Special Case to [open] and [exec]

TIP #201:
Add 'in' Operator to [expr]

TIP #200: Rejected
Listing the Values in an Array

TIP #199: Rejected
Specification of Alternatives to .wishrc/.tclshrc

TIP #198: Draft
Image Command XPM Extension

TIP #197:
Unfocussed Text Widget Cursor Control

TIP #196: Withdrawn
Tcl Commands as Values

TIP #195:
A Unique Prefix Handling Command

TIP #194:
Procedures as Values via '''apply'''

TIP #193: Draft
Simple Syntax Help System

TIP #192: Draft
Lazy Lists

TIP #191: Draft
Managing Tcl Packages and Modules in a Multi-Version Environment

TIP #190: Draft
Implementation Choices for Tcl Modules

TIP #189:
Tcl Modules

TIP #188:
Add 'string is wideinteger' to the 'string is' Subcommand

TIP #187: Rejected
Procedures as Values

TIP #186: Draft
Expose the Type and Modified-State of Widget Options

TIP #185: Rejected
Null Handling

TIP #184:
Avoid Creating Unusable Variables

TIP #183:
Add a Binary Flag to [open]

TIP #182:
Add [expr bool] Math Function

TIP #181:
Add a [namespace unknown] Command

TIP #180: Draft
Add a Megawidget Support Core Package

TIP #179:
Add -hide Option to panedwindow Widget

TIP #178: Draft
[info pid] and [info tid] Subcommands

TIP #177:
Add -stretch Option to panedwindow Widget

TIP #176:
Add String Index Values

TIP #175: Withdrawn
Add an -async Option to [open]

TIP #174:
Math Operators as Commands

TIP #173:
Internationalisation and Refactoring of the 'clock' Command

TIP #172: Withdrawn
Improve UNIX Tk Look and Feel

TIP #171:
Change Default Bindings Behavior

TIP #170: Draft
Better Support for Nested Lists

TIP #169:
Add Peer Text Widgets

TIP #168:
Cubic Bezier Curves on the Canvas

TIP #167: Draft
Add a New Option for Context Help for Windows

TIP #166: Draft
Reading and Writing the Photo Image Alpha Channel

TIP #165:
A User-Data Field for Virtual Events

TIP #164: Draft
Add Rotate Subcommand to the Canvas Widget

TIP #163:
A [dict merge] Subcommand

TIP #162:
IPv6 Sockets for Tcl

TIP #161: Draft
Change Default for Menu's -tearoff Option to False

TIP #160: Draft
Improvements to Terminal and Serial Channel Handling

TIP #159:
Extending Tk 'wm' Command to Support Coloured Icons

TIP #158:
Distinguish the two 'Enter' keys on Windows

TIP #157:
Argument Expansion with Leading {expand}

TIP #156:
Language-Neutral Root Locale for Msgcat

TIP #155:
Fix Some of the Text Widget's Limitations

TIP #154: Draft
Add Named Colors to Tk

TIP #153:
Enhancing the [winfo toplevel] Command

TIP #152:
New -detail Option for tk_messageBox

TIP #151:
Remove -e: Command Line Option from tclsh and wish

TIP #150:
Implement the Tk send Command for Windows

TIP #149: Withdrawn
Allow "enabled" as Synonym for "normal" in -state Option

TIP #148:
Correct [list]-Quoting of the '#' Character

TIP #147:
Make Grid's Column/Row Configure Easier

TIP #146:
Add Overall Anchoring to the Grid Geometry Manager

TIP #145:
Enhanced Tk Font Handling

TIP #144: Withdrawn
Argument Expansion Syntax

TIP #143:
An Interpreter Resource Limiting Framework

TIP #142: Withdrawn
Search Path Variable to Lookup Command Names in Namespaces

TIP #141:
Multiple Initial-Files in [tk_getOpenFile]

TIP #140:
Tracing Namespace Modifications

TIP #139:
Publish Part of Tcl's Namespace API

TIP #138:
New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables

TIP #137:
Specifying Script Encodings for [source] and tclsh

TIP #136:
Large List Initialisation

TIP #135:
Change 'dde servername -exact' Option to -force

TIP #134: Withdrawn
Subsystem Per-Thread Data Interfaces

TIP #133: Draft
Extending [expr] Operators

TIP #132:
Revised Floating-Point Conversions in Tcl

TIP #131:
Read My Mind and Do What I Mean

TIP #130:
Unique DDE server names.

TIP #129:
New Format Codes for the [binary] Command

TIP #128: Rejected
Ability to Install a Custom Memory Allocator

TIP #127:
Add an -index Option to [lsearch]

TIP #126: Draft
Rich Strings for Representation Persistence

TIP #125:
Converting between Frame and Toplevel Windows

TIP #124:
High-Resolution Absolute Time Values From [clock]

TIP #123:
Adding an Exponentiation Operator to the [expr] Command

TIP #122: Rejected
Use tcl_{non,}wordchars Throughout Tcl/Tk

TIP #121:
Controlled Application Shutdown via Tcl_Exit

TIP #120:
Restricted DDE Services

TIP #119:
Angled Text on a Canvas

TIP #118:
Enhance [file attributes] and [file copy] on Mac OS X & BSD

TIP #117: Withdrawn
Object Type Introspection

TIP #116:
More Safety for Large Images

TIP #115: Draft
Making Tcl Truly 64-Bit Ready

TIP #114: Draft
Eliminate Octal Parsing of Leading Zero Integer Strings

TIP #113:
Multi-Line Searches in the Text Widget

TIP #112:
Ensembles are Namespaces are Commands

TIP #111:
Dictionary Values and Manipulators

TIP #110:
Add a Tristate Mode to the Checkbutton and Radiobutton

TIP #109:
New Look for Checkbutton and Radiobutton on Unix

TIP #108:
Summary of Changes to Generic Tcl/Tk Code to Enable Mac OS X Port

TIP #107:
Fix the 2-second "raise delay" in Tk

TIP #106:
Add Encoding Abilities to the [dde] Command

TIP #105: Withdrawn
Add Prefix Matching for Switch

TIP #104:
Generalization of the Tk Undo Subsystem

TIP #103: Rejected
Argument Expansion Command

TIP #102:
Change [trace list] to [trace info]

TIP #101:
Export Tcltest Configuration

TIP #100:
Add Support for Unloading Dynamic Libraries Loaded with [load]

TIP #99:
Add 'file link' to Tcl

TIP #98:
Adding Transparency Compositing Rules to Photo Images

TIP #97:
Moving Vertices of Canvas Items

TIP #96:
Add [tk caret] Command and Tk_SetCaretPos API

TIP #95:
Add [wm attributes] Command

TIP #94:
Add Listbox -activestyle Option

TIP #93:
Get/Delete Enhancement for the Tk Text Widget

TIP #92: Withdrawn
Move Package Load Decisions to Application Developer

TIP #91:
Backward Compatibility for Channel Types with 32-bit SeekProcs

TIP #90:
Enable [return -code] in Control Structure Procs

TIP #89: Withdrawn
Try/Catch Exception Handling in the Core

TIP #88: Rejected
Extend Tcl Process Id Control via 'pid'

TIP #87:
Allow Tcl Access to the Recursion Limit

TIP #86: Draft
Improved Debugger Support

TIP #85:
Custom Comparisons in Tcltest

TIP #84:
Add control for mouse movement filtering

TIP #83: Withdrawn
Augment Tcl_EvalFile with Tcl_EvalChannel and Tcl_EvalUrl

TIP #82:
Add -offrelief Option to Checkbutton and Radiobutton

TIP #81: Withdrawn
[incr Tcl] Functional Areas for Maintainer Assignments

TIP #80:
Additional Options for 'lsearch'

TIP #79:
Add Deletion Callback to Tcl_CreateObjTrace

TIP #78: Draft
TEA 2.0 Definitions

TIP #77: Withdrawn
Support for Nested Paired Item Lists

TIP #76:
Make 'regsub' Return a String

TIP #75:
Refer to Sub-RegExps Inside 'switch -regexp' Bodies

TIP #74:
wm stackorder command

TIP #73:
Export Tcl_GetTime in the Public API

TIP #72:
64-Bit Value Support for Tcl on 32-Bit Platforms

TIP #71: Withdrawn
Tk Bitmap Image Improvements

TIP #70: Withdrawn
A Relational Switch Control Structure

TIP #69: Draft
Improvements for the Tcl Hash Table

TIP #68:
Dynamic Trace Result Handling

TIP #67: Withdrawn
Allow Subclassing of tk_getOpenFile, tk_getSaveFile on UNIX

TIP #66: Draft
Stand-alone and Embedded Tcl/Tk Applications

TIP #65: Rejected
Enhanced [info args]

TIP #64:
Improvements to Windows Font Handling

TIP #63:
Add -compound Option to Menu Entries

TIP #62:
Add Support for Command Tracing

TIP #61:
Make TK_NO_SECURITY Run-Time Switchable

TIP #60: Rejected
EXTERN Macro Change to Support a Wider Set of Attributes

TIP #59:
Embed Build Information in Tcl Binary Library

TIP #58: Rejected
Extend [set] to Assign Multiple Values to Multiple Variables

TIP #57:
Move TclX's [lassign] into the Tcl Core

TIP #56:
Standardize Call Interface to Tcl_Eval* Functions

TIP #55:
Package Format for Tcl Extensions

TIP #54: Withdrawn
Using PURLs to Unite the Tcl Webspace

TIP #53: Withdrawn
Addition of 'assert' Command

TIP #52: Withdrawn
Hierarchical Namespace Lookup of Commands and Variables

TIP #51: Withdrawn
Native Menubutton on Macintosh

TIP #50:
Bundle [incr Tcl] with the Core Tcl distribution

TIP #49:
I/O Subsystem: Add API Tcl_OutputBuffered(chan)

TIP #48:
Tk Widget Styling Support

TIP #47:
Modifying Tk to Allow Writing X Window managers

TIP #46: Withdrawn
Consistent Overlap Behavior of Area-Defining Canvas Items

TIP #45:
Empty index lists for [lindex] and [lset]

TIP #44:
Move Tk's Private Commands and Variables into ::tk Namespace

TIP #43: Draft
How to be a TIP Editor

TIP #42: Withdrawn
Add New Standard Tk Option: -clientdata

TIP #41:
Paned Window Tk Widget

TIP #40: Withdrawn
Documentation Generator for Tcl Scripts

TIP #39: Withdrawn
Add New Standard Tk Option: -component

TIP #38: Withdrawn
Add Support for Default Bindtags

TIP #37:
Uniform Rows and Columns in Grid

TIP #36:
Library Access to 'Subst' Functionality

TIP #35:
Enhanced Support for Serial Communications

TIP #34: Withdrawn
Modernize TEA Build System

TIP #33:
Add 'lset' Command to Assign to List Elements.

TIP #32:
Add Tcl_Obj-enabled counterpart to Tcl_CreateTrace

TIP #31: Draft
CVS tags in the Tcl and Tk repositories

TIP #30: Draft
Tk Toolkit Maintainer Assignments

TIP #29: Rejected
Allow array syntax for Tcl lists

TIP #28: Draft
How to be a good maintainer for Tcl/Tk

TIP #27:
CONST Qualification on Pointers in Tcl API's

TIP #26:
Enhancements for the Tk Text Widget

TIP #25: Withdrawn
Native tk_messageBox on Macintosh

TIP #24: Draft
Tcl Maintainer Assignments

TIP #23: Accepted
Tk Toolkit Functional Areas for Maintainer Assignments

TIP #22:
Multiple Index Arguments to lindex

TIP #21:
Asymmetric Padding in the Pack and Grid Geometry Managers

TIP #20:
Add C Locale-Exact CType Functions

TIP #19:
Add a Text Changed Flag to Tk's Text Widget

TIP #18:
Add Labels to Frames

TIP #17:
Redo Tcl's filesystem

TIP #16: Accepted
Tcl Functional Areas for Maintainer Assignments

TIP #15:
Functions to List and Detail Math Functions

TIP #14:
Access to Tk Photo Image Transparency

TIP #13: Accepted
Web Service for Drafting and Archiving TIPs

TIP #12: Draft
The "Batteries Included" Distribution

TIP #11:
Tk Menubutton Enhancement: -compound option for menubutton

TIP #10:
Tcl I/O Enhancement: Thread-Aware Channels

TIP #9: Withdrawn
Tk Standard Library

TIP #8:
Add Winico support to the wm command on windows

TIP #7:
Increased resolution for TclpGetTime on Windows

TIP #6: Rejected
Include [Incr Tcl] in the Core Tcl distribution

TIP #5:
Make TkClassProcs and TkSetClassProcs Public and Extensible

TIP #4: Draft
Tcl Release and Distribution Philosophy

TIP #3: Accepted
TIP Format

TIP #2: Draft
TIP Guidelines

TIP #1:
TIP Index

TIP #0:
Tcl Core Team Basic Rules

TIP #0: Tcl Core Team Basic Rules
$Revision: 2.6 $

This TIP describes the mission, structure, and operating procedures of the Tcl Core Team (TCT). When in doubt about how the TCT works, consult this document as the final authority.

Author:John Ousterhout
Type:Process
State:Final
Vote:Done
Created:11 Dec 2000
Posting History:

TIP #1: TIP Index
$Revision: 1.6 $

This TIP contains the index of all TIPs published over the lifetime of the TCT. It will be continually and automatically updated.

Author:TIP Editor
Type:Informative
State:Active
Vote:No voting
Created:14 Sep 2000
Posting History:

TIP #2: TIP Guidelines
$Revision: 1.38 $

This document describes and defines the editorial process a TCT document (TIP) has to go through before accepted as official.

Author:Andreas Kupries
Donal K. Fellows
Don Porter
Mo DeJong
Larry W. Virden
Kevin Kenny
Type:Process
State:Draft
Vote:Pending
Created:12 Sep 2000
Posting History:

TIP #3: TIP Format
$Revision: 1.8 $

This TIP is a companion document to the TIP Guidelines TIP #2 and describes the structure and formatting to use when writing a TIP.

Author:Andreas Kupries
Donal K. Fellows
Type:Process
State:Accepted
Vote:Done
Created:14 Sep 2000
Posting History:

TIP #4: Tcl Release and Distribution Philosophy
$Revision: 1.10 $

This document outlines how Tcl should be distributed, with particular reference to issues related to building a distribution with the batteries included so that most people can have access to the useful extensions without having to chasing halfway across the 'net for them.

Author:Brent Welch
Donal K. Fellows
Larry W. Virden
Larry W. Virden
Type:Informative
State:Draft
Vote:Pending
Created:26 Oct 2000
Posting History:
Discussions To:comp.lang.tcl

TIP #5: Make TkClassProcs and TkSetClassProcs Public and Extensible
$Revision: 1.3 $

At certain critical moments in the lifetime of a Tk widget, Tk will invoke various callbacks on that widget. These callbacks enable the widget to do lots of interesting things, such as react to configuration changes for named fonts, or create and manage truly native widgets (such as the scrollbar widget on Windows platforms). The API for setting up these callbacks for a particular window are, as of Tk 8.3.2, private. This prohibits extension widget authors from fully utilizing this powerful system; those developers can either copy the private declarations into their own source code (leading to future maintenance hassles), or forego the system entirely, hampering their ability to make truly native and well-integrated widgets. This proposal offers an extensible means for making that API public.

Author:Eric Melski
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:17 Oct 2000
Posting History:

TIP #6: Include [Incr Tcl] in the Core Tcl distribution
$Revision: 1.6 $

Include [Incr Tcl] in the Core Tcl distribution.

Author:Mark Harrison
Type:Project
Tcl Version:8.4.0
State:Rejected
Vote:Done
Created:16 Oct 2000
Posting History:

TIP #7: Increased resolution for TclpGetTime on Windows
$Revision: 1.4 $

Tcl users on the Windows platform have long been at a disadvantage in attempting to do code timing studies, owing to the poor resolution of the Windows system clock. The time command, the clock clicks command, and all related functions are limited to a resolution of (typically) 10 milliseconds. This proposal offers a solution based on the Windows performance counter. It presents a means of disciplining this counter to the system clock so that TclpGetTime (the underlying call that the above commands use) can return times to microsecond precision with accuracy in the tens of microseconds.

Author:Kevin Kenny
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:26 Oct 2000
Posting History:
Discussions To:comp.lang.tcl

TIP #8: Add Winico support to the wm command on windows
$Revision: 1.8 $

Add to wm the ability to do the windows-titlebar-icon manipulation that the Winico extension currently provides, without the bugs noted in that extension.

Author:Vince Darley
Type:Project
Tcl Version:8.4.0
State:Final
Vote:Done
Created:06 Nov 2000
Posting History:

TIP #9: Tk Standard Library
$Revision: 1.9 $

A Tk standard library shall be bundled with the core Tcl/Tk distribution. The library will consist of general purpose widgets and composite widgets for use in constructing Tcl/Tk applications. The library of Tk components will be written in Tcl/Tk.

Author:Marty Backe
Larry W. Virden
Jeff Hobbs
Type:Project
Tcl Version:8.4
State:Withdrawn
Vote:Pending
Created:07 Nov 2000
Posting History:

TIP #10: Tcl I/O Enhancement: Thread-Aware Channels
$Revision: 1.6 $

This TIP describes how to change the generic I/O layer in the Tcl core to make channels aware of the thread they are managed by.

Author:Andreas Kupries
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:08 Nov 2000
Posting History:

TIP #11: Tk Menubutton Enhancement: -compound option for menubutton
$Revision: 1.5 $

This TIP describes how to change the menubutton in the Tk core to add a -compound option to display both text and images. This behavior already exists in the button widget.

Author:Todd Helfter
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:16 Nov 2000
Posting History:

TIP #12: The "Batteries Included" Distribution
$Revision: 1.3 $

This document describes a comprehensive Tcl/Tk distribution. Its primary purpose is to create a standard source tree that includes Tcl, Tk, and extensions so that they can be built and installed in an simple and easy manner.

Author:George A. Howlett
Larry W. Virden
Type:Informative
State:Draft
Vote:Pending
Created:15 Sep 2000
Posting History:
Discussions To:comp.lang.tcl

TIP #13: Web Service for Drafting and Archiving TIPs
$Revision: 1.26 $

This document proposes the TCT provide a service on the World Wide Web for drafting and archiving TIPs and for providing TIPs in a variety of formats. A reference implementation is provided, and its server requirements are outlined.

Author:Don Porter
Donal K. Fellows
Type:Process
State:Accepted
Vote:Done
Created:21 Nov 2000
Posting History:

TIP #14: Access to Tk Photo Image Transparency
$Revision: 2.5 $

It is useful for some code (both extensions and scripts) to have access to the transparency information in photo images for various reasons, but this is not currently available, even via an internal structure defined in generic/tkInt.h. This TIP is aimed at making the information available, and in such a way at the C level that backward compatibility is maintained in the future even if the internal structure definitions change.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.4.0
State:Final
Vote:Done
Created:22 Nov 2000
Posting History:
Keywords:Tk, photo, transparency,
internal, access

TIP #15: Functions to List and Detail Math Functions
$Revision: 1.8 $

Provides a way for the list of all math functions defined in the current interpreter to be discovered, and for discovering what arguments might be passed to an existing math function. This may be useful in tests as well as more general use.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.4.0
State:Final
Vote:Done
Created:22 Nov 2000
Posting History:
Keywords:Tcl, expr, function,
introspection

TIP #16: Tcl Functional Areas for Maintainer Assignments
$Revision: 1.48 $

This document proposes a division of Tcl's source code into functional areas so that each area may be assigned to one or more maintainers.

Author:Don Porter
Daniel Steffen
Type:Process
State:Accepted
Vote:Done
Created:21 Nov 2000
Posting History:

TIP #17: Redo Tcl's filesystem
$Revision: 1.18 $

Many of the most exciting recent developments in Tcl have involved putting virtual file systems in a file (e.g. Prowrap, Freewrap, Wrap, TclKit) but these have been largely ad hoc hacks of various internal APIs. This TIP seeks to replace this with a common underlying API that will, in addition, make porting of Tcl to new platforms a simpler task as well.

Author:Vince Darley
Type:Project
Tcl Version:8.4.0
State:Final
Vote:Done
Created:17 Nov 2000
Posting History:

TIP #18: Add Labels to Frames
$Revision: 2.3 $

This TIP proposes to add a labelled frame widget to Tk.

Author:Peter Spjuth
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:12 Dec 2000
Posting History:

TIP #19: Add a Text Changed Flag to Tk's Text Widget
$Revision: 1.6 $

This TIP adds a text changed flag to the Tk text widget. The flag would initially be reset, but would be set whenever the contents of the text widget changes.

Author:Neil McKay
Type:Project
Tcl Version:8.4a2
State:Final
Vote:Done
Created:03 Jan 2001
Posting History:
Obsoleted By:TIP #26

TIP #20: Add C Locale-Exact CType Functions
$Revision: 1.4 $

This TIP adds functions to Tcl that are a subset of the standard ctype functions (isspace, isalpha, ...) that are ensured to operate only in the C locale (char < 0x80).

Author:Jeffrey Hobbs
Type:Project
Tcl Version:8.5
State:Deferred
Vote:Pending
Created:08 Jan 2001
Posting History:

TIP #21: Asymmetric Padding in the Pack and Grid Geometry Managers
$Revision: 1.6 $

Proposes modifying the pack and grid geometry managers to support asymmetric padding.

Author:D. Richard Hipp
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:14 Jan 2001
Posting History:

TIP #22: Multiple Index Arguments to lindex
$Revision: 1.22 $

Obtaining access to elements of sublists in Tcl often requires nested calls to the lindex command. The indices are syntactically listed in most-nested to least-nested order, which is the reverse from other notations. In addition, the nesting of command substitution brackets further decreases readability. This proposal describes an extension to the lindex command that allows it to accept multiple index arguments, in least-nested to most-nested order, to automatically extract elements of sublists.

Author:David Cuthbert
Kevin Kenny
Don Porter
Donal K. Fellows
Type:Project
Tcl Version:8.4a2
State:Final
Vote:Done
Created:19 Jan 2001
Posting History:
Discussions To:comp.lang.tcl
kennykb@acm.org
Keywords:lindex, multiple arguments,
sublists

TIP #23: Tk Toolkit Functional Areas for Maintainer Assignments
$Revision: 1.30 $

This document proposes a division of the Tk toolkit's source code into functional areas so that each area may be assigned to one or more maintainers.

Author:Kevin Kenny
Jim Ingham
Don Porter
Daniel A. Steffen
Donal K. Fellows
Type:Process
State:Accepted
Vote:Done
Created:22 Jan 2001
Posting History:

TIP #24: Tcl Maintainer Assignments
$Revision: 1.56 $

This document keeps a record of who maintains each functional area of Tcl (TIP #16).

Author:Don Porter
Donal K. Fellows
Kevin B. Kenny
Jeff Hobbs
Pavel Goran
Daniel A. Steffen
miguel sofer
Type:Informative
State:Draft
Vote:Pending
Created:29 Jan 2001
Posting History:

TIP #25: Native tk_messageBox on Macintosh
$Revision: 1.3 $

This is a replacement for the tk_messageBox on the Macintosh with a native implementation which is compliant with the Appearance Manager in Mac OS 8 and later.

Author:Mats Bengtsson
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:07 Feb 2001
Posting History:
Obsoleted By:TIP #152

TIP #26: Enhancements for the Tk Text Widget
$Revision: 1.9 $

This TIP proposes several enhancements for the Tk text widget. An unlimited undo/redo mechanism is proposed, with several user available customisation features. Related to this, a text modified indication is proposed. This means that the user can set, query or receive a virtual event when the content of the text widget is modified. And finally a virtual event is added that is generated whenever the selection changes in the text widget.

Author:Ludwig Callewaert
Ludwig Callewaert
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:20 Feb 2001
Posting History:
Discussions To:comp.lang.tcl
Obsoletes:TIP #19

TIP #27: CONST Qualification on Pointers in Tcl API's
$Revision: 1.6 $

Many of the C and C++ interfaces to the Tcl library lack a CONST qualifier on the parameters that accept pointers, even though they do not, in fact, modify the data that the pointers designate. This lack causes a persistent annoyance to C/C++ programmers. Not only is the code needed to work around this problem more verbose than required; it also can lead to compromises in type safety. This TIP proposes that the C interfaces for Tcl be revised so that functions that accept pointers to constant data have type signatures that reflect the fact. The new interfaces will remain backward-compatible with the old, except that a few must be changed to return pointers to CONST data. (Changes of this magnitude, in the past, have been routine in minor releases; the author of this TIP does not see a compelling reason to wait for Tcl 9.0 to clean up these API's.)

Author:Kevin Kenny
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:25 Feb 2001
Posting History:
Discussions To:comp.lang.tcl
kennykb@acm.org

TIP #28: How to be a good maintainer for Tcl/Tk
$Revision: 1.24 $

This document presents information and advice to maintainers in the form of a Frequently Asked Questions (FAQ) list.

Author:Don Porter
Type:Informative
State:Draft
Vote:Pending
Created:23 Feb 2001
Posting History:

TIP #29: Allow array syntax for Tcl lists
$Revision: 1.8 $

Most popular programming languages provide some sort of indexed array construct, where array subscripts are integers. Tcl's lists are, in fact, arrays, but the existing syntax obscures the fact. Moreover, the existing list commands make it difficult to manipulate lists as arrays without running into peculiar performance issues. This TIP proposes that the syntax of variableName(value) be extended to function as an array selector if variableName designates a list. This change is upward compatible with existing Tcl scripts, because the proposed syntax results in a runtime error in every extant Tcl release.

Author:Kevin Kenny
Donal K. Fellows
Type:Project
Tcl Version:9.0
State:Rejected
Vote:Done
Created:07 Mar 2001
Posting History:
Discussions To:comp.lang.tcl
kennykb@acm.org

TIP #30: Tk Toolkit Maintainer Assignments
$Revision: 1.46 $

This document keeps a record of who maintains each functional area of Tk (TIP #23).

Author:Don Porter
Donal K. Fellows
Jan Nijtmans
Todd M. Helfter
Chengye Mao
George B. Smith
Miguel Bañón
Daniel Steffen
Peter Spjuth
Jeff Hobbs
Vince Darley
Donal K. Fellows
Benjamin Riefenstahl
Pat Thoyts
Vince Darley
Peter Spjuth
Type:Informative
State:Draft
Vote:Pending
Created:09 Mar 2001
Posting History:

TIP #31: CVS tags in the Tcl and Tk repositories
$Revision: 1.38 $

This document keeps a record of the CVS tags used in the Tcl and Tk repositories and their meanings.

Author:Don Porter
miguel sofer
Jeff Hobbs
Kevin Kenny
David Gravereaux
Donal K. Fellows
Andreas Kupries
Donal K. Fellows
dgp at users dot sf dot net
Kevin Kenny
Type:Informative
State:Draft
Vote:Pending
Created:12 Mar 2001
Posting History:

TIP #32: Add Tcl_Obj-enabled counterpart to Tcl_CreateTrace
$Revision: 1.11 $

This document proposes to add Tcl_Obj support for trace procedures written in C.

Author:David Cuthbert
Kevin Kenny
Type:Project
Tcl Version:8.4a4
State:Final
Vote:Done
Created:23 Mar 2001
Posting History:
Discussions To:comp.lang.tcl
Keywords:trace, Tcl_Obj

TIP #33: Add 'lset' Command to Assign to List Elements.
$Revision: 1.13 $

Most popular programming languages provide some sort of indexed array construct, where array subscripts are integers. Tcl's lists are implemented internally as indexed arrays, but it is difficult to use them as such because there is no convenient way to assign to individual elements. This TIP proposes a new command, lset, to rectify this limitation.

Author:Kevin Kenny
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:15 May 2001
Posting History:
Discussions To:comp.lang.tcl
kennykb@acm.org

TIP #34: Modernize TEA Build System
$Revision: 2.7 $

A number of things in the original TEA specification and documentation have fallen out of date. Numerous complaints about the difficulty of creating a TEA compliant package have appeared on news:comp.lang.tcl. Other complaints about the ease of building Tcl and Tk using the autoconf based build system have also surfaced. Addressing these concerns is made even more difficult by the fact that two independent build systems currently exist, one for UNIX, and one for Windows. Maintaining multiple build systems is a frustratingly slow process that wastes time better spent on other issues. In addition, the Tcl build scripts do not support cross compilation which makes the maintenance process even slower since one can't test simple build system changes for a given platform without access to that platform. This document describes how these concerns can be addressed.

Author:Mo DeJong
Andreas Kupries
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Done
Created:03 May 2001
Posting History:

TIP #35: Enhanced Support for Serial Communications
$Revision: 1.12 $

Tcl's support for RS-232 is very rudimentary. Mainly it allows to setup the communication rate [fconfigure -mode] and to read and write data with the standard Tcl functions. Real serial communications are often more complex. Therefore it is proposed to add support for hardware and software flow control, polling RS-232 (modem) status lines, and watching the input and output queue. This is all to be implemented via additional [fconfigure] options.

Author:Rolf Schroedter
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:06 Jun 2001
Posting History:

TIP #36: Library Access to 'Subst' Functionality
$Revision: 1.4 $

Some applications make very heavy use of the subst command - it seems particularly popular in the active-content-generation field - and for them it is important to optimise this as much as possible. This TIP adds a direct interface to these capabilities to the Tcl library, allowing programmers to avoid the modest overheads of even Tcl_EvalObjv and the option parser for the subst command implementation.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:13 Jun 2001
Posting History:

TIP #37: Uniform Rows and Columns in Grid
$Revision: 1.11 $

This TIP proposes to add a -uniform option to grid rowconfigure and grid columnconfigure so as to make it easier to create layouts where cells are constrained to have identical dimensions.

Author:Peter Spjuth
Kevin Kenny
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:19 Jun 2001
Posting History:

TIP #38: Add Support for Default Bindtags
$Revision: 1.5 $

This TIP proposes to add support for the ability to change the default list of bindtags for a class of widgets.

Author:Bryan Oakley
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:27 Jun 2001
Posting History:

TIP #39: Add New Standard Tk Option: -component
$Revision: 1.5 $

This TIP proposes to add a new standard option, -component, for all Tk widgets.

Author:Bryan Oakley
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:04 Jul 2001
Posting History:
Keywords:compound, megawidget

TIP #40: Documentation Generator for Tcl Scripts
$Revision: 1.4 $

This TIP proposes the adoption of a standard documentation format for Tcl scripts and the implementation of a simple tool that will extract this documentation from the source code so that it may be turned into a programmer's guide. This is in essence akin to documentation tools like the well-known javadoc utility for Java programs and Eiffel's short utility.

Author:Arjen Markus
Donal K. Fellows
Type:Project
Tcl Version:8.0
State:Withdrawn
Vote:Pending
Created:04 Jul 2001
Posting History:
Keywords:documentation,
automatic generation,
HTML, reference

TIP #41: Paned Window Tk Widget
$Revision: 1.13 $

This TIP proposes a C-based paned window widget for inclusion in the Tk core. A paned window consists of one or more vertical or horizontal "panes", each pair separated by a movable "sash" and each containing one widget, called a "slave". Paned windows are common in modern graphical user interfaces and should therefore be provided directly by the Tk core. Examples of the widget can be found in Windows Explorer; Netscape Messenger; many email clients; and virtually every graphical World Wide Web browser.

Author:Eric Melski
Type:Project
Tcl Version:8.4a2
State:Final
Vote:Done
Created:04 Jul 2001
Posting History:
Keywords:widget, tk, panedwindow

TIP #42: Add New Standard Tk Option: -clientdata
$Revision: 1.4 $

This TIP proposes to add a new standard option, -clientdata, for all Tk widgets.

Author:Bryan Oakley
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:05 Jul 2001
Posting History:

TIP #43: How to be a TIP Editor
$Revision: 1.4 $

This TIP describes some of the rules and guidelines that the TIP Editor uses when accepting TIPs for the first time.

Author:Donal K. Fellows
Type:Informative
State:Draft
Vote:Pending
Created:07 Jul 2001
Posting History:

TIP #44: Move Tk's Private Commands and Variables into ::tk Namespace
$Revision: 1.9 $

This TIP proposes that Tk's private commands and variables be moved into the namespace ::tk or its descendent namespace(s).

Author:Don Porter
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:16 Jul 2001
Posting History:

TIP #45: Empty index lists for [lindex] and [lset]
$Revision: 1.9 $

TIP's #22 and #33 contain an oversight in specifying the behavior of the multi-argument forms of lset and lindex when an empty index list is specified. The intended behavior is that an empty list of indices designates the entire list.

Author:Kevin Kenny
Don Porter
Type:Project
Tcl Version:8.4b1
State:Final
Vote:Done
Created:18 Jul 2001
Posting History:
Discussions To:comp.lang.tcl
kennykb@acm.org
Keywords:lindex, lset, multiple arguments,
sublists

TIP #46: Consistent Overlap Behavior of Area-Defining Canvas Items
$Revision: 1.5 $

This document proposes that all canvas items that define an area should behave the same in terms of interior points, i.e. points that return the enclosing object id when submitted to [$canvas find overlapping]. Currently polygons behave differently from the rest (rectangle, arc, oval).

Author:Gerhard Hintermayer
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:18 Jul 2001
Posting History:

TIP #47: Modifying Tk to Allow Writing X Window managers
$Revision: 1.9 $

With a few modifications to the Tk core, extensions could be written that would allow X window managers to be implemented as Tcl/Tk scripts.

Author:Neil McKay
Andreas Kupries
Donal K. Fellows
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:19 Jul 2001
Posting History:

TIP #48: Tk Widget Styling Support
$Revision: 1.20 $

The Tk Toolkit is one of the last major GUI toolkits lacking themes support. This TIP proposes several changes to widget design that allows custom code to be provided for widget element handling in a transparent and extensible fashion. User-provided code may then be used to alter the widgets' look without the need to alter the Tk core. The proposed changes induce no loss of compatibility, and only slight core changes are needed with no side effect on existing functionality.

Author:Frédéric Bonnet
Frédéric Bonnet
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:23 Jul 2001
Posting History:
Discussions To:comp.lang.tcl

TIP #49: I/O Subsystem: Add API Tcl_OutputBuffered(chan)
$Revision: 1.4 $

This document proposes the new public function Tcl_OutputBuffered(), analogous to the existing public function Tcl_InputBuffered().

Author:Rolf Schroedter
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:25 Jul 2001
Posting History:

TIP #50: Bundle [incr Tcl] with the Core Tcl distribution
$Revision: 1.12 $

A "town meeting" discussion in which users were given the opportunity to question the Tcl Core Team at the 2001 Open Source Convention has revealed a great popular demand for bundling an object system with the distribution of the Tcl Core. This TIP presents a compromise proposal for including [incr Tcl] that was acceptable to all eight TCT members present.

Author:Kevin Kenny
Mark Harrison
Jeff Hobbs
Andreas Kupries
Karl Lehenbauer
Michael McLennan
Don Porter
Brent Welch
Type:Informative
State:Final
Vote:Done
Created:27 Jul 2001
Posting History:

TIP #51: Native Menubutton on Macintosh
$Revision: 1.4 $

This is a replacement for the menubutton on the Macintosh with a native implementation which is compliant with the Appearance Manager in Mac OS 8 and later.

Author:Mats Bengtsson
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:04 Aug 2001
Posting History:

TIP #52: Hierarchical Namespace Lookup of Commands and Variables
$Revision: 1.6 $

This TIP proposes to change the command and variable namespace lookup system so that the full hierarchy of namespaces is parsed, rather than just the current namespace followed by the global namespace. This is primarily intended to rectify problems often encountered with the use of [incr Tcl] (ITcl) and namespaces. In addition, package encapsulation can be enhanced with judicious application of this feature.

Author:David Cuthbert
Andreas Kupries
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:09 Aug 2001
Posting History:
Discussions To:comp.lang.tcl
Keywords:namespace, lookup,
hierarchy

TIP #53: Addition of 'assert' Command
$Revision: 1.4 $

This TIP proposes the addition of an assert command and supporting infrastructure to the Tcl core.

Author:Gerald W. Lester
Kevin Kenny
Type:Project
Tcl Version:8.4
State:Withdrawn
Vote:Pending
Created:14 Aug 2001
Posting History:
Keywords:bytecode, compiler

TIP #54: Using PURLs to Unite the Tcl Webspace
$Revision: 1.8 $

This TIP proposes the use of PURLs to unify the scattered landscape of Tcl URLs into a coherent set of information about the language, the community, extensions, etc.

Author:Andreas Kupries
Jeff Hobbs
Type:Process
State:Withdrawn
Vote:Pending
Created:16 Aug 2001
Posting History:

TIP #55: Package Format for Tcl Extensions
$Revision: 1.18 $

This document specifies the contents of a binary distribution of a Tcl package, especially directory structure and required files, suitable for automated installation into an existing Tcl installation.

Author:Steve Cassidy
Larry W. Virden
Type:Informative
State:Draft
Vote:No voting
Created:16 Aug 2001
Posting History:

TIP #56: Standardize Call Interface to Tcl_Eval* Functions
$Revision: 1.4 $

This TIP replaces Tcl_EvalTokens with Tcl_EvalTokensStandard, which obeys the standard result management conventions for script evaluation functions.

Author:Miguel Sofer
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:28 Aug 2001
Posting History:

TIP #57: Move TclX's [lassign] into the Tcl Core
$Revision: 2.4 $

This TIP proposes to move the lassign command from the TclX extension into the Tcl core to make multiple assignment a much easier process for people.

Author:Donal K. Fellows
Agnar Renolen
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:30 Aug 2001
Posting History:

TIP #58: Extend [set] to Assign Multiple Values to Multiple Variables
$Revision: 1.6 $

This TIP proposes a multiple assignment command as a backwards-compatible extension to the Tcl set command.

Author:Anselm Lingnau
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:02 Sep 2001
Posting History:

TIP #59: Embed Build Information in Tcl Binary Library
$Revision: 1.16 $

This TIP provides an interface through which Tcl may be queried for information on its own configuration, in order to extract the information directly instead of reading it from a Bourne shell file. An important reason to do this is to have the information not only available but also tightly bound to the binary configured by it, so that the information doesn't get lost.

Author:Andreas Kupries
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:04 Sep 2001
Posting History:

TIP #60: EXTERN Macro Change to Support a Wider Set of Attributes
$Revision: 1.21 $

This TIP proposes a change to how the EXTERN macro in tcl.h works to support a wider range of compiler specific attributes.

Author:David Gravereaux
Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:06 Sep 2001
Posting History:

TIP #61: Make TK_NO_SECURITY Run-Time Switchable
$Revision: 1.4 $

This TIP changes the compile time Tk define TK_NO_SECURITY to be switchable at run-time.

Author:Jeff Hobbs
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Deferred
Vote:Pending
Created:12 Sep 2001
Posting History:

TIP #62: Add Support for Command Tracing
$Revision: 1.11 $

This TIP proposes that the Tcl's trace command be extended to include the following features: 1. tracing of command execution for the specified tcl command, and 2. step-wise tracing of any command execution within a specified procedure.

Author:Hemang Lavana
Vince Darley
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:18 Sep 2001
Posting History:

TIP #63: Add -compound Option to Menu Entries
$Revision: 1.5 $

This TIP adds to menu entries the ability to display both textual labels and images (or bitmaps) in exactly the same way as buttons and menubuttons currently can, by adding a -compound option.

Author:Vince Darley
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:27 Sep 2001
Posting History:

TIP #64: Improvements to Windows Font Handling
$Revision: 1.9 $

This TIP improves handling of native fonts in Tk under Microsoft Windows making Tk applications more aesthetic and more consistent with users' expectations of 'Windows applications.

Author:Chris Nelson
Kevin Kenny
Type:Project
Tcl Version:8.4
State:Deferred
Vote:Done
Created:27 Sep 2001
Posting History:
Obsoleted By:TIP #145

TIP #65: Enhanced [info args]
$Revision: 1.6 $

This TIP proposes a new subcommand to the [info] command be added that would return the list of arguments, together with any default values in the same format as the args parameter to the [proc] command.

Author:Glenn Jackman
Don Porter
Glenn Jackman
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:18 Sep 2001
Posting History:

TIP #66: Stand-alone and Embedded Tcl/Tk Applications
$Revision: 1.15 $

This TIP describes the development and deployment of Tcl/Tk applications, with particular attention on how to embed the interpreter into executables written in C or C++.

Author:Arjen Markus
Type:Informative
State:Draft
Vote:Pending
Created:02 Oct 2001
Posting History:
Keywords:installation, initialisation,
embedded, resources

TIP #67: Allow Subclassing of tk_getOpenFile, tk_getSaveFile on UNIX
$Revision: 1.5 $

On Microsoft Windows it is possible to "subclass" a standard dialog and add controls to it. This TIP proposes adding that feature to the tk_getOpenFile and tk_getSaveFile dialogs for non-Windows systems (wherever tkfbox.tcl and xmfbox.tcl are used for these dialogs).

Author:Chris Nelson
Al Zielaskowski
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:09 Oct 2001
Posting History:

TIP #68: Dynamic Trace Result Handling
$Revision: 1.5 $

This TIP proposes an extension to the Tcl_TraceVar API to cope with dynamically allocated results.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:16 Oct 2001
Posting History:

TIP #69: Improvements for the Tcl Hash Table
$Revision: 1.10 $

This document describes various improvements to the existing Tcl hash table. They include support for 64 bit platforms, better memory performance, and improved array hashing. The goal is a hash table that improves Tcl/Tk, but also can be used in industrial strength applications.

Author:George A. Howlett
Don Porter
Donal K. Fellows
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:16 Oct 2001
Posting History:
Discussions To:comp.lang.tcl

TIP #70: A Relational Switch Control Structure
$Revision: 1.8 $

This TIP proposes the introduction of a new control structure, rswitch, which is a relational parallel to switch-case control structure. It consists of two lists: condition list and situation-reaction list. At the maximum two conditions can be specified. Based on situation, reaction is executed. The situation is selected on "first true and only the first true" basis.

Author:Bhushit Joshipura
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:20 Oct 2001
Posting History:

TIP #71: Tk Bitmap Image Improvements
$Revision: 1.14 $

Tk has a number of pre-defined bitmaps (10 on all platforms) but it lacks a number of bitmaps useful for creating GUI elements. This TIP adds several such bitmaps (as bitmap images).

Author:Chris Nelson
Kevin Kenny
Eric Melski
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:26 Oct 2001
Posting History:

TIP #72: 64-Bit Value Support for Tcl on 32-Bit Platforms
$Revision: 1.10 $

This TIP adds the capability to perform computations on values that are (at least) 64-bits wide even on 32-bit platforms. It also adds support for handling files that are larger than 2GB large on those platforms (where supported by the underlying platform and filing system).

Author:Donal K. Fellows
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:05 Nov 2001
Posting History:

TIP #73: Export Tcl_GetTime in the Public API
$Revision: 1.4 $

This TIP proposes that the existing TclpGetTime function be renamed to be Tcl_GetTime and included in the published API.

Author:Kevin Kenny
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:03 Nov 2001
Posting History:

TIP #74: wm stackorder command
$Revision: 1.6 $

Tk provides no means to query the stacking order of toplevel windows. This functionality would be useful to applications that wished to save and restore the state and relative order of each toplevel. This functionality would also make it possible to write test cases for window manager related commands like focus, raise, and lower. This document suggests a new wm stackorder command to address this deficiency.

Author:Mo DeJong
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:12 Nov 2001
Posting History:

TIP #75: Refer to Sub-RegExps Inside 'switch -regexp' Bodies
$Revision: 1.14 $

Currently, it is necessary to match a regular expression against a string twice in order to get the sub-expressions out of the matched string. This TIP alters that so that those sub-exps can be substituted directly into the body of the script to be executed.

Author:Donal K. Fellows
János Holányi
Salvatore Sanfilippo
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:28 Nov 2001
Posting History:
Discussions To:http://purl.org/mini/cgi-bin/chat.cgi
Keywords:switch, regexp, parentheses

TIP #76: Make 'regsub' Return a String
$Revision: 1.3 $

This TIP proposes altering the [regsub] command so that it can return the substituted string as the result of the command.

Author:Bruce Hartweg
Donal K. Fellows
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:29 Nov 2001
Posting History:

TIP #77: Support for Nested Paired Item Lists
$Revision: 1.3 $

Tcl arrays can be transformed to and from lists using the array get and array set commands. This TIP proposes a new command for working directly these paired lists, and extending them to allow nesting in a manner analogous to TIP #22.

Author:Christian Williams
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:07 Dec 2001
Posting History:
Obsoleted By:TIP #111

TIP #78: TEA 2.0 Definitions
$Revision: 1.4 $

This document is an informational TIP providing definitions for commonly used terms (like package, extension, core, distribution, etc.) to make future communication among people in the community easier. It is recommended that future and past documents specifying details inside of the greater context of TEA refer to this document to ensure a consistent usage of terms.

Author:Andreas Kupries
Larry W. Virden
Type:Informative
State:Draft
Vote:Pending
Created:15 Dec 2001
Posting History:

TIP #79: Add Deletion Callback to Tcl_CreateObjTrace
$Revision: 1.7 $

This document is a correction to the Tcl_CreateObjTrace API from TIP #32. It addresses a deficiency that the API provides no deletion callback for its client data.

Author:Kevin Kenny
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:03 Jan 2002
Posting History:
Discussions To:comp.lang.tcl
Keywords:trace, Tcl_Obj

TIP #80: Additional Options for 'lsearch'
$Revision: 1.10 $

This TIP proposes additional options for the lsearch command to return and work with all matching items in the return rather than the first matching item. Additional options are also added.

Author:Tom Wilkason
Tom Wilkason
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:02 Jan 2002
Posting History:
Discussions To:comp.lang.tcl

TIP #81: [incr Tcl] Functional Areas for Maintainer Assignments
$Revision: 1.7 $

This document proposes a division of [incr Tcl]'s source code into functional areas so that each area may be assigned to one or more maintainers.

Author:Donal K. Fellows
Type:Process
State:Withdrawn
Vote:Pending
Created:07 Jan 2002
Posting History:

TIP #82: Add -offrelief Option to Checkbutton and Radiobutton
$Revision: 1.4 $

This TIP proposes adding option -offrelief to the checkbutton and radiobutton widgets to specify the relief of the widget when -indicatoron is off and the state of the button is off. This feature is needed to support the use of checkbutton and radiobutton widgets on toolbars.

Author:D. Richard Hipp
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:10 Jan 2002
Posting History:

TIP #83: Augment Tcl_EvalFile with Tcl_EvalChannel and Tcl_EvalUrl
$Revision: 1.6 $

This TIP adds the ability to load Tcl files directly from URLs to the core, together with a basic mechanism to simply evaluate a stream of characters from a channel.

Author:Marian Szczepkowski
dgp at users dot sf dot net
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:24 Jan 2002
Posting History:

TIP #84: Add control for mouse movement filtering
$Revision: 1.5 $

When the mouse is moved, the Tcl/Tk system eats most of the mouse movement events and only the last movement event when Tcl/Tk is not busy is stored in the event queue. I would like to obtain all the movement events from the X-server or the Windows UI.

Author:Jyrki Alakuijala
Jeff Hobbs
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:26 Feb 2002
Posting History:

TIP #85: Custom Comparisons in Tcltest
$Revision: 1.14 $

This TIP proposes a simple mechanism to make the tcltest package an even more flexible package than it already is by allowing the programmer to define his or her own comparison procedures. Such procedures can deal with issues like allowing a (small) tolerance in floating-point results.

Author:Arjen Markus
Don Porter
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:31 Jan 2002
Posting History:
Keywords:test, string comparison,
floating-point

TIP #86: Improved Debugger Support
$Revision: 1.26 $

This TIP proposes the storage by Tcl of source code file-name and line-numbering information, making it available at script execution time. It also adds additional trace and info subcommands to make it easier for a debugger to control a Tcl script much as gdb can control a C program.

Author:Peter MacDonald
Peter MacDonald
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:08 Feb 2002
Posting History:

TIP #87: Allow Tcl Access to the Recursion Limit
$Revision: 1.11 $

An extension to the [interp] command, [interp recursionlimit], will permit Tcl scripts to control their own recursion limits. Until now, this limit has been changeable from a C API, but not from within Tcl.

Author:Stephen Trier
Richard Suchenwirth
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:19 Feb 2002
Posting History:
Discussions To:comp.lang.tcl
Keywords:Tcl_SetRecusionLimit,
recursion limit

TIP #88: Extend Tcl Process Id Control via 'pid'
$Revision: 1.9 $

This TIP proposes extended the [pid] command to provide more control over native processes in Tcl.

Author:Jeff Hobbs
Vince Darley
Type:Project
Tcl Version:8.4
State:Rejected
Vote:Done
Created:11 Mar 2002
Posting History:
Obsoleted By:TIP #240

TIP #89: Try/Catch Exception Handling in the Core
$Revision: 1.10 $

This TIP proposes the addition of a try...catch...finally command to provide a more robust and powerful exception handling mechanism.

Author:Tom Wilkason
Frank Pilhofer
Type:Project
Tcl Version:8.6
State:Withdrawn
Vote:Pending
Created:11 Mar 2002
Posting History:
Discussions To:comp.lang.tcl
Obsoleted By:TIP #329

TIP #90: Enable [return -code] in Control Structure Procs
$Revision: 1.39 $

This TIP analyzes existing limitations on the coding of control structure commands as procs, and presents expanded forms of catch and return to remove those limitations.

Author:Don Porter
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:15 Mar 2002
Posting History:

TIP #91: Backward Compatibility for Channel Types with 32-bit SeekProcs
$Revision: 1.5 $

TIP #72 broke backward-compatibility for channels that supported the [seek] command, and this TIP adds the ability for old-style channels to work with the underlying 64-bit architecture.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:03 May 2002
Posting History:

TIP #92: Move Package Load Decisions to Application Developer
$Revision: 1.3 $

This TIP makes the loading of packages far more flexible, so as to better support their use by application authors in situations above and beyond those foreseen by the developer of the package.

Author:Clif Flynt
Type:Project
Tcl Version:8.4
State:Withdrawn
Vote:Pending
Created:13 May 2002
Posting History:
Keywords:package require,
namespace, pkg_mkIndex

TIP #93: Get/Delete Enhancement for the Tk Text Widget
$Revision: 1.8 $

The Tk Text widget provides text tags, which are a very powerful thing. However, the current implementation does not provide an efficient way for a Tk Text widget programmer to extract (get) all of the actual text that has a given text tag. This TIP proposes to enhance the Tk Text widget to provide this functionality.

Author:Craig Votava
Donal K. Fellows
Jeff Hobbs
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:28 Dec 2001
Posting History:

TIP #94: Add Listbox -activestyle Option
$Revision: 1.5 $

This TIP proposes to add a [-activestyle] option to the [listbox] widget that would control what style the active element has when the widget has focus (currently hard-coded to be underlined).

Author:Jeff Hobbs
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:29 May 2002
Posting History:

TIP #95: Add [wm attributes] Command
$Revision: 1.5 $

This TIP proposes adding a [wm attributes] command in order to control platform-specific aspects of a toplevel. In addition, it proposes making [wm] a Tcl_Obj-based command and centralizing the common functionality.

Author:Jeff Hobbs
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:29 May 2002
Posting History:

TIP #96: Add [tk caret] Command and Tk_SetCaretPos API
$Revision: 1.4 $

This TIP proposes to add a [tk caret] command and [Tk_SetCaretPos] C API to manage carets in Tk. caret is the term for where text of graphics will be inserted. It is necessary for correct accessibility functionality (to know where to shift focus), and for location the IME or XIM input box to handle complex character input (e.g. Asian character sets).

Author:Jeff Hobbs
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:29 May 2002
Posting History:

TIP #97: Moving Vertices of Canvas Items
$Revision: 1.10 $

This TIP proposes a canvas subcommand (or possibly two) that allows for replacing characters in text objects and to move individual vertices of line and polygon items.

Author:Agnar Renolen
Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:07 Jun 2002
Posting History:
Keywords:Tk

TIP #98: Adding Transparency Compositing Rules to Photo Images
$Revision: 1.5 $

This TIP adds compositing rules to Tk's photo images to give programmers better control over what happens when two transparent images are combined. This TIP also allows for several frames of an animated GIF file to be correctly displayed in an image even when the transparent area is not constant.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:09 Jun 2001
Posting History:

TIP #99: Add 'file link' to Tcl
$Revision: 1.23 $

Tcl can read links, but cannot create them. This TIP proposes adding a file link subcommand to allow cross-platform creation of links.

Author:Vince Darley
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:11 Jun 2002
Posting History:

TIP #100: Add Support for Unloading Dynamic Libraries Loaded with [load]
$Revision: 1.10 $

Tcl already provides facilities for loading dynamic libraries, through the load command. However no facilities are currently offered in order to unload dynamic libraries already loaded with the load command. This TIP tries to add support for unloading libraries, by introducing a new Tcl command (unload) and the guidelines that dynamic libraries must follow, in order to be unloadable. Note that the unload command will operate only on libraries that are designed to be unloadable by their developers. This way backward compatibility with older extensions is maintained, as unload will never try to unload libraries unaware of this new functionality.

Author:George Petasis
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:11 Jun 2002
Posting History:
Discussions To:comp.lang.tcl
Keywords:load, unload, dynamic library

TIP #101: Export Tcltest Configuration
$Revision: 1.4 $

Proposes public command tcltest::configure to give programmatic control to processing configuration options of the tcltest package.

Author:Don Porter
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:11 Jun 2002
Posting History:

TIP #102: Change [trace list] to [trace info]
$Revision: 1.4 $

This TIP proposes to change the name of the introspection subcommand of the trace command from list to info.

Author:Reinhard Max
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:12 Jun 2002
Posting History:
Keywords:trace, info, introspection

TIP #103: Argument Expansion Command
$Revision: 1.13 $

This TIP proposes to add a command that can perform argument expansion in a safe and efficient manner.

Author:Peter Spjuth
Donal K. Fellows
Andreas Leitgeb
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:15 Jun 2002
Posting History:

TIP #104: Generalization of the Tk Undo Subsystem
$Revision: 1.6 $

This TIP proposes a reimplementation of the Tk Text widget undo feature. The text widget interface is not affected. No functional changes are made at the Tcl level. The purpose of the reimplementation is to move the undo feature from a text only implementation to a general implementation also usable by other widgets. This opens the door to undoing also tag, mark and other operations, and allows for an exposure of the undo stack at the Tcl level. These new features are however not part of this TIP.

Author:Ludwig Callewaert
Larry W. Virden.
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:19 Jun 2002
Posting History:
Discussions To:comp.lang.tcl

TIP #105: Add Prefix Matching for Switch
$Revision: 1.4 $

This TIP adds a new option to the [switch] command to support matching of strings to unique prefixes of patterns, similar to Tcl's existing subcommand-name matching or Tk's option-name matching.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:03 Jul 2002
Posting History:
Obsoleted By:TIP #195

TIP #106: Add Encoding Abilities to the [dde] Command
$Revision: 1.14 $

When using Windows DDE communication with non-Tcl programs, the encoding of the exchanged strings is mostly needed to be the system encoding. Selection of this behaviour should be possible with in the dde command should be done by a parameter.

Author:Harald Oehlmann
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:13 Aug 2002
Posting History:

TIP #107: Fix the 2-second "raise delay" in Tk
$Revision: 1.4 $

This TIP explains the genesis of the long delays often associated with the [raise] and [lower] commands under Unix/X with some window managers, as well as describing the solution.

Author:Joe English
Type:Project
Tcl Version:8.4
State:Final
Vote:Done
Created:28 Aug 2002
Posting History:

TIP #108: Summary of Changes to Generic Tcl/Tk Code to Enable Mac OS X Port
$Revision: 1.2 $

The submission of the changes to generic Tcl/Tk necessary for the Mac OS X port was discussed on the Tcl Core mailing list. In light of the very minor changes to shared code involved, and to facilitate including the port in the 8.4 release, it was decided that we would not hold a formal vote. This informational TIP is offered to summarize the work done, however, and to maintain a more complete record.

Author:Jim Ingham
Type:Informative
State:Final
Vote:No voting
Created:29 Aug 2002
Posting History:

TIP #109: New Look for Checkbutton and Radiobutton on Unix
$Revision: 1.4 $

This TIP proposes changing the look of the Tk checkbutton and radiobutton widgets on Unix to more closely match the Windows counterparts.

Author:Brian Griffin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:01 Oct 2002
Posting History:

TIP #110: Add a Tristate Mode to the Checkbutton and Radiobutton
$Revision: 1.12 $

This TIP proposes adding a third value (tristate) to the checkbutton and radiobutton widgets and corresponding display.

Author:Brian Griffin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:01 Oct 2002
Posting History:

TIP #111: Dictionary Values and Manipulators
$Revision: 1.12 $

This TIP proposes adding a standard value format (and supporting commands) to Tcl that implements a value-to-value mapping, just as Tcl's list values can be regarded as implementing a number-to-value mapping.

Author:Donal K. Fellows
David S. Cargo
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:05 Oct 2002
Posting History:

TIP #112: Ensembles are Namespaces are Commands
$Revision: 2.28 $

This TIP proposes unifying the concept of ensembles (from [Incr Tcl]) with namespaces and commands. It also adds control of command rewriting to allow for more efficient support for object systems like Snit.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:10 Oct 2002
Posting History:

TIP #113: Multi-Line Searches in the Text Widget
$Revision: 1.13 $

This TIP proposes enhancing the implementation of the $textwidget search subcommand to allow matching of both exact strings and regexp patterns which span multiple lines, and to allow reporting on all matches.

Author:Vince Darley
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:11 Oct 2002
Posting History:

TIP #114: Eliminate Octal Parsing of Leading Zero Integer Strings
$Revision: 2.3 $

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.

Author:Don Porter
Type:Project
Tcl Version:9.0
State:Draft
Vote:Done
Created:16 Oct 2007
Posting History:
Keywords:octal

TIP #115: Making Tcl Truly 64-Bit Ready
$Revision: 1.3 $

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

Author:Donal K. Fellows
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:23 Oct 2002
Posting History:

TIP #116: More Safety for Large Images
$Revision: 1.6 $

This TIP alters the C API for Tk's images so that failures to allocate sufficient memory for a large image can be handled more gracefully than a straight panic().

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:28 Oct 2002
Posting History:

TIP #117: Object Type Introspection
$Revision: 1.9 $

This TIP proposes to add a command to give information on the current internal representation of an object.

Author:Peter Spjuth
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:01 Nov 2002
Posting History:
Obsoleted By:TIP #214

TIP #118: Enhance [file attributes] and [file copy] on Mac OS X & BSD
$Revision: 1.7 $

This TIP proposes a set of changes to [file attributes] and [file copy] to make them function better on MacOS X and other BSD-Unix systems.

Author:Daniel A. Steffen
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:01 Nov 2002
Posting History:

TIP #119: Angled Text on a Canvas
$Revision: 1.8 $

The current text object on a canvas does not support the creation of text strings at an arbitrary angle. For some applications this is limitation is sufficiently serious to disqualify Tk from use. This TIP removes this restriction.

Author:Simon Geard
Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:18 Nov 2002
Posting History:

TIP #120: Restricted DDE Services
$Revision: 1.5 $

This TIP will enhance the DDE package for use with safe interpreters and allow programmer control of the commands exposed by the DDE service.

Author:Pat Thoyts
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:04 Dec 2002
Posting History:

TIP #121: Controlled Application Shutdown via Tcl_Exit
$Revision: 1.8 $

This TIP will allow all applications to perform a controlled shutdown (or do nothing) in the event that Tcl_Exit() is called.

Author:Joe Mistachkin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:05 Dec 2002
Posting History:

TIP #122: Use tcl_{non,}wordchars Throughout Tcl/Tk
$Revision: 1.9 $

This TIP shall bring flexible management of word and non-word chars to Tcl, to be used throughout the Tcl realm in e.g. [regexp]'s \w \W, Tk's [textwidget], [string] wordstart/wordend etc.

Author:Martin Weber
Vince Darley
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:12 Dec 2002
Posting History:

TIP #123: Adding an Exponentiation Operator to the [expr] Command
$Revision: 1.6 $

This TIP proposes to add a new operator to the operators recognised by the [expr] command: the exponentiation operator. This operator will enhance the functionality of the current pow() function by returning a result that depends on the type of its operands. It will also make complicated formulae more readable.

Author:Arjen Markus
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:16 Dec 2002
Posting History:
Keywords:mathematics, evaluation

TIP #124: High-Resolution Absolute Time Values From [clock]
$Revision: 1.13 $

This TIP proposes altering the clock clicks command to add a -microseconds option, and to tie it to an absolute reference.

Author:Mark Harrison
Kevin Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:20 Dec 2002
Posting History:

TIP #125: Converting between Frame and Toplevel Windows
$Revision: 1.10 $

This TIP modifies the wm command to act as a geometry manager for Frames, allowing them to become Toplevel windows.

Author:Brian Griffin
Donal K. Fellows
Sacha Schär
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:20 Jan 2003
Posting History:
Keywords:reparent, Tk

TIP #126: Rich Strings for Representation Persistence
$Revision: 1.1 $

This TIP enriches the standard UTF-8 string representation of every Tcl_Obj to allow for improved persistence of non-string representations. This, combined with rules for substring and substitution handling, allows the lifetime of an object to correspond far more closely with the more-broadly understood concept of "object lifetime".

Author:Donal K. Fellows
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:30 Jan 2003
Posting History:

TIP #127: Add an -index Option to [lsearch]
$Revision: 1.13 $

Matching the lsort functionality a -index option should be added to the lsearch command to make searching lists in list easier. The lsort -index and the lsearch -index options should accept list style indices like lindex and lset do. This TIP proposes such added options.

Author:Michael Schlenker
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Feb 2003
Posting History:

TIP #128: Ability to Install a Custom Memory Allocator
$Revision: 1.5 $

This TIP alters Tcl to allow embedded uses of the Tcl library (and any extensions) to either use the Tcl memory allocators as their main allocator (especially in C++) or to set the memory allocator that Tcl uses for itself through ckalloc().

Author:Christophe Cap
Mike Jackson
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:13 Mar 2003
Posting History:

TIP #129: New Format Codes for the [binary] Command
$Revision: 1.5 $

This TIP proposes to add a set of new format codes to the binary command to enhance its ability to deal with especially non-native floating-point data. The assumption is that current limitations are due to the distinction between little-endian and big-endian storage of such data.

Author:Arjen Markus
Torsten Reincke
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:14 Mar 2003
Posting History:
Keywords:IEEE, binary data,
Tcl

TIP #130: Unique DDE server names.
$Revision: 1.4 $

The dde package server registration code should ensure that the server names are unique. The proposed changes will mean end-user visible changes for some scripts.

Author:Pat Thoyts
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:23 Mar 2003
Posting History:

TIP #131: Read My Mind and Do What I Mean
$Revision: 1.2 $

A new Tcl command is proposed, rmmadwim. This is an acronym for ``Read My Mind and Do What I Mean''. This command has obvious utility.

Author:Joe English
Type:Project
Tcl Version:8.5
State:Draft
Vote:No voting
Created:01 Apr 2003
Posting History:

TIP #132: Revised Floating-Point Conversions in Tcl
$Revision: 1.14 $

This TIP proposes several changes to the conversion between floating point numbers and character strings. The changes are made to restore the "everything is a string" contract that Tcl implicitly makes; without them, there are observable differences in the behavior of floating point numbers, depending on the state of the internal representation.

Author:Kevin Kenny
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:31 Mar 2003
Posting History:
Keywords:floating point,
IEEE, precision

TIP #133: Extending [expr] Operators
$Revision: 1.6 $

This TIP proposes a way to define new operators for conditions and the expr command. It also includes demonstrations of how it might work in the examples: in tests inclusion in a list, and and, or, and not are aliases for "&&", "||", "!".

Author:Richard Suchenwirth
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:08 Apr 2003
Posting History:

TIP #134: Subsystem Per-Thread Data Interfaces
$Revision: 1.4 $

Tcl core subsystems per-thread data is good, because it modularises the core. None of the structures or access keys are exported, which is bad, because it makes modification to these subsystems difficult in a CVS world.

Author:Colin McCormack
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:12 May 2003
Posting History:

TIP #135: Change 'dde servername -exact' Option to -force
$Revision: 1.5 $

TIP #130 provides for unique DDE server name registration. This TIP renames one of the options it defines to better reflect its behaviour.

Author:Pat Thoyts
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:17 May 2003
Posting History:
Keywords:dde

TIP #136: Large List Initialisation
$Revision: 1.5 $

This TIP proposes the addition of a list initialisation command so that large lists can be easily and efficiently initialised.

Author:Simon Geard
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:25 May 2003
Posting History:

TIP #137: Specifying Script Encodings for [source] and tclsh
$Revision: 1.6 $

This TIP proposes a way to specify encoding used to read a script with source command and (tclsh, wish) shell.

Author:Anton Kovalenko
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:29 May 2003
Posting History:

TIP #138: New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables
$Revision: 1.5 $

This TIP proposes a new flag in the Tcl hash table API in support of a proposed rework of thread-specific data management.

Author:Kevin Kenny
Joe Mistachkin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:29 May 2003
Posting History:
Keywords:thread specific data,
hash table, memory allocation

TIP #139: Publish Part of Tcl's Namespace API
$Revision: 1.5 $

This TIP makes the simpler parts of Tcl's Namespace API available to the general C-coding public.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:03 Jun 2003
Posting History:

TIP #140: Tracing Namespace Modifications
$Revision: 1.2 $

This TIP allows scripts to register callbacks to monitor alterations to namespaces, such as their deletion, the creation, renaming and deletion of commands within the namespace and modifications to the exports list of the namespace.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Deferred
Vote:Pending
Created:04 Jun 2003
Posting History:

TIP #141: Multiple Initial-Files in [tk_getOpenFile]
$Revision: 1.8 $

This TIP proposes modifying the semantics of the -initialfile option when the tk_get*File commands are asked to select multiple files so as to allow several files to be selected initially.

Author:David N. Welton
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:18 Jul 2003
Posting History:

TIP #142: Search Path Variable to Lookup Command Names in Namespaces
$Revision: 1.3 $

This TIP adds a Tcl variable to define the search path for command name lookup across namespaces.

Author:Ulrich Schoebel
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:23 Jul 2003
Posting History:
Keywords:namespace, command lookup,
search path

TIP #143: An Interpreter Resource Limiting Framework
$Revision: 1.13 $

This TIP introduces a mechanism for creating and manipulating per-interpreter resource limits. This stops several significant classes of denial-of-service attack, and can also be used to do things like guaranteeing an answer within a particular amount of time.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:25 Jul 2003
Posting History:

TIP #144: Argument Expansion Syntax
$Revision: 1.8 $

This TIP proposes to add syntax in Tcl to perform argument expansion in a safe and efficient manner.

Author:Peter Spjuth
Donal K. Fellows
dgp at users dot sf dot net
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:26 Jul 2003
Posting History:
Obsoleted By:TIP #157

TIP #145: Enhanced Tk Font Handling
$Revision: 1.10 $

TIP #64 suggests some improvements to font handling under windows. However, not all of this TIP appears to have been implemented and I believe this can be done better using the Tk named fonts mechanism.

Author:Pat Thoyts
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:31 Jul 2003
Posting History:
Obsoletes:TIP #64

TIP #146: Add Overall Anchoring to the Grid Geometry Manager
$Revision: 1.16 $

This TIP proposes to add an anchor option to grid managers to control the behaviour of a grid where all weights are zero.

Author:Peter Spjuth
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:05 Aug 2003
Posting History:

TIP #147: Make Grid's Column/Row Configure Easier
$Revision: 1.5 $

This TIP proposes to add an alternative way to state which columns/rows in a grid are affected by an column/rowconfigure command.

Author:Peter Spjuth
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:05 Aug 2003
Posting History:

TIP #148: Correct [list]-Quoting of the '#' Character
$Revision: 1.5 $

This TIP proposes the correction of a long-standing bug in the [list]-quoting of the # character.

Author:Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:08 Aug 2003
Posting History:

TIP #149: Allow "enabled" as Synonym for "normal" in -state Option
$Revision: 1.2 $

This TIP allows Tk widgets which have a configurable -state option to accept enabled as a synonym for normal.

Author:Michael A. Cleverly
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:13 Aug 2003
Posting History:

TIP #150: Implement the Tk send Command for Windows
$Revision: 1.6 $

This TIP proposes to provide an implementation of the send mechanism for Tk under Windows.

Author:Pat Thoyts
Type:Project
Tcl Version:8.5
State:Deferred
Vote:Done
Created:25 Jul 2003
Posting History:
Keywords:tk, send

TIP #151: Remove -e: Command Line Option from tclsh and wish
$Revision: 1.7 $

This TIP proposes removal of the -e: command line option to tclsh and wish that was Accepted as part of TIP #137.

Author:Don Porter
Don Porter
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:22 Aug 2003
Posting History:

TIP #152: New -detail Option for tk_messageBox
$Revision: 1.7 $

This TIP proposes a new option for the tk_messageBox for text that is less significant than the -message text.

Author:Mats Bengtsson
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Aug 2003
Posting History:
Obsoletes:TIP #25
Keywords:Tk

TIP #153: Enhancing the [winfo toplevel] Command
$Revision: 1.8 $

The [winfo toplevel] command returns the Tk toplevel window that encloses the window that's passed as an argument. However, Tk extensions may allow the creation of windows which reside at the top of a window hierarchy, but are not Tk toplevel widgets. If a subwindow of one of these top-of-hierarchy widgets is passed to [winfo toplevel], it returns an empty string, making it impossible to determine what hierarchy the window resides in. This TIP proposes enhancing the [winfo toplevel] command so that it will return the top window in the hierarchy regardless of what type of widget it is.

Author:Neil McKay
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Aug 2003
Posting History:

TIP #154: Add Named Colors to Tk
$Revision: 1.26 $

This TIP proposes the addition of a color command at the Tk level to allow developers to create named colors as they can already do with both fonts and images.

Author:Damon Courtney
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:03 Sep 2003
Posting History:

TIP #155: Fix Some of the Text Widget's Limitations
$Revision: 1.23 $

Tk's text widget is very powerful, but has a number of known limitations. In particular the entire handling of wrapped lines and 'display/visual entities' versus 'logical entities' is quite limited. The most obvious side-effect of these inadequacies is the 'scrollbar problem' (in which, particularly when there are long wrapped lines in the widget, the vertical scrollbar slider changes in size depending on the number of logical lines currently displayed, see http://mini.net/tcl/896 for example). This TIP overhauls the widget to provide consistent, complete support for 'display lines', 'display indices' and as a consequence smooth, pixel-based scrolling. A few other small bugs/issues have also been resolved.

Author:Vince Darley
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:08 Sep 2003
Posting History:

TIP #156: Language-Neutral Root Locale for Msgcat
$Revision: 1.4 $

This TIP proposes to extend Tcl's message catalog mechanism by adding a "root locale" (whose name is the empty string) that is searched after searches in all the language-dependent locales have failed.

Author:Kevin Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:20 Sep 2003
Posting History:
Discussions To:comp.lang.tcl

TIP #157: Argument Expansion with Leading {expand}
$Revision: 1.7 $

This TIP proposes to add syntax in Tcl to perform argument expansion in a safe and efficient manner.

Author:Kevin B. Kenny
Peter Spjuth
Donal K. Fellows
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:20 Sep 2003
Posting History:
Obsoletes:TIP #144

TIP #158: Distinguish the two 'Enter' keys on Windows
$Revision: 1.9 $

This TIP proposes that the "extended keys" on a Windows keyboard be labeled with <Mod4> so that they can be distinguished from their counterparts on the main keyboard.

Author:Wolfgang Großbauer
Kevin Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:20 Sep 2003
Posting History:
Discussions To:comp.lang.tcl

TIP #159: Extending Tk 'wm' Command to Support Coloured Icons
$Revision: 1.7 $

Currently, Tk lacks a mechanism for allowing scripts to place colour icons in the window manager decorations of a toplevel window. Tk supports only the placement of monochrome bitmaps through the wm iconbitmap and wm iconmask commands. This TIP proposes an extension of the wm command with the iconphoto subcommand, which will pass a set of photo images as possible window manager icons.

Author:Georgios Petasis
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:01 Oct 2003
Posting History:

TIP #160: Improvements to Terminal and Serial Channel Handling
$Revision: 1.3 $

Terminals and other kinds of serial lines have other capabilities and requirements that are not currently controllable using Tcl. This TIP adds new options to [fconfigure] to allow these advanced capabilities to be supported within Tcl in a straight-forward way.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:17 Oct 2003
Posting History:

TIP #161: Change Default for Menu's -tearoff Option to False
$Revision: 1.2 $

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

Author:Mark Roseman
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:19 Oct 2003
Posting History:

TIP #162: IPv6 Sockets for Tcl
$Revision: 1.16 $

This TIP is about allowing Tcl to use IPv6 sockets in virtually the same way that you would use the current (IPv4) sockets.

Author:Rafael Martínez Torres
Donal K. Fellows
Reinhard Max
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:23 Oct 2003
Posting History:

TIP #163: A [dict merge] Subcommand
$Revision: 1.4 $

This TIP proposes a new [dict] subcommand which is used to combine multiple dictionaries.

Author:Joe English
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:14 Nov 2003
Posting History:

TIP #164: Add Rotate Subcommand to the Canvas Widget
$Revision: 1.5 $

This TIP proposes to add a rotate subcommand to the canvas widget to facilitate rotating items in very much the same way as is now possible with scaling and moving.

Author:Arjen Markus
Dimitrios Zachariadis
Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:17 Nov 2003
Posting History:
Keywords:Tk, canvas

TIP #165: A User-Data Field for Virtual Events
$Revision: 1.6 $

This TIP proposes adding to virtual events a new field that is not interpreted by Tk. This will make it far easier for user-code to pass information between creators and consumers of events instead of forcing the use of fragile global variables for this purpose.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:17 Nov 2003
Posting History:
Keywords:Tk, substitution

TIP #166: Reading and Writing the Photo Image Alpha Channel
$Revision: 1.12 $

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 model since Tk 8.3.

Author:Donal K. Fellows
Simon Bachmann
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:19 Nov 2003
Posting History:
Keywords:Tk, image get, image put

TIP #167: Add a New Option for Context Help for Windows
$Revision: 1.9 $

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.

Author:Ramon Ribó
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:19 Nov 2003
Posting History:

TIP #168: Cubic Bezier Curves on the Canvas
$Revision: 1.10 $

This document proposes a new -smooth method for line and polygon canvas items that supports cubic Bezier curves and clarifies some of the existing terminology in that area.

Author:Lars Hellström
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:25 Jan 2004
Posting History:

TIP #169: Add Peer Text Widgets
$Revision: 1.15 $

This TIP proposes adding a method to the text widget that will create peer text widgets, allowing two or more text widgets to share the same text, tags, and marks.

Author:Brian Griffin
Vince Darley
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:28 Jan 2004
Posting History:

TIP #170: Better Support for Nested Lists
$Revision: 1.6 $

Nested lists are easy to create with Tcl but then manipulating them is not easy. For example, think about how to change a value nested in a list 2 levels deep? How about 4 levels deep? The proposed new commands make such manipulation easy, and make the nested lists a great replacement for arrays and structures in C-like languages.

Author:Sergey Babkin
Don Porter
Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:30 Jan 2004
Posting History:

TIP #171: Change Default Bindings Behavior
$Revision: 1.11 $

This TIP proposes changing the default <MouseWheel> bindings in Tk to have "better" behaved defaults for a larger set of applications.

Author:Jeff Hobbs
Keith Vetter
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:05 Mar 2004
Posting History:

TIP #172: Improve UNIX Tk Look and Feel
$Revision: 1.4 $

In the spirit of "worse is better", this TIP proposes a simple way to notably improve Tk's look and feel for the 8.5 release of Tk. It does not fix all the problems, and won't make Tk look like whatever toolkit is "native" on the user's machine (Gtk or Qt), but will at least improve the current situation.

Author:David N. Welton
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:No voting
Created:08 Mar 2004
Posting History:
Obsoleted By:TIP #248

TIP #173: Internationalisation and Refactoring of the 'clock' Command
$Revision: 1.22 $

The [clock] command provides Tcl's fundamental facilities for computing with dates and times. It has served Tcl faithfully since 7.6, but the computing world has advanced significantly in the decade that it has been in service. This TIP proposes a (nearly entirely compatible) reimplementation of [clock] that will allow for fewer ambiguities on input, improved localisation, more portability, and less exposure of platform-dependent bugs. A significantly greater fraction of [clock] shall be implemented in Tcl than it is today, and the code shall be refactored to use the ensemble mechanism introducted for Tcl 8.5 (see TIP #112).

Author:Kevin Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:11 Mar 2004
Posting History:
Discussions To:comp.lang.tcl

TIP #174: Math Operators as Commands
$Revision: 1.21 $

This TIP describes a proposal for math operators in Tcl as separate commands, acting much like the equivalent in the Lisp language. This would make simple usage of mathematics much clearer.

Author:Kristoffer Lawson
Donal K. Fellows
David S. Cargo
Peter Spjuth
Kevin B. Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:15 Mar 2004
Posting History:

TIP #175: Add an -async Option to [open]
$Revision: 1.9 $

This TIP propose to add an -async option to the [open] command, with identical semantics to the -async option to the [socket] command.

Author:Neil Madden
Type:Project
Tcl Version:9.0
State:Withdrawn
Vote:Pending
Created:15 Mar 2004
Posting History:

TIP #176: Add String Index Values
$Revision: 1.8 $

This TIP proposes extended index formats to be recognized by TclGetIntForIndex, supporting simple index arithmetic for string and list indices.

Author:Damon Courtney
Don Porter
Damon Courtney
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:16 Mar 2004
Posting History:

TIP #177: Add -stretch Option to panedwindow Widget
$Revision: 1.5 $

This TIP proposes adding a paneconfigure option to panedwindows that will allow alternative fill behavior.

Author:Brian Griffin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:17 Mar 2004
Posting History:
Keywords:Tk

TIP #178: [info pid] and [info tid] Subcommands
$Revision: 1.9 $

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

Author:Joe Mistachkin
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:21 Mar 2004
Posting History:

TIP #179: Add -hide Option to panedwindow Widget
$Revision: 1.5 $

This TIP proposes adding a paneconfigure option to panedwindows that will control pane visibility.

Author:Brian Griffin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:22 Mar 2004
Posting History:
Keywords:Tk

TIP #180: Add a Megawidget Support Core Package
$Revision: 1.5 $

This TIP proposes the addition of a "megawidget" package to Tk as a core package which contains a set of functions useful for building megawidgets with standard script-level behaviour in Tk.

Author:Damon Courtney
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:22 Mar 2003
Posting History:
Keywords:Tk

TIP #181: Add a [namespace unknown] Command
$Revision: 1.33 $

This TIP proposing adding a new namespace subcommand, unknown, which would register a per-namespace procedure for dealing with unknown commands.

Author:Neil Madden
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:23 Mar 2004
Posting History:

TIP #182: Add [expr bool] Math Function
$Revision: 1.16 $

This TIP proposes a new expr math function bool().

Author:Joe Mistachkin
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:23 Mar 2004
Posting History:

TIP #183: Add a Binary Flag to [open]
$Revision: 1.10 $

To handle binary files, one currently has to open the file, and then in a second step fconfigure it with -translation binary. This TIP proposes to add a flag "b" to open's access-argument to set initial translation to binary (rather than auto).

Author:Andreas Leitgeb
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:24 Mar 2004
Posting History:
Keywords:Tcl

TIP #184: Avoid Creating Unusable Variables
$Revision: 1.4 $

Both upvar and global can create unreachable variables: scalar variables whose name looks like an array element, e.g., a(b). This behaviour is documented in the upvar manpage. This TIP proposes that both upvar and global raise errors instead of creating such variables.

Author:Miguel Sofer
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:27 Mar 2004
Posting History:
Keywords:Tcl, upvar, global

TIP #185: Null Handling
$Revision: 1.8 $

Tcl lacks the ability to handle nulls, data with missing or unknown values. In this TIP I suggest a means for representing and propagating nulls, and command modifications for manipulating them.

Author:John H. Harris
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:08 Apr 2004
Posting History:
Keywords:Tcl, absent value

TIP #186: Expose the Type and Modified-State of Widget Options
$Revision: 1.4 $

This TIP adds a 6th (and 7th element) to each option in the output of [path configure] for Tk widgets, indicating the type and modified status of each option respectively.

Author:Peter MacDonald
Peter MacDonald
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:16 Apr 2004
Posting History:
Keywords:Tk

TIP #187: Procedures as Values
$Revision: 1.14 $

This TIP describes a change in the semantics of Tcl to allow procedures to be first class values, being represented as strings, and in particular as three element lists.

Author:Salvatore Sanfilippo
Miguel Sofer
Paul Nash
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:20 Apr 2004
Posting History:
Keywords:Tcl, lambda, anonymous,
command, function

TIP #188: Add 'string is wideinteger' to the 'string is' Subcommand
$Revision: 1.7 $

The string command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. This TIP proposes adding wide integers.

Author:Kevin Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:23 Apr 2004
Posting History:
Discussions To:comp.lang.tcl
Keywords:Tcl

TIP #189: Tcl Modules
$Revision: 1.13 $

This document describes a new mechanism for the handling of packages by the Tcl Core which differs from the existing system in important details and makes different trade-offs with regard to flexibility of package declarations and to access to the filesystem. This mechanism is called "Tcl Modules".

Author:Andreas Kupries
Jean-Claude Wippler
Jeff Hobbs
Don Porter
Larry W. Virden
Daniel A. Steffen
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:24 Mar 2004
Posting History:

TIP #190: Implementation Choices for Tcl Modules
$Revision: 1.3 $

This document is an informational adjunct to TIP #189 "Tcl Modules", describing a number of choices for the implementation of Tcl Modules, pure-Tcl, binary, or mixed. It lists these choices and then discusses their relative merits and problems, especially their interaction with wrapping, i.e. when used in a wrapped application. The main point of the document is to dispel the illusion that the restriction to the "source" command for the loading Tcl Modules is an actual limitation. A secondary point is to make recommendations regarding preferred implementations, based the merits and weaknesses of the various possibilities.

Author:Andreas Kupries
Jean-Claude Wippler
Jeff Hobbs
Type:Informative
State:Draft
Vote:Pending
Created:24 Mar 2004
Posting History:

TIP #191: Managing Tcl Packages and Modules in a Multi-Version Environment
$Revision: 1.3 $

This document is an informational adjunct to TIP #189 "Tcl Modules", describing a number of choices for the management of Tcl Modules in environments with more than one version of the Tcl core installed. It lists these choices and then discusses their relative merits and problems.

Author:Andreas Kupries
Joe English
Larry Virden
Type:Informative
State:Draft
Vote:Pending
Created:24 Mar 2004
Posting History:

TIP #192: Lazy Lists
$Revision: 1.2 $

This TIP proposes to add a new command to generate lists of N elements, where the i-th element is computed as the result of an unary Tcl procedure with i as itsargument. Implementing special handling for this kind of lists inside the Tcl core will allow generation of lists in a lazy way. This TIP's goal is not to change the semantics of Tcl, but just to provide a different space complexity for an (often interesting) subset of Tcl lists.

Author:Salvatore Sanfilippo
Theo Verelst
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:27 Mar 2004
Posting History:
Keywords:Tcl

TIP #193: Simple Syntax Help System
$Revision: 1.3 $

This TIP proposes a simple scheme to allow commands to provide basic syntax help for themselves. This information would allow for more advanced processing by programs doing interactive input of Tcl commands (by providing a mechanism for them to discover what possible completions of the current command fragment are available) and could be processed automatically by the interp alias and namespace ensemble mechanisms so that help could be automatically extended to commands defined through those mechanisms.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:29 Apr 2004
Posting History:
Keywords:Tcl

TIP #194: Procedures as Values via '''apply'''
$Revision: 1.6 $

This TIP proposes a new command, tentatively named apply, to allow procedures to be first class values. It is an alternative to the approach of TIP #187, where attaining a similar goal requires a syntactic and semantic change.

Author:Miguel Sofer
Joe Mistachkin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:30 Apr 2004
Posting History:
Keywords:Tcl, lambda, anonymous,
command, function,
functional programming

TIP #195: A Unique Prefix Handling Command
$Revision: 1.18 $

This TIP adds a new command to support matching of strings to unique prefixes of patterns, similar to Tcl's existing subcommand-name matching or Tk's option-name matching.

Author:Peter Spjuth
Peter Spjuth
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:02 May 2004
Posting History:
Obsoletes:TIP #105
Keywords:Tcl

TIP #196: Tcl Commands as Values
$Revision: 1.2 $

This TIP proposes making command procedures first-class values in Tcl. It also changes the command binding scheme to recognize these values before performing old-style name lookup indirection.

Author:Robert Suetterlin
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:11 May 2004
Posting History:

TIP #197: Unfocussed Text Widget Cursor Control
$Revision: 1.10 $

This TIP proposes a simple extension to the Tk text widget to allow the insertion cursor to persist when the window containing the text widget does not have focus.

Author:R. Timothy Edwards
Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:12 May 2004
Posting History:
Keywords:Tk

TIP #198: Image Command XPM Extension
$Revision: 1.6 $

This TIP proposes an extension to the Tk image command to incorporate color pixmap images based on the XPM format. The format is analogous to the bitmap option (tkImgBmap.c in the Tk source).

Author:R. Timothy Edwards
Don Porter
Kevin Kenny
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:12 May 2004
Posting History:

TIP #199: Specification of Alternatives to .wishrc/.tclshrc
$Revision: 1.8 $

This TIP describes an extension of the command-line options to the "wish" and "tclsh" programs to allow the startup script to be redirected from the default ~/.wishrc (or ~/.tclshrc) to an alternative file.

Author:R. Timothy Edwards
Don Porter
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:12 May 2004
Posting History:
Keywords:Tcl, Tk, shell, interactive

TIP #200: Listing the Values in an Array
$Revision: 1.4 $

This TIP proposes adding another subcommand to the array command to list the values in an array.

Author:Donal K. Fellows
Dossy Shiobara
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:20 May 2004
Posting History:
Keywords:Tcl

TIP #201: Add 'in' Operator to [expr]
$Revision: 1.5 $

This TIP proposes new expr operators "in" and "ni" that simplifies the standard "does this item exist in list" lsearch case in expressions, with "ni" being "not in".

Author:Jeff Hobbs
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:21 May 2004
Posting History:
Keywords:Tk, list membership,
sets

TIP #202: Add 2>@1 Special Case to [open] and [exec]
$Revision: 1.4 $

This TIP proposes adding a new redirection case '2>@1' that redirects the error channel to the output channel in open and exec. This would only be valid at the end of a pipeline.

Author:Jeff Hobbs
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:19 May 2004
Posting History:
Keywords:Tcl, redirection

TIP #203: Create tclConfig.sh-Equivalent in Tcl
$Revision: 1.11 $

This proposal requires the registration of information about the built process, currently stored in tclConfig.sh, by means of the Tcl_RegisterConfig mechanism set out in [Tip 59].

Author:Colin McCormack
Don Porter
Colin McCormack
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:17 Jun 2004
Posting History:
Discussions To:http://mini.net/tcl/tclConfig.sh
Keywords:configuration,
installation

TIP #204: Virtual Events for Keyboard Traversal
$Revision: 1.5 $

Proposes using two new virtual events, <<TraverseIn>> and <<TraverseOut>>, to notify widgets of keyboard navigation events.

Author:Joe English
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:21 Jun 2004
Posting History:

TIP #205: Use pkgconfig Database to Register Xft Support
$Revision: 1.5 $

This TIP proposes to use Tcl's package configuration database (see TIP #59) to register whether Tk was compiled with support for Xft.

Author:Joe English
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:23 Jun 2004
Posting History:

TIP #206: Add an [ftruncate] Command
$Revision: 1.5 $

This TIP proposes a new command ftruncate for truncating open files.

Author:Joe Mistachkin
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:25 Jun 2004
Posting History:
Obsoleted By:TIP #208

TIP #207: Add a -namespace Option to [interp invokehidden]
$Revision: 1.8 $

This TIP proposes a -namespace option for the interp invokehidden subcommand to allow hidden commands to be invoked in the specified namespace context in the slave interpreter.

Author:Joe Mistachkin
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:29 Jun 2004
Posting History:

TIP #208: Add a 'chan' Command
$Revision: 1.8 $

This TIP proposes adding a chan command that would serve as a top-level command container for all the related channel commands that have proliferated over time, as well as future new channel-based commands.

Author:Jeff Hobbs
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:02 Jul 2004
Posting History:
Obsoletes:TIP #206
Keywords:Tcl

TIP #209: Add [clock milliseconds], and [clock microseconds]
$Revision: 1.5 $

This TIP proposes to replace clock clicks -milliseconds by clock milliseconds and clock clicks -microseconds by clock microseconds.

Author:Reinhard Max
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:12 Jul 2004
Posting History:
Keywords:clock, milliseconds,
microseconds

TIP #210: Add 'tempfile' Subcommand to 'file'
$Revision: 1.11 $

Programmers often need to create temporary files. This TIP proposes adding the new subcommand tempfile to the file command, simplifying programmer effort in creating a unique temporary file name.

Author:Bob Techentin
Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:19 Jul 2004
Posting History:
Keywords:Tcl, filename

TIP #211: Add Full Stack Trace Capability
$Revision: 1.6 $

This TIP proposes adding a new subcommand to the info command to get a list of all the frames on the current stack, rather than the limited list returned by info level.

Author:Robert Seeger
Robert Seeger
Don Porter
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:10 Aug 2004
Posting History:
Obsoleted By:TIP #280
Keywords:Tcl

TIP #212: Temporarily Opening out a Dictionary
$Revision: 1.9 $

This TIP proposes a new subcommand of dict that associates variables with dictionary entries while a Tcl script (the "body" of the command) runs.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:11 Aug 2004
Posting History:
Keywords:tcl, dict, update,
script

TIP #213: A Standard Dialog for Font Selection
$Revision: 1.7 $

This TIP proposes a new command that pops up a dialog box that allows the selection of a font. Where possible, this dialog will be implemented using the host platform's standard dialogs.

Author:Donal K. Fellows
Pat Thoyts
Type:Project
Tcl Version:8.6
State:Withdrawn
Vote:Pending
Created:21 Aug 2004
Posting History:
Obsoleted By:TIP #324
Keywords:Tk

TIP #214: Add New Object Introspection Command
$Revision: 1.7 $

This TIP proposes the new representation subcommand to info which returns the internal representation of a variable's contents.

Author:Ulrich Schöbel
Larry W. Virden
Type:Project
Tcl Version:8.7
State:Withdrawn
Vote:Pending
Created:24 Aug 2004
Posting History:
Obsoletes:TIP #117
Keywords:Tcl, info, representation

TIP #215: Make [incr] Auto-Initialize Undefined Variables
$Revision: 1.11 $

Unlike append and lappend, incr currently does not auto-create yet-undefined variables. This TIP proposes to make incr's behaviour in this regard more like the aforementioned commands.

Author:Andreas Leitgeb
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:25 Aug 2004
Posting History:
Keywords:Tcl

TIP #216: Handling Command-Line Options in Tclsh and Wish
$Revision: 1.5 $

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.

Author:Arjen Markus
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:23 Aug 2004
Posting History:
Keywords:Tcl, debugging, argument,
shell

TIP #217: Getting Sorted Indices out of Lsort
$Revision: 1.20 $

An -indices option is proposed for the lsort command, returning the indices of the given list's elements in the order that they would have otherwise been sorted.

Author:James P. Salsman
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Aug 2004
Posting History:
Keywords:Tcl, lsort, parallel lists

TIP #218: Tcl Channel Driver Thread State Actions
$Revision: 1.10 $

This document specifies a modification of the public definition of channel drivers for the Tcl I/O system to fix a bug in the transfer of channels between threads affecting all drivers requiring thread-specific initialization. The targets for the change are Tcl 8.4.x (note that this is an API change to a release) and Tcl 8.5.

Author:Andreas Kupries
Andreas Kupries
Larry W. Virden
David Gravereaux
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:09 Sep 2004
Posting History:

TIP #219: Tcl Channel Reflection API
$Revision: 1.27 $

This document describes an API which reflects the Channel Driver API of the core I/O system up into the Tcl level, for the implementation of channel types in Tcl. It is built on top of TIP #208 ('Add a chan command') and also an independent companion to TIP #230 ('Tcl Channel Transformation Reflection API') and TIP #228 ('Tcl Filesystem Reflection API'). As the later TIPs bring the ability of writing channel transformations and filesystems in Tcl itself into the core so this TIP provides the facilities for the implementation of new channel types in Tcl. This document specifies version 1 of the channel reflection API.

Author:Andreas Kupries
Andreas Kupries
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:09 Sep 2004
Posting History:

TIP #220: Escalate Privileges in VFS Close Callback
$Revision: 1.18 $

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, and safe.

Author:Colin McCormack
Andreas Kupries
Vince Darley
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:12 Sep 2004
Posting History:

TIP #221: Allow Background Error Handlers to Accept Return Options
$Revision: 2.10 $

This TIP proposes a new system for registering a background error handler of an interp so that the full set of return options (TIP #90) can be passed to it.

Author:Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:15 Sep 2004
Posting History:
Keywords:bgerror, return,
options

TIP #222: Add [wm attributes -alpha] Attribute on Windows
$Revision: 1.8 $

This TIP proposes a new controlled attribute -alpha to control toplevel alpha transparency for the wm attributes command on Windows.

Author:Jeff Hobbs
Andreas Kupries
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:16 Sep 2004
Posting History:
Keywords:Tk

TIP #223: Full-Screen Toplevel Support for Tk
$Revision: 1.6 $

Tk lacks an optimal method for creating a full-screen toplevel. A full-screen toplevel is one that has no borders and a client drawing area that covers the entire screen. On some UNIX systems, one can create a normal toplevel that is a little larger than size of the screen and place the upper left corner of the client drawing area at at (0,0). This option is not available under Windows as the position and dimensions of normal windows are constrained to keep them from covering up the start menu and task bar. Under Windows, a zoomed toplevel with the overrideredirect flag set avoids this size restriction and displays with no borders, both desirable properties. Unfortunately, setting the overrideredirect flag also keeps an icon for the toplevel from being displayed in the task bar and in the programs list accessed via Alt-Tab. There are also some UNIX systems that restrict the placement of a normal toplevel window. For example, the default window manager for the KDE desktop restricts size and placement of a normal toplevel in much the same way as Windows. This TIP and its associated patch implement full-screen functionality that also displays an icon in the taskbar and is accessible via Alt-Tab. The implementation adds a new -fullscreen option to the wm attributes subcommand.

Author:Mo DeJong
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:21 Sep 2004
Posting History:

TIP #224: Add New [array] Subcommands 'incr' and 'value'
$Revision: 1.12 $

The TIP proposes the addition to two new subcommands to the array command: incr and value. The 'incr subcommand would increment an element in an array. The value subcommand would query, reference, and/or initialize an array element.

Author:Peter MacDonald
Robert Seeger
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:28 Sep 2004
Posting History:

TIP #225: Arithmetic Series with Optimized Space Complexity
$Revision: 1.14 $

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 Tcl programmer is the addition of a new command named range.

Author:Salvatore Sanfilippo
Miguel Sofer
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:25 Oct 2004
Posting History:

TIP #226: Interface to Save and Restore Interpreter State
$Revision: 1.5 $

This TIP proposes new public C routines to allow the dynamic state of an interp, including the return options, and error logging in progress as well as the interp result, to be saved and later restored.

Author:Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:30 Oct 2004
Posting History:
Keywords:Tcl

TIP #227: Interface to Get and Set the Return Options of an Interpreter
$Revision: 1.5 $

This TIP proposes new public C routines to allow the same access to interpreter return options TIP #90 as are provided at the script level by the catch and return commands.

Author:Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:30 Oct 2004
Posting History:
Keywords:Tcl

TIP #228: Tcl Filesystem Reflection API
$Revision: 1.10 $

This document describes an API which reflects the Filesystem Driver API of the core Virtual Filesystem Layer up into the Tcl level, for the implementation of filesystems in Tcl. It is an independent companion to TIP #219 ('Tcl Channel Reflection API') and TIP #230 ('Tcl Channel Transformation Reflection API'). As the latter TIPs bring the ability of writing channel drivers and transformations in Tcl itself into the core so this TIP provides the facilities for the implementation of filesystems in Tcl. This document specifies version 1 of the filesystem reflection API.

Author:Andreas Kupries
Andreas Kupries
Vince Darley
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:02 Nov 2004
Posting History:

TIP #229: Scripted Control of Name Resolution in Namespaces
$Revision: 1.10 $

This TIP proposes extensions to the namespace command to allow scripts to control how individual namespaces map names to commands.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:03 Nov 2004
Posting History:

TIP #230: Tcl Channel Transformation Reflection API
$Revision: 1.17 $

This document describes an API which reflects the Channel Transformation API of the core I/O system up into the Tcl level, for the implementation of channel transformations in Tcl. It is built on top of TIP #208 ('Add a chan command') and also an independent companion to TIP #219 ('Tcl Channel Reflection API') and TIP #228 ('Tcl Filesystem Reflection API'). As the latter TIPs bring the ability of writing channel drivers and filesystems in Tcl itself so this TIP provides the facilities for the implementation of new channel transformations in Tcl. This document specifies version 1 of the transformation reflection API.

Author:Andreas Kupries
Andreas Kupries
Andreas Kupries
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:02 Nov 2004
Posting History:

TIP #231: Support for [wm attributes] on X11
$Revision: 1.7 $

This TIP adds three UNIX/X11-specific attributes to the wm attributes command to take advantage of features newer Unix window manager control standards.

Author:Joe English
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:06 Nov 2004
Posting History:

TIP #232: Creating New Math Functions for the 'expr' Command
$Revision: 1.11 $

This TIP proposes to replace Tcl's math functions, ordinarily created using the Tcl_CreateMathFunc() function, with ordinary Tcl commands created in a known namespace, ::tcl::mathfunc. This change has two chief motivations: it allows programmers to define new math functions at the Tcl level, and it encapsulates the Tcl_Value API so that new math functions can work on data types that are not described adequately as Tcl_Value objects.

Author:Arjen Markus
Kevin Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Nov 2004
Posting History:
Keywords:math, expr, Tcl

TIP #233: Virtualization of Tcl's Sense of Time
$Revision: 1.6 $

This document describes a number of changes to internal and public APIs which allows external code to hook into the routines through which the Tcl core computes time-dependent information, and to override them. Through this the external code can manipulate Tcl's sense of time.

Author:Andreas Kupries
Andreas Kupries
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:30 Nov 2004
Posting History:

TIP #234: Add Support For Zlib Compression
$Revision: 1.21 $

This TIP proposes a new core package with commands to handle compression and decompression using the Zlib compression library.

Author:Pascal Scheffers
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:08 Dec 2004
Posting History:
Keywords:Tcl, zip, gzip, deflate

TIP #235: Exposing a C API for Ensembles
$Revision: 1.9 $

This TIP exposes a C API for the ensembles of TIP #112.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:10 Dec 2004
Posting History:

TIP #236: Absolute Positioning of Canvas Items
$Revision: 1.10 $

This TIP proposes adding a canvas widget command to set the absolute position of canvas items.

Author:Neil McKay
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:25 Dec 2004
Posting History:
Keywords:Tk, anchor, place

TIP #237: Arbitrary-Precision Integers for Tcl
$Revision: 1.19 $

This TIP adds the capability to perform computations on integer values of arbitrary precision.

Author:Kevin B. Kenny
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:14 Jan 2005
Posting History:

TIP #238: Fire Event when Widget Created
$Revision: 1.7 $

This TIP arranged for a new virtual event to be fired every time a widget is created. This allows class bindings to automatically discover new widget instances and act on their creation.

Author:Gerald W. Lester
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:25 Jan 2005
Posting History:
Keywords:Tk

TIP #239: Enhance the 'load' Command
$Revision: 1.12 $

This TIP proposes enhancing the Tcl load command with the ability to load arbitrary libraries and functions.

Author:Jeff Hobbs
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:26 Jan 2005
Posting History:

TIP #240: An Ensemble Command to Manage Processes
$Revision: 1.14 $

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

Author:Steve Bold
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:22 Feb 2005
Posting History:
Obsoletes:TIP #88
Keywords:Tcl

TIP #241: Case-Insensitive Switches and List Searching and Sorting
$Revision: 1.6 $

This TIP proposes a -nocase option for the lsearch, lsort and switch commands to allow for case-insensitive handling of the specified list.

Author:Joe Mistachkin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Feb 2005
Posting History:
Keywords:Tcl, sorted lists,
matching

TIP #242: Preselect Filter on tk_get*File Dialogs
$Revision: 1.8 $

This TIP proposes adding an -typevariable option to the tk_getOpenFile and tk_getSaveFile dialog box commands. This option will preselect the filter from the -filetypes list based on the type name.

Author:Brian Griffin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:03 Mar 2005
Posting History:

TIP #243: Supply Find Dialog for the Text Widget
$Revision: 1.3 $

This TIP adds a find dialog to the Tk text widget.

Author:Rüdiger Härtel
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:16 Mar 2005
Posting History:
Keywords:Tk

TIP #244: PNG Photo Image Support for Tk
$Revision: 1.7 $

Tk's photo image type has had support for alpha channels internally since version 8.3. However, to date there is no photo format in the core that exposes this functionality. This TIP proposes adding support for the PNG (Portable Network Graphics) format.

Author:Michael Kirkham
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:22 Mar 2005
Posting History:
Discussions To:comp.lang.tcl

TIP #245: Discover User Inactivity Time
$Revision: 1.12 $

This TIP proposes a new subcommand, inactive, to the tk command, as well as Tk_GetUserInactiveTime and Tk_ResetUserInactiveTime C functions to discover the number of milliseconds the user has been inactive and reset that timer to zero respectively. For most environments, this is the time since the user last used the keyboard or mouse.

Author:Pascal Scheffers
Reinhard Max
Neil Madden
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:15 Apr 2005
Posting History:
Keywords:Tk

TIP #246: Unify Pattern Matching
$Revision: 1.5 $

Many Tcl commands take arguments that are patterns to match against. Some of these commands allow options to specify whether the pattern should be treated as a literal, a glob pattern, or a regular expression, and whether or not matching should be case sensitive. This TIP proposes a unique set of options for all commands that accept pattern arguments.

Author:Reinhard Max
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:27 Apr 2005
Posting History:
Keywords:pattern, match, glob,
exact, regexp, case sensitive,
Tcl

TIP #247: Tcl/Tk Engineering Manual
$Revision: 1.9 $

This document describes the set of conventions used for writing C code to go into the Tcl and Tk core. It is also recommended that extensions be written in the same style for clarity.

Author:John K. Ousterhout
Donal K. Fellows
Type:Informative
State:Draft
Vote:Pending
Created:01 Jun 2005
Posting History:

TIP #248: Integrate Tile into Tk as Ttk
$Revision: 1.7 $

This TIP proposes that the tile themed widget set be integrated into Tk from 8.5 onwards as the static package Ttk.

Author:Jeff Hobbs
Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:08 Jun 2005
Posting History:
Obsoletes:TIP #172

TIP #249: Unification of Tcl's Parsing of Numbers
$Revision: 1.9 $

This TIP proposes to unify the recognition of all of Tcl's "numeric" objects into a single parser. The intended effect is to improve performance by eliminating a number of cases where a cached numeric representation may be discarded, and to restore (more accurately, to establish) the "everything is a string" principle in dealing with numbers.

Author:Kevin B. Kenny
David S. Cargo
Don Porter
Type:Informative
State:Draft
Vote:No voting
Created:13 Jun 2005
Posting History:

TIP #250: Efficient Access to Namespace Variables
$Revision: 1.7 $

This TIP proposes a new namespace subcommand, namespace upvar, to efficiently alias namespace variables into the current scope.

Author:Will Duquette
miguel sofer
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:19 Jun 2005
Posting History:

TIP #251: Enhance the 'list' Command
$Revision: 1.14 $

This TIP proposes enhancing the existing list command to serve as a top-level command ensemble for all the related list commands that have proliferated over time, as well as making it easier to add future new list-based commands.

Author:Brian Schmidt
Sérgio Loureiro
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:28 Jun 2005
Posting History:

TIP #252: Add New 'string' Command Options
$Revision: 1.4 $

This TIP proposes moving several existing string-related commands to be options in the existing top-level string command.

Author:Brian Schmidt
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:28 Jun 2005
Posting History:

TIP #253: Consolidate Package-Related Commands
$Revision: 1.6 $

This TIP proposes enhancing the existing package command with additional subcommands to serve as the top-level command container for the existing pkg::create and pkg_mkIndex commands.

Author:Brian Schmidt
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:05 Jul 2005
Posting History:

TIP #254: New Types for Tcl_LinkVar
$Revision: 1.6 $

Currently only a limited set of types of C variable may be linked to using Tcl_LinkVar. This TIP proposes extending this to cover all the basic numeric C types.

Author:Rene Meyer
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:21 Jul 2005
Posting History:

TIP #255: Add 'min' and 'max' [expr] Functions
$Revision: 1.6 $

This TIP proposes enhancing the Tcl expr command with min and max functions.

Author:Jeff Hobbs
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:21 Jul 2005
Posting History:

TIP #256: Implement Tabular and Wordprocessor Style Tabbing
$Revision: 1.15 $

There are two common style of tabbing in the computer world: that used for a regular table of information, and that used by a word-processor/text editor. This TIP proposes to add support for the latter to Tk's text widget.

Author:Vince Darley
Vince Darley
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:12 Aug 2005
Posting History:

TIP #257: Object Orientation for Tcl
$Revision: 1.31 $

This TIP proposes adding OO support to the Tcl core, semantically inspired by XOTcl. The commands it defines will be in the ::oo namespace, which is not used by any current mainstream OO system, and it will be designed specifically to allow other object systems to be built on top.

Author:Donal K. Fellows
Will Duquette
Steve Landers
Jeff Hobbs
Kevin Kenny
Miguel Sofer
Richard Suchenwirth
Larry W. Virden
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:26 Sep 2005
Posting History:
Obsoletes:TIP #50

TIP #258: Enhanced Interface for Encodings
$Revision: 1.4 $

This TIP proposes public C routines and a new encoding dirs subcommand to improve the interfaces to Tcl's encodings.

Author:Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:01 Oct 2005
Posting History:
Keywords:encoding

TIP #259: Making 'exec' Optionally Binary Safe
$Revision: 1.4 $

A new option shall be added to the command exec, that allows the user to specify that input redirected from immediate data (using <<) and/or the data received from the external command shall not undergo any translation within Tcl.

Author:Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:12 Dec 2005
Posting History:

TIP #260: Add Underline Option to Canvas Text Items
$Revision: 1.4 $

This TIP proposes adding an -underline option to the Tk canvas widget's text items.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:04 Jan 2006
Posting History:

TIP #261: Return Imported Commands from [namespace import]
$Revision: 1.7 $

This TIP describes a mechanism for easily finding out the list of commands in the current namespace that have been imported from other namespaces.

Author:Martin Lemburg
dgp at users dot sf dot net
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:20 Dec 2005
Posting History:

TIP #262: Background Images for Frames
$Revision: 1.5 $

This TIP proposes an option for frames that allows users to set the background of the window to be an image.

Author:Eric Taylor
Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:18 Mar 2006
Posting History:
Keywords:Tk, option

TIP #263: Quantum Tcl
$Revision: 1.2 $

A new Tcl command qubit is proposed. This command makes it possible to handle quantum information in the form of qubits.

Author:Lars Hellström
Type:Project
Tcl Version:9.2
State:Draft
Vote:Pending
Created:01 Apr 2006
Posting History:

TIP #264: Add Function to Retrieve the Interpreter of a Window
$Revision: 1.8 $

This TIP proposes the addition of a new function in the Tk public API, for retrieving a pointer to the Tcl interpreter that was used for creating a window.

Author:George Petasis
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:01 Apr 2006
Posting History:
Keywords:Tk, C API

TIP #265: A Convenient C-side Command Option Parser for Tcl
$Revision: 1.7 $

The Tk C library provides developers with a Tk_ParseArgv() function that allows command line parsing of options of the "-option" form. Archived discussions on news:comp.lang.tcl and on the Wiki indicate that a desire for similar functionality without Tk has arisen several times in the past. This TIP presents a Tk-free implementation of Tk_ParseArgv() named Tcl_ParseArgvObj, that developers can use to parse "-option" style command options in C implementations of Tcl commands using the Tcl_Obj interface.

Author:Sam Bromley
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:03 Apr 2006
Posting History:
Keywords:Command line parsing,
C implementation

TIP #266: Numbers are Commands
$Revision: 1.8 $

This TIP describes a change to Tcl's command dispatch which would allow every number to act as a command.

Author:Kristoffer Lawson
Michal Malecki
Wolf-Dieter Busch
Paul Nash
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:11 Apr 2006
Posting History:
Keywords:Tcl, unknown, expression

TIP #267: Allow 'exec' to Ignore Stderr
$Revision: 1.4 $

Currently the exec command will always fail if the process writes to standard error. Since various applications use stderr for debug output it would be useful to retain this output without having to resort to redirecting stderr to stdout (which can cause interleaving).

Author:Nathan Bell
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:25 Apr 2006
Posting History:

TIP #268: Enhance 'package' Version Handling
$Revision: 1.12 $

This TIP proposes enhancing the Tcl package command to understand version numbers containing "a", and "b" and extend the semantics of package require to allow multiple requirements and various types of ranges of versions.

Author:Jeff Hobbs
Hemang Lavana
Andreas Kupries
Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:28 Apr 2006
Posting History:

TIP #269: Add 'string is list' to the 'string is' Subcommand
$Revision: 1.7 $

The string command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. This TIP proposes adding lists to the set of things that can be checked for.

Author:Joe Mistachkin
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:19 May 2006
Posting History:
Keywords:Tcl, lists, strings

TIP #270: Utility C Routines for String Formatting
$Revision: 1.10 $

This TIP proposes new public C utility routines for the convenience of C-coded extensions and embedded uses of Tcl.

Author:Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:19 Jun 2006
Posting History:

TIP #271: Windows-Style Open and Save File Dialog on Unix
$Revision: 1.5 $

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.

Author:Matthew Middleton
susanta kumar mishra
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:11 Jul 2006
Posting History:

TIP #272: String and List Reversal Operations
$Revision: 1.4 $

This TIP proposes adding commands to reverse the order of characters in strings and elements in lists.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:23 Aug 2006
Posting History:
Keywords:Tcl, lreverse

TIP #273: Add Tcl_Expr... Support to Tcl_Get... Functions
$Revision: 1.5 $

This TIP proposes adding Tcl_Expr... calls to Tcl_Get... functions, supporting direct use of expressions for arguments to commands that is defined as int, long, wide-int, double or boolean.

Author:Carsten Gosvig
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:30 Aug 2006
Posting History:
Obsoletes:TIP #176

TIP #274: Right-Associativity for the Exponentiation Operator
$Revision: 1.9 $

This TIP clarifies and corrects the associativity behaviour of the exponentation operator that was introduced in TIP #123.

Author:Arjen Markus
David Smith
Richard Suchenwirth
Don Porter
Sérgio Loureiro
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:15 Sep 2006
Posting History:
Keywords:Tcl, expr

TIP #275: Support Unsigned Values in binary Command
$Revision: 1.5 $

This TIP proposes to add support for unsigned values to the binary command.

Author:Pat Thoyts
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:27 Sep 2006
Posting History:
Keywords:Tcl, binary, unsigned

TIP #276: Specify and Unify Variable Linking Commands
$Revision: 1.20 $

The purpose of this TIP is to simplify and clarify the semantics of the commands in Tcl that couple variables in different scopes together.

Author:Miguel Sofer
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:01 Oct 2006
Posting History:
Keywords:Tcl, global, variable,
upvar, namespace upvar

TIP #277: Create Namespaces as Needed
$Revision: 1.3 $

This TIP proposes that namespaces be created automatically whenever a script tries to create a command, variable or child namespace in it.

Author:Miguel Sofer
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:01 Oct 2006
Posting History:

TIP #278: Fix Variable Name Resolution Quirks
$Revision: 1.18 $

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.

Author:Miguel Sofer
Miguel Sofer
Kevin Kenny
Jan Nijtmans
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:03 Oct 2006
Posting History:

TIP #279: Adding an Extensible Object System to the Core
$Revision: 1.10 $

This TIP proposes adding OO support to the Tcl core, consisting mostly of a dispatcher plus a small number of helper commands. The TIP allows the coexistence of multiple object systems by providing a common framework, the Tcl Minimal Object System (TMOS). The framework will contain, as well, a small, basic oriented language (Tcl Core Object Oriented Language, TclCOOL) to make it usable in the core without any extensions. All defined commands of the minimal object system are defined in the ::oo namespace, which is not used by any current mainstream OO system. It has been designed specifically to allow a relatively simple re-implementation of the known object systems.

Author:Gustaf Neumann
Larry W. Virden
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:05 Oct 2006
Posting History:

TIP #280: Add Full Stack Trace Capability With Location Introspection
$Revision: 1.13 $

This TIP proposes adding a new subcommand to the info command to get a list of all the frames on the current stack, with additional information about command location, type of execution, etc., rather than the limited list returned by info level. It is also related to Peter MacDonald's TIP #86, or rather, to the info linenum feature proposed there. The base feature of providing location information for a command was extended, allowing the user to ask for the current location in all stack levels. Enough information is returned to consider this as an extended TIP #211.

Author:Andreas Kupries
Andreas Kupries
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:10 Aug 2004
Posting History:
Obsoletes:TIP #211
Keywords:Tcl

TIP #281: Improvements in System Error Handling
$Revision: 1.7 $

This TIP describes the need for better error codes and message handling of system errors to be returned to scripts.

Author:David Gravereaux
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:08 Oct 2006
Posting History:
Keywords:POSIX, channel driver,
errorCode

TIP #282: Enhanced Expression Syntax
$Revision: 1.4 $

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

Author:Will Duquette
Don Porter
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:13 Oct 2006
Posting History:
Keywords:expr, operator, assignment

TIP #283: Modify Ensemble Command Resolution Behaviour
$Revision: 1.22 $

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

Author:Miguel Sofer
Neil Madden
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:01 Oct 2006
Posting History:

TIP #284: New 'invoke' and 'namespace invoke' Commands
$Revision: 1.23 $

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

Author:Miguel Sofer
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:01 Oct 2006
Posting History:

TIP #285: Script Cancellation with [interp cancel] and Tcl_CancelEval
$Revision: 1.11 $

This TIP introduces the ability to quickly and safely cancel a script within a specified interpreter from any thread in the process.

Author:Joe Mistachkin
Dawson Cowals
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:04 Jun 2006
Posting History:
Keywords:eval, cancel, unwind,
terminate, runaway,
async, thread, safe

TIP #286: Add 'xposition' Command to Menu Widgets
$Revision: 1.4 $

There has been a yposition subcommand for menu widgets for years, but its counterpart in the x-direction does not currently exist. This TIP intends to rectify that situation.

Author:Schelte Bron
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:18 Oct 2006
Posting History:
Keywords:Tk

TIP #287: Add a Commands for Determining Size of Buffered Data
$Revision: 1.12 $

Many network servers programmed in Tcl (including the venerable tclhttpd) are vulnerable to DoS (denial of service) attacks because they lack any way to introspect the amount of buffered data on a non-blocking socket that is in line buffering mode. This TIP proposes a new subcommand to chan to allow the amount of buffered input and buffered output (for symmetry) to be inspected from Tcl.

Author:Michael A. Cleverly
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Oct 2006
Posting History:
Keywords:Tcl, channel, chan,
pendinginput, pendingoutput

TIP #288: Allow "args" Anywhere in Procedure Formal Arguments
$Revision: 1.14 $

This TIP proposes to make args have its special meaning as a formal procedure argument anywhere in the argument list.

Author:Peter Spjuth
Andreas Leitgeb
Peter Spjuth
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:03 Oct 2006
Posting History:
Keywords:Tcl, proc

TIP #289: Revision of [lrepeat] Argument Order
$Revision: 1.5 $

This TIP proposes to alter the argument order of lrepeat to be similar to string repeat.

Author:Peter Spjuth
dgp at users dot sf dot net
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:26 Oct 2006
Posting History:
Keywords:Tcl

TIP #290: Registration of Custom Error Handler Scripts
$Revision: 1.13 $

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

Author:Eckhard Lehmann
Larry W. Virden
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:29 Oct 2006
Posting History:
Keywords:Tcl, error, trap

TIP #291: Add the 'platform' Package to Tcl
$Revision: 1.9 $

This TIP proposes adding the platform package to the Tcl core sources and to install it automatically, similar to what is currently done with the tcltest package.

Author:Steve Landers
Andreas Kupries
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:26 Oct 2006
Posting History:
Keywords:Tcl, Critcl, TEApot

TIP #292: Allow Unquoted Strings in Expressions
$Revision: 1.3 $

This TIP proposes allowing unquoted words to be recognized as strings in expressions (expr, if, while).

Author:Brian Griffin
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:01 Nov 2006
Posting History:
Keywords:Tcl, expr

TIP #293: Argument Expansion with Leading {*}
$Revision: 1.4 $

Tcl shall use {*} to denote argument expansion, replacing the current {expand}.

Author:Miguel Sofer
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:02 Nov 2006
Posting History:
Obsoletes:TIP #157

TIP #294: The "entier" Function: It's Spelt "entire"
$Revision: 1.4 $

It is proposed that the expr function entier() introduced by TIP #237 is renamed to entire().

Author:Lars Hellström
Richard Suchenwirth
Type:Project
Tcl Version:8.5
State:Rejected
Vote:Done
Created:03 Nov 2006
Posting History:
Keywords:Tcl, number, cast,
rename

TIP #295: Enhance Arguments to lrange
$Revision: 1.7 $

This TIP proposes an enhancement to lrange and string range that lets them take more than one start-end index pair.

Author:Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:06 Nov 2006
Posting History:
Keywords:Tcl, lrange

TIP #296: Enhanced Syntax for Pair-Wise Indices
$Revision: 1.7 $

This TIP proposes adding another anchor s (for usage exclusively in end-indices) that refers to the respective start-index.

Author:Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:06 Nov 2006
Posting History:
Keywords:Tcl, lrange, lreplace

TIP #297: Integer Type Introspection and Conversion
$Revision: 1.3 $

This TIP proposes changes to complete the set of commands to test and convert among Tcl's integer types.

Author:Don Porter
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:20 Nov 2006
Posting History:
Keywords:Tcl, number, expression

TIP #298: Revise Shared Value Rules for Tcl_GetBignumAndClearObj
$Revision: 1.6 $

This TIP proposes a revision to Tcl_GetBignumAndClearObj to make it easier to use.

Author:Don Porter
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:22 Nov 2006
Posting History:
Keywords:Tcl, Tcl_Obj

TIP #299: Add isqrt() Math Function
$Revision: 1.3 $

This TIP proposes a new expr math function isqrt().

Author:Kevin B. Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:24 Nov 2006
Posting History:
Keywords:Tcl, expression,
integer, square root

TIP #300: Examine Glyph Substitution in the 'font actual' Command
$Revision: 1.4 $

This TIP proposes enhancing the font actual command to allow determining the actual font to be used when rendering a specific character.

Author:Kevin B. Kenny
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:25 Nov 2006
Posting History:
Keywords:Tk

TIP #301: Split Bidirectional Channels For Half-Close
$Revision: 1.2 $

This TIP proposes to introduce a chan split command allowing to access both sides of a bidirectional channel (r+ pipe, or socket) as separate Tcl channels, in order to be able to close them separately. This would give Tcl the same level of control that the OS enjoys on the lifetime of such bidirectional connections.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.6
State:Withdrawn
Vote:Pending
Created:11 Dec 2006
Posting History:
Obsoleted By:TIP #332

TIP #302: Fix "after"'s Sensitivity To Adjustments Of System Clock
$Revision: 1.3 $

Currently, after tasks can be drastically delayed or sped up simply by adjusting the system clock. This is due to the implementation's use of an absolute target date based on the system clock. The idea of this TIP is to use another timebase for this purpose: the count of ticks from boot, which is not affected by system time adjustments.

Author:Alexandre Ferrieux
Kevin Kenny
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:13 Dec 2006
Posting History:
Keywords:Tcl, time changes

TIP #303: Enhance 'llength' Command to Support Nested Lists
$Revision: 1.3 $

The command llength currently returns the length of a list. Sometimes it is desirable to know the length of a nested list. This TIP proposes an improvement to llength to do that.

Author:Wolf-Dieter Busch
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:29 Jan 2007
Posting History:
Keywords:Tcl, lindex

TIP #304: A Standalone [chan pipe] Primitive for Advanced Child IPC
$Revision: 1.15 $

Currently, it is not easy to get both (separate) dataflows from the stdout and stderr of a child. BLT's bgexec does this in an extension, and could be added to the core. But the point of this TIP is to show that a much smaller code addition can provide a lower-level primitive with much more potential than bgexec's: a standalone pipe creation tool like TclX's pipe command.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:07 Feb 2007
Posting History:
Keywords:Tcl, exec, process,
subprocess, pipeline,
channel

TIP #305: ANSI Escape Sequence Support for Windows's Console Channel Driver
$Revision: 1.4 $

The console channel driver for windows (win/tclWinConsole.c) could support colors, cursor movement, and scrolling by embedding such commands in the stream to the console in the age-old tradition of ANSI_X3.64-1979 escapes. By filtering-out such commands in the DriverOutputProc and doing the command actions, greater cross-platform support is enabled to other platforms (such as Linux) that have ANSI support.

Author:David Gravereaux
Type:Project
Tcl Version:8.5
State:Withdrawn
Vote:Pending
Created:21 Feb 2007
Posting History:
Discussions To:comp.lang.tcl

TIP #306: Auto-Naming Widgets
$Revision: 1.11 $

A Tk programmer must give every widget a unique name. This is often quite annoying, especially for widgets whose name is stored in a variable (which also must be given a name). This TIP proposes a small extension to generate automatic names for widgets.

Author:Koen Danckaert
Richard Suchenwirth
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:11 Jun 2007
Posting History:
Keywords:automatic, Tk, widget,
naming

TIP #307: Make TclTransferResult() Public
$Revision: 1.7 $

This TIP proposes to make the existing function TclTransferResult() part of the public interface.

Author:Erik Leunissen
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:28 Sep 2007
Posting History:
Keywords:Tcl, result, transfer,
interpreter, API rename

TIP #308: Tcl Database Connectivity (TDBC)
$Revision: 1.17 $

This TIP defines a common database access interface for Tcl scripts.

Author:Kevin B. Kenny
Artur Trzewik
Andreas Leitgeb
Donal K. Fellows
Type:Informative
State:Final
Vote:Done
Created:15 Nov 2007
Posting History:
Obsoleted By:TIP #350

TIP #309: Expose the Expression Parsing
$Revision: 1.2 $

This TIP proposes a new command to expose the parsing of expressions by the expr command. This will make it much easier to implement alternative number systems, such as complex numbers, or to implement symbolic algebra.

Author:Arjen Markus
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:07 Jan 2008
Posting History:
Keywords:expr, parse

TIP #310: Add a New Pseudo-Random Number Generator
$Revision: 1.3 $

This TIP proposes to add a new expr function: a random number generator with a longer sequence than the one currently in the core.

Author:Arjen Markus
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:07 Jan 2008
Posting History:
Keywords:expr

TIP #311: Tcl/Tk 8.6 Release Calendar
$Revision: 1.66 $

This TIP serves to coordinate Tcl/Tk 8.6 development releases and the features they deliver.

Author:Don Porter
Larry W. Virden
Joe Mistachkin
Pat Thoyts
Miguel Sofer
Lars Hellström
Alexandre Ferrieux
Arnulf Wiedemann
Trevor Davel
Donal K. Fellows
Jan Nijtmans
Type:Informative
State:Draft
Vote:Pending
Created:08 Jan 2008
Posting History:

TIP #312: Add More Link Types
$Revision: 1.9 $

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.

Author:Rene Zaumseil
Larry W. Virden
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:26 Jan 2008
Posting History:
Keywords:variable, trace

TIP #313: Inexact Searching in Sorted List
$Revision: 1.14 $

This TIP adds a new switch to lsearch to do a binary search to find the insertion point in a sorted list.

Author:Peter Spjuth
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:14 Feb 2008
Posting History:
Keywords:Tcl

TIP #314: Ensembles with Parameters
$Revision: 1.5 $

This TIP proposes that namespace ensemble commands are generalised so that they may have arguments before the subcommand name.

Author:Lars Hellström
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:26 Feb 2008
Posting History:

TIP #315: Add pathSeparator to tcl_platform Array
$Revision: 1.5 $

This TIP proposes a mechanism for determining the platform's path separator. The path separator is currently ":" in Unix and ";" in DOS/Windows.

Author:Hai Vu
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:04 Apr 2008
Posting History:

TIP #316: Portable Access Functions for Stat Buffers
$Revision: 1.4 $

Tcl exposes the definition of the struct stat type to users of its C API, but this can vary between builds. This TIP proposes a set of portable functions for reading (portable) fields out of those structures so that code does not need to match the API version when reading the fields (the most common case by far).

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:02 May 2008
Posting History:

TIP #317: Extend binary Ensemble with Binary Encodings
$Revision: 1.5 $

This TIP extends the binary command with implementations in C of commonly used binary encodings. In particular the base64 encoding is implemented but the Tcl ensemble scheme TIP #112 can be used to provide simple extension of the implemented formats.

Author:Pat Thoyts
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:03 May 2008
Posting History:
Keywords:base64, uuencode,
hex, transfer encoding

TIP #318: Extend Default Whitespace in 'string trim' Beyond ASCII
$Revision: 1.5 $

This TIP extends the string trim, string trimleft, and string trimright subcommands to function properly with non-roman writing systems by adding non-ASCII space characters to the default list of characters to be trimmed.

Author:Bill Poser
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:13 May 2008
Posting History:

TIP #319: Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets
$Revision: 1.4 $

This TIP calls for the implementation of backward compatibility between ttk themed widgets and conventional tk widgets. It does this by describing configuration options that specify how to deal with unsupported options (error, ignore, or call supplied callbacks) where full compatibility is not feasible. Configuration should be both global (all widgets) and specific (by class or individual widget).

Author:Eric Taylor
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:04 Jun 2008
Posting History:

TIP #320: Improved Variable Handling in the Core Object System
$Revision: 1.6 $

This TIP specifies new configuration commands that allow variables to be used in methods of the core object system without explicit declaration in each method.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:13 Jun 2008
Posting History:
Keywords:TclOO

TIP #321: Add a [tk busy] Command
$Revision: 1.6 $

The blt::busy commands can be used to make Tk widget busy, with all user interaction blocked and the cursor can be changed to e.g. a clock. This TIP proposes to add this useful feature to Tk.

Author:Jos Decoster
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:26 Jun 2008
Posting History:
Keywords:Tk, BLT, busy

TIP #322: Publish the NRE API
$Revision: 1.9 $

This TIP exposes an API to allow extension writers to take advantage of Tcl's Non-Recursive evaluation Engine.

Author:Miguel Sofer
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:13 Jul 2008
Posting History:

TIP #323: Do Nothing Gracefully
$Revision: 1.6 $

A number of Tcl's built-in commands currently raise errors when given arguments that would cause them to do nothing. This proposal asks that they instead simply do nothing gracefully.

Author:Colin McCormack
Don Porter
Kevin B. Kenny
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:06 Aug 2008
Posting History:

TIP #324: A Standard Dialog For Font Selection
$Revision: 1.7 $

This TIP proposes the addition of a font selection dialog to the set of common dialogs already available in Tk. Where possible, this dialog will be implemented using the host platform's standard dialogs.

Author:Adrian Robert
Daniel A. Steffen
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:08 Aug 2008
Posting History:
Obsoletes:TIP #213
Keywords:Tk

TIP #325: System Tray Access
$Revision: 1.2 $

Modern operating systems have a "system tray", where programs may place an icon to indicate program status. This TIP proposes that Tk should adopt some existing code in order to permit cross platform access to this functionality.

Author:David N. Welton
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:25 Aug 2008
Posting History:
Keywords:Tk, desktop integration

TIP #326: Add -stride Option to lsort
$Revision: 1.5 $

This TIP adds a new option, -stride, to lsort to request that a list be treated as consisting of repeated groups of elements (as opposed to sublists), and that the the groups be sorted according to a chosen element within each group.

Author:Kieran Elby
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:01 Sep 2008
Posting History:
Keywords:Tcl, lsort, sorting

TIP #327: Proper Tailcalls
$Revision: 1.8 $

This TIP recommends adding proper tailcalls to Tcl.

Author:Miguel Sofer
David S. Cargo
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:20 Sep 2008
Posting History:
Keywords:tailcall, NRE

TIP #328: Coroutines
$Revision: 1.6 $

This TIP recommends adding a coroutine mechanism to Tcl, loosely modelled on those present in Lua.

Author:Miguel Sofer
Neil Madden
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:07 Sep 2008
Posting History:
Keywords:Coroutine, continuation,
event-loop, NRE

TIP #329: Try/Catch/Finally syntax
$Revision: 1.9 $

This TIP proposes the addition of new core commands to improve the exception handling mechanism. It supercedes TIP #89 by providing support for the error options dictionary introduced in Tcl 8.5 by TIP #90.

Author:Trevor Davel
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:22 Sep 2008
Posting History:
Discussions To:http://wiki.tcl.tk/21608
Obsoletes:TIP #89

TIP #330: Eliminate interp->result from the Public Headers
$Revision: 1.5 $

This TIP proposes to eliminate the long-deprecated interp->result field from the public headers.

Author:Kevin B. Kenny
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:22 Sep 2008
Posting History:

TIP #331: Allow [lset] to Extend Lists
$Revision: 1.5 $

This TIP proposes to modify the lset command to allow it to extend lists.

Author:Kevin B. Kenny
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:22 Sep 2008
Posting History:

TIP #332: Half-Close for Bidirectional Channels
$Revision: 1.6 $

This TIP proposes to extend the close/chan close commands to let them perform an unidirectional "half-close" on bidirectional channels.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:25 Sep 2008
Posting History:
Obsoletes:TIP #301
Keywords:Tcl, channel, close,
socket, shutdown

TIP #333: New Variable and Namespace Resolving Interface
$Revision: 1.4 $

This is a TIP to allow easy command and variable resolving for itcl-ng, but is not restricted to itcl-ng. It should be possible for an application to drive the rules for command and variable lookup using the interface described below. This TIP should allow to get rid of namespace and interpreter resolvers for itcl-ng.

Author:Arnulf Wiedemann
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:13 Oct 2008
Posting History:
Keywords:Tcl, resolution

TIP #334: Make 'lrepeat' Accept Zero as a Count
$Revision: 1.2 $

Following on from TIP #323, the lrepeat command should also act gracefully when a repeat count of zero is used, as an empty list is still a valid list.

Author:Michael Thomas Greer
Type:Project
Tcl Version:8.6
State:Withdrawn
Vote:Pending
Created:13 Oct 2008
Posting History:
Keywords:empty list

TIP #335: An API for Detecting Active Interpreters
$Revision: 1.8 $

This TIP introduces the ability to quickly and safely decide whether a Tcl script is evaluating in an interpreter, allowing an external system to determine whether it is safe to delete that interpreter.

Author:Joe Mistachkin
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:13 Oct 2008
Posting History:
Keywords:numLevels, embedding,
terminate, async,
thread, safe, gc

TIP #336: Supported Access To interp->errorline
$Revision: 1.4 $

This TIP proposes a supported public interface to set and get the value of the errorLine field of the Tcl_Interp data structure.

Author:Don Porter
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:21 Oct 2008
Posting History:

TIP #337: Make TclBackgroundException() Public
$Revision: 1.6 $

This TIP proposes to make the TclBackgroundException routine available in the public interface so that extensions may notify Tcl about all return codes that occur during background operations.

Author:Don Porter
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:21 Oct 2008
Posting History:

TIP #338: Embedder Access to Startup Scripts of *_Main()
$Revision: 1.4 $

This TIP proposes to make public the routines that get and set the startup script file that Tcl_Main or Tk_Main evaluate in their non-interactive modes.

Author:Don Porter
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:22 Oct 2008
Posting History:
Keywords:Tcl, Tk, tclsh, wish

TIP #339: Case-Insensitive Package Names
$Revision: 1.8 $

This document proposes to change the package management facilities of the Tcl core to handle package names in a case-insensitive manner, switching back to case-sensitive operation if and only if explicitly requested by the user. The case of package names is preserved in the storage however.

Author:Andreas Kupries
Type:Project
Tcl Version:8.6
State:Rejected
Vote:Done
Created:14 Nov 2008
Posting History:

TIP #340: Const Qualification of Tcl_SetResult's Argument
$Revision: 1.8 $

As a follow-up of TIP #27, in Tcl 8.6 and Tk 8.6 much work has been done to clean up the remaining places where pointers were not const qualified. The question is, how can we prevent that in the future similar "mistakes" are made. The gcc compiler warning -Wwrite-strings helps in that, therefore this TIP proposes to add that to the CFLAGS_WARNING flag in Tcl and Tk when using gcc. But for this flag to be introduced, all warnings will have to be eliminated. In the HEAD, this is done already, except for one function: Tcl_SetResult. This function is explicitely mentioned in TIP #27 not to be modified, because it cannot be handled without unsafe casting. This TIP proposes to deprecate Tcl_SetResult in full, and provide a new macro Tcl_SetStringResult in its place.

Author:Jan Nijtmans
Type:Project
Tcl Version:8.7
State:Withdrawn
Vote:Pending
Created:14 Nov 2008
Posting History:
Keywords:Tcl_SetResult

TIP #341: Multiple 'dict filter' Patterns
$Revision: 1.5 $

The key and value forms of dict filter are generalised to allow an arbitrary number of patterns.

Author:Lars Hellström
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:27 Nov 2008
Posting History:
Keywords:Tcl, set intersection

TIP #342: Dict Get With Default
$Revision: 1.3 $

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

Author:Lars Hellström
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:27 Nov 2008
Posting History:
Keywords:dictionary, default value

TIP #343: A Binary Specifier for [format/scan]
$Revision: 1.3 $

This TIP proposes to add a %b specifier to the format and scan commands for working with integers in base-2 representation.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:03 Dec 2008
Posting History:
Keywords:Tcl, binary

TIP #344: Bring TCP_NODELAY and SO_KEEPALIVE to socket options
$Revision: 1.2 $

Just expose to script level, via fconfigure, the two most important setsockopt() use cases: TCP_NODELAY (disabling the Nagle agorithm) and SO_KEEPALIVE (sending automatic keepalives).

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:31 Dec 2008
Posting History:

TIP #345: Kill the 'identity' Encoding
$Revision: 1.2 $

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

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:05 Feb 2009
Posting History:
Keywords:Tcl, encoding, invalid UTF-8

TIP #346: Error on Failed String Encodings
$Revision: 1.2 $

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

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:02 Feb 2009
Posting History:
Keywords:Tcl, encoding, convertto,
strict, Unicode,
String, ByteArray

TIP #347: Align 'string is ...' to Type-Conversion Functions in 'expr'
$Revision: 1.8 $

The string command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. The tcl::mathfunc mathematical functions provides sevaral functions to limit the number of bits used in integer numbers. This TIP proposes to align both groups of functions for int, long, wide and entier.

Author:Jos Decoster
Type:Project
Tcl Version:8.7
State:Withdrawn
Vote:Pending
Created:09 Feb 2009
Posting History:
Discussions To:comp.lang.tcl
Obsoleted By:TIP #395
Keywords:Tcl

TIP #348: Substituted 'errorstack' / 'traceback'
$Revision: 1.17 $

This TIP proposes to add an errorstack options dict entry and associated info subcommand, giving a "substituted" traceback similar to Python's or gdb's ones.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:26 Feb 2009
Posting History:
Keywords:Tcl, debugging

TIP #349: New "-cargo" option for every Tk widget
$Revision: 1.1 $

This TIP proposes adding a -cargo option to every Tk widget that will be kept free for code that uses the widget to use as it sees fit; the Tk library will assign no interpretation to the option.

Author:Zbigniew Baniewski
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:17 Apr 2009
Posting History:

TIP #350: Tcl Database Connectivity - Corrigenda
$Revision: 1.1 $

This TIP defines a common database access interface for Tcl scripts. It is an update to TIP #308 to take into account experience gained since that TIP was written. Note that this TIP does not repeat the contents of that one, which is mostly correct apart from the changes described in this document.

Author:Kevin B. Kenny
Type:Informative
State:Draft
Vote:Pending
Created:18 Apr 2009
Posting History:
Obsoletes:TIP #308

TIP #351: Add Striding Support to lsearch
$Revision: 1.19 $

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

Author:Peter da Silva
Donal K. Fellows
Harald Oehlmann
Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:09 Jul 2009
Posting History:

TIP #352: Tcl Style Guide
$Revision: 1.5 $

This document describes a set of conventions that it is suggested people use when writing Tcl code. It is substantially based on the Tcl/Tk Engineering Manual TIP #247.

Author:Ray Johnson
Donal K. Fellows
Mark Janssen
Type:Informative
State:Draft
Vote:Pending
Created:14 Jul 2009
Posting History:

TIP #353: NR-enabled Expressions for Extensions
$Revision: 1.7 $

This TIP proposes the new public routine Tcl_NRExprObj to provide extension commands that evaluate Tcl expressions the ability to do so in a non-recursive manner.

Author:Don Porter
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:29 Jul 2009
Posting History:

TIP #354: Minor Production-Driven TclOO Revisions
$Revision: 1.4 $

This TIP describes a few small changes required for solving issues that have been found when using TclOO in production.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:26 Aug 2009
Posting History:

TIP #355: Stop Fast Recycling of Channel Names on Unix
$Revision: 1.1 $

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.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:01 Sep 2009
Posting History:

TIP #356: NR-enabled Substitutions for Extensions
$Revision: 1.4 $

This TIP proposes the new public routine Tcl_NRSubstObj to provide extension commands that evaluate Tcl substitutions the ability to do so in a non-recursive manner.

Author:Don Porter
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:17 Sep 2009
Posting History:
Keywords:Tcl, C API, subst

TIP #357: Export TclLoadFile
$Revision: 1.14 $

This TIP proposes to promote the internal calls, TclLoadFile and TclpFindSymbol to the external API, making them available to C extensions. In addition, it proposes to introduce a Tcl_FSUnloadFile to the VFS layer, removing the weird duplicate client data from TclLoadFile and wrapping all necessary data into the Tcl_LoadHandle

Author:Kevin Kenny
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:01 Oct 2009
Posting History:

TIP #358: Suppress Empty List Element Generation from the Split Command
$Revision: 1.2 $

The split command will create empty list elements when adjacent split characters are found in the input. In some cases these empty list elements are not desired, so this TIP proposes a new switch to disable their generation.

Author:George Petasis
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:04 Oct 2009
Posting History:
Keywords:Tcl, list extraction,
parsing

TIP #359: Extended Window Manager Hint Support
$Revision: 1.7 $

The wm attributes command will be extended to accept a -type option when running on the X Window system to manipulate the extended window manager hints for Tk toplevel windows.

Author:Pat Thoyts
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:21 Dec 2009
Posting History:
Keywords:Tk, X11, ewmh, window manager

TIP #360: Modernize X11 Menus
$Revision: 1.5 $

This TIP proposes to modernize the functionality of the Tk menus on X11 to bring Tk up to date with reference to other toolkits on this platform.

Author:Pat Thoyts
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:24 Dec 2009
Posting History:
Keywords:Tk, X11, menu

TIP #361: Releasing Channel Buffers
$Revision: 1.3 $

Tcl should provide a mechanism by which a channel's output buffer can be released without requiring that Tcl flush any remaining data in the buffer to the operating system. This is of particular interest with output mechanisms which can block indefinitely causing the interpreter to consume unnecessary resources or prevent the interpreter from exiting.

Author:Wayne Cuddy
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:03 Feb 2010
Posting History:

TIP #362: Simple 32 and 64 bit Registry Support
$Revision: 1.9 $

Add new options to the registry command on Windows to allow it to specify that the action should be taken specifically on the 32 or 64 bit registry.

Author:Damon Courtney
Kevin Kenny
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:01 Mar 2010
Posting History:
Keywords:Windows, Tcl

TIP #363: Vector Math in the Tcl Core
$Revision: 1.1 $

The "expand" operator - {*} - was adopted in Tcl 8.5 and is very useful for simplifying code involving lists. It is proposed to add this operator to the list of actions performed during processing of double-quote ("), joining the $, [, and \, and to modify the behavior of $ in variable substitution. The proposed behavior will break existing substitution, but a trivial quoted-string substitution restores original behavior with the new approach. The proposed approach will enable eventual incorporation of vector-math to the Tcl engine without changing any of the existing syntax.

Author:Karl C. Hansen
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:02 Mar 2010
Posting History:
Keywords:expand, {*}, vector,
math

TIP #364: Threading Support: Configuration and Package
$Revision: 1.4 $

This TIP changes the the default configuration for building to threaded on all platforms where this is not already the case (primarily Unix other than MacOS X) and adds the Thread package to the set of packages included by default.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:19 Mar 2010
Posting History:
Keywords:Tcl

TIP #365: Add Python Compatibility Mode
$Revision: 1.2 $

This TIP adds support for reading and evaluating code written in Python to the tclsh interpreter.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Draft
Vote:No voting
Created:01 Apr 2010
Posting History:
Keywords:Look at the date

TIP #366: Variable Sized Indicators for Menubuttons
$Revision: 1.4 $

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

Author:Russell Davidson
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:29 Apr 2010
Posting History:
Keywords:Tk

TIP #367: A Command to Remove Elements from a List
$Revision: 1.1 $

This TIP proposes a command, lremove, that takes a list value and a collection of indices, and returns a list that is the input list with the elements at those indices removed.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:18 May 2010
Posting History:
Keywords:Tcl, delete, item

TIP #368: Listbox Justification Option
$Revision: 1.2 $

This TIP is to allow right and center justification of listboxes using -justify as an option.

Author:Russell Davidson
Type:Project
Tcl Version:8.7
State:Withdrawn
Vote:Pending
Created:10 May 2010
Posting History:
Obsoleted By:TIP #441
Keywords:Tk

TIP #369: Widget cargo command
$Revision: 1.7 $

This TIP is to add a cargo subcommand to widgets for storing data in a data dictionary. This TIP is related to TIP #349.

Author:Russell Davidson
Trevor Davel
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:15 Jul 2010
Posting History:
Keywords:Tk, user-defined data,
dictionary

TIP #370: Extend Tk's selection with a -time option
$Revision: 1.3 $

This TIP proposes the addition of a new argument to the Tk command selection, for specifying a timestamp that should be used in order to retrieve a selection.

Author:George Petasis
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:04 Aug 2010
Posting History:

TIP #371: Improvements for the dict command
$Revision: 1.3 $

The dict command is limited by allowing manipulation of only the first level of key elements. Not only should the dict get accept a nested key list, but also the other commands like dict replace.

Author:Thomas Perschak
Trevor Davel
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:05 Aug 2010
Posting History:

TIP #372: Multi-argument Yield for Coroutines
$Revision: 1.3 $

This TIP proposes a command that allows a coroutine to accept multiple arguments being passed in on return from yield.

Author:Colin McCormack
Type:Project
Tcl Version:8.6
State:Draft
Vote:Done
Created:11 Aug 2010
Posting History:
Discussions To:http://wiki.tcl.tk/26006
Obsoleted By:TIP #396
Keywords:coroutine, yield

TIP #373: Improved Yielding Support for Coroutines
$Revision: 1.7 $

This TIP proposes two new commands that improve control over the yielding behaviour of coroutines.

Author:Miguel Sofer
Type:Project
Tcl Version:8.6
State:Withdrawn
Vote:Pending
Created:12 Aug 2010
Posting History:
Obsoletes:TIP #372
Obsoleted By:TIP #375
Keywords:coroutine, yield

TIP #374: Stackless Vwait
$Revision: 1.5 $

This TIP proposes a way to have multiple procedures waiting for an event to happen, where the command that gets executed depends on the order of the events.

Author:Thomas Perschak
Trevor Davel
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:13 Aug 2010
Posting History:

TIP #375: Symmetric Coroutines and Yieldto
$Revision: 1.3 $

The new command yieldto allows a coroutine to suspend its execution and tailcall into an arbitrary command. If the new command is another coroutine's resume command we obtain symmetric coroutines.

Author:Miguel Sofer
Type:Project
Tcl Version:8.6
State:Draft
Vote:Done
Created:12 Aug 2010
Posting History:
Obsoletes:TIP #373
Obsoleted By:TIP #396
Keywords:coroutine, yield

TIP #376: Bundle sqlite3 and tdbc::sqlite3 Packages
$Revision: 1.5 $

This TIP proposes the packages sqlite3 and tdbc::sqlite3 be re-distributed as part of the Tcl source code distribution.

Author:Don Porter
D. Richard Hipp
Kevin Kenny
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:14 Sep 2010
Posting History:

TIP #377: Portably Determining the Number of Processors in the System
$Revision: 1.2 $

A C API and Tcl command are proposed which return the number of CPUs (a.k.a. Processors a.k.a. Cores) in the system, portably wrapping the OS specific APIs for doing so.

Author:Andreas Kupries
Type:Project
Tcl Version:8.6
State:Withdrawn
Vote:Pending
Created:13 Sep 2010
Posting History:

TIP #378: Fixing the Performance of TIP 280
$Revision: 1.3 $

A Tcl command is proposed which enable a user of Tcl to disable the most performance intensive parts of the TIP #280 implementation, at the loss of some detail.

Author:Andreas Kupries
Jeff Hobbs
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:04 Oct 2010
Posting History:

TIP #379: Add a Command for Delivering Events Without Tk
$Revision: 1.9 $

This proposal defines the hook ensemble command, which implements the Subject/Observer pattern. It allows subjects, which may be modules, objects, widgets, and so forth, to synchronously call hooks which may be bound to an arbitrary number of subscribers, called observers. A subject may call any number of distinct hooks, and any number of observers can bind callbacks to a particular hook called by a particular subject. Hook bindings can be queried and deleted.

Author:Will Duquette
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:17 Oct 2010
Posting History:
Keywords:event

TIP #380: TclOO Slots for Flexible Declarations
$Revision: 1.5 $

This TIP proposes a system that enables a more flexible system of handling all declarations relating to classes and objects that resolve to control over a list of things. This system, which will use TclOO to configure itself, will enable the scripting of additional mechanisms for manipulating declarations and will also include a change to the default behavior of the filter and variable declarations, where the standard "replace everything" behavior was found to be non-obvious in practice. In order to enable this, the exact behavior of the unknown method mechanism will be slightly varied.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:20 Oct 2010
Posting History:

TIP #381: Call Chain Introspection and Control
$Revision: 1.9 $

This TIP proposes mechanisms for inspecting the TclOO call chain for a particular method, both externally via info and from within a call to that method. It also proposes a mechanism that will allow the traversal of the call chain in a more controlled way than at present with the next command.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:20 Oct 2010
Posting History:
Keywords:TclOO, iTcl

TIP #382: Let tk_getSaveFile ignore file overwrites
$Revision: 1.6 $

This document describes new option for tk_getSaveFile named -confirmoverwrite to control whether a warning dialog is displayed when selecting an existing file for overwriting.

Author:Pawel Salawa
Don Porter
Type:Project
Tcl Version:8.5.11
State:Final
Vote:Done
Created:02 Nov 2010
Posting History:
Keywords:Tk, dialog

TIP #383: Injecting Code into Suspended Coroutines
$Revision: 1.4 $

This proposes a new command, coroinject, that allows a programmer to inject arbitrary code into a suspended coroutine, for execution on next resumption.

Author:Alexandre Ferrieux
Miguel Sofer
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:03 Dec 2010
Posting History:
Keywords:debugging, coroutine,
yielded

TIP #384: Add File Alteration Monitoring to the Tcl Core
$Revision: 1.4 $

This TIP proposes to add capabilities for monitoring changes in the file system to the Tcl core.

Author:Reinhard Max
Gerald W. Lester
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:02 Dec 2010
Posting History:
Keywords:kqueue, inotify,
dnotify, gamin, FSevents,
fam

TIP #385: Functional Traces On Variables
$Revision: 1.6 $

Functional traces are new variants of variable traces, that rely purely on value passing rather than variable updating. Applied to array traces, they allow a much more efficient implementation of various storage backends.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:13 Feb 2011
Posting History:
Keywords:Tcl, traces

TIP #386: Relocation of Tcl/Tk Source Control Repositories
$Revision: 1.4 $

This TIP describes the changed locations and procedures for source control for Tcl/Tk.

Author:Kevin B. Kenny
Kevin Kenny
Type:Informative
State:Draft
Vote:Pending
Created:01 Mar 2011
Posting History:
Keywords:Fossil, DVCS

TIP #387: Unified Yield Command Syntax
$Revision: 1.7 $

This document describes the syntax of a unified yield command, which is designed so that it can combine all features of the various yield-related commands proposed during 2010.

Author:Lars Hellström
Type:Project
Tcl Version:8.6
State:Withdrawn
Vote:Pending
Created:30 May 2011
Posting History:
Obsoleted By:TIP #396
Keywords:Tcl, coroutine

TIP #388: Extending Unicode literals past the BMP
$Revision: 1.7 $

This TIP proposes to extend Tcl's syntax in order to be able to cope with quoted forms of Unicode characters outside the Basic Multilingual Plane.

Author:Jan Nijtmans
Jan Nijtmans
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:10 Aug 2011
Posting History:
Discussions To:Tcl Core list
Keywords:Tcl

TIP #389: Full support for Unicode 8.0 and later
$Revision: 1.4 $

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

Author:Jan Nijtmans
Jan Nijtmans
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:23 Aug 2011
Posting History:
Discussions To:Tcl Core list
Keywords:Tcl

TIP #390: A Logging API for Tcl
$Revision: 1.1 $

This TIP proposes a standard API for logging in Tcl applications, both at the Tcl and C level.

Author:Jeff Rogers
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:27 Oct 2011
Posting History:

TIP #391: Support for UDP Sockets in Tcl
$Revision: 1.3 $

This proposal is to add UDP socket support to the core in a clean and unobtrusive way.

Author:Jeff Rogers
Type:Project
Tcl Version:8.7
State:Withdrawn
Vote:Pending
Created:26 Oct 2011
Posting History:
Obsoleted By:TIP #409

TIP #392: Allow Bignums to be Disabled at Runtime on a Per-Interp Basis
$Revision: 1.1 $

This TIP proposes the ability to enable or disable all use of bignums at runtime on a per-interpreter basis. The mechanism being presented to accomplish this goal has been designed to be generic enough so that it can be used for other per-interpreter configuration parameters in the future.

Author:Joe Mistachkin
Type:Project
Tcl Version:8.5
State:Draft
Vote:Pending
Created:30 Oct 2011
Posting History:
Keywords:bignum, runaway,
safe, math, precision,
integer, tcl

TIP #393: Add -command Option to lsearch
$Revision: 1.2 $

This document describes new option for lsearch named -command that lets the developer define a custom comparision algorithm for searching for an element of a list.

Author:Pawel Salawa
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:25 Apr 2011
Posting History:

TIP #394: Platform-Independent Handling of Contemporary Mice
$Revision: 1.1 $

This TIP proposes a change to Tk's Events such as to support new features of modern pointer devices (mice) in a platform-independent way.

Author:Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:30 Nov 2011
Posting History:

TIP #395: New 'string is entier' Command
$Revision: 1.5 $

The string is command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. One common case is missing: checking if a value is an integer number without particular storage width, unlike string is integer and string is wideinteger. This document proposes to augment the string is command with a string is entier.

Author:Jos Decoster
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:13 Dec 2011
Posting History:
Discussions To:comp.lang.tcl
Obsoletes:TIP #347
Keywords:Tcl

TIP #396: Symmetric Coroutines, Multiple Args, and yieldto
$Revision: 1.8 $

A new command, yieldto, is proposed that allows a corouting to suspend its execution and tailcall into an arbitrary command. If the new command is another coroutine's resume command, we obtain symmetric coroutines. If the new command is the return command, we obtain the ability for a coroutine to present an unusual status (e.g., error, break, continue or return) to its caller. The yieldto command also marshals the arguments as a list when the yielding coroutine is next invoked, allowing for the transmission of multiple arguments.

Author:Kevin Kenny
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:11 Feb 2012
Posting History:
Obsoletes:TIP #372
Keywords:coroutine, yield,
yieldto

TIP #397: Extensible Object Copying
$Revision: 1.4 $

This TIP proposes a mechanism whereby an object or class can provide additional control over how it gets copied to a new one by the oo::copy command.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:13 Feb 2012
Posting History:
Keywords:Tcl, TclOO, copy, clone

TIP #398: Quickly Exit with Non-Blocking Blocked Channels
$Revision: 1.7 $

This TIP reverts an age-old documented behavior that is useless, and the ill effects of which cannot be circumvented: Tcl's insistence on flushing even non-blocking channels on exit.

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:24 Feb 2012
Posting History:
Keywords:close, exit, flush,
blocking, nonblocking

TIP #399: Dynamic Locale Changing for msgcat
$Revision: 1.18 $

This TIP adds dynamic locale switching capabilities to the msgcat package.

Author:Harald Oehlmann
Type:Project
Tcl Version:8.6
State:Accepted
Vote:Done
Created:27 Mar 2012
Posting History:
Obsoleted By:TIP #412
Keywords:Tcl, localization,
msgcat

TIP #400: Setting the Compression Dictionary and Other 'zlib' Updates
$Revision: 1.7 $

Sometimes it is necessary to set the compression dictionary so that a sequence of bytes may be compressed more efficiently (and decompressed as well). This TIP exposes that functionality. It also reduces the number of inconsistencies in the zlib command.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:30 Mar 2012
Posting History:
Keywords:Tcl, zlib

TIP #401: Comment Words with Leading {#}
$Revision: 1.5 $

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). The change concerns both words in scripts and, more importantly, words in lists.

Author:Lars Hellström
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:29 Apr 2012
Posting History:

TIP #402: General Platform UNC Support
$Revision: 1.2 $

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. It could be implemented through a VFS extension, but there is one problem: File normalization on UNIX collapes multiple slashes into a single slash, so this would convert the UNC path into a normal path. This makes it impossible to implement a VFS extension which uses // as prefix, implementing connection to a Samba server using the UNC path format.

Author:Jan Nijtmans
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:16 Jul 2011
Posting History:
Discussions To:Tcl Core list
Keywords:Tcl

TIP #403: Web Colors for Tk
$Revision: 1.3 $

This TIP proposes some modifications in the RGB values of various colors as used in Tk, bringing those colors more in line with various W3C standards.

Author:Jan Nijtmans
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:17 Jul 2011
Posting History:
Discussions To:Tcl Core list
Keywords:Tk

TIP #404: Let Message Catalogs get the Locale from their File Name
$Revision: 1.9 $

This TIP proposes a mechanism for coupling locales more strongly to the names of the files that define them, an already-recommended practice, so as to make it less error-prone to produce message catalogs.

Author:Harald Oehlmann
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:17 Jul 2011
Posting History:
Discussions To:Tcl Core list
Keywords:msgcat, convention

TIP #405: Add Collecting Loops, the 'lmap' and 'dict map' Commands
$Revision: 1.10 $

The lmap command is a collecting loop with the semantics of foreach. When the loop begins an accumulator is set to an empty list. In any iteration where the body of the loop completes normally, the result of the body is appended to the accumulator list. The return value for lmap is the contents of the accumulator. The dict map command is an equivalent collecting loop with the semantics based off dict for.

Author:Trevor Davel
Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:31 Jul 2012
Posting History:
Keywords:Tcl, mapeach, loop,
accumulator

TIP #406: "C" is for Cookie
$Revision: 1.4 $

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 just what is shared and stored, and where.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.6
State:Draft
Vote:Pending
Created:01 Aug 2012
Posting History:

TIP #407: The String Representation of Tcl Lists: the Gory Details
$Revision: 1.7 $

This document explains some of the details behind Tcl lists; it is there to expose documentation that was previously only present as comments in Tcl's source code.

Author:Donal K. Fellows
Kevin Kenny
Don Porter
Type:Informative
State:Draft
Vote:No voting
Created:06 Aug 2012
Posting History:

TIP #408: Allow Any Command for expr Functions
$Revision: 1.1 $

Proposed expansion of what constitutes a function in an expr expression.

Author:Brian Griffin
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:17 Aug 2012
Posting History:

TIP #409: UDP in Tcl
$Revision: 1.19 $

This TIP adds support for UDP in Tcl, with a pure event approach to packet reception (as opposed to hijacking the existing channel infrastructure).

Author:Alexandre Ferrieux
Colin McCormack
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:17 Aug 2012
Posting History:
Obsoletes:TIP #391
Keywords:udp, datagram, message

TIP #410: Three Features of scan Adapted for binary scan/format
$Revision: 1.2 $

This proposal specifies three new features for binary scan and binary format that already exist similarly for scan, namely: # for consuming a count-value from the parameter list (like "scan %*"), p for writing current position to a consumed parameter variable (like "scan %n") and returning a single parsed value if no parameter is left.

Author:Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:26 Aug 2012
Posting History:

TIP #411: Improved Channel Introspection via "chan info"
$Revision: 1.4 $

This document describes new subcommand for chan, chan info, that provides a unified interface to deeper introspection of information about a particular channel.

Author:Pawel Salawa
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:31 Aug 2012
Posting History:

TIP #412: Dynamic Locale Changing for msgcat with On-Demand File Load
$Revision: 1.9 $

This TIP adds dynamic locale switching capabilities to the msgcat package.

Author:Harald Oehlmann
Harald Oehlmann
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:27 Mar 2012
Posting History:
Obsoletes:TIP #399
Keywords:Tcl, localization,
msgcat

TIP #413: Unicode Support for 'string is space' and 'string trim'
$Revision: 1.5 $

This TIP is in fact a re-consideration of TIP #318, in that it attempts to define, once and for all, for which characters string is space should return 1 and which characters string trim should trim.

Author:Jan Nijtmans
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:08 Oct 2012
Posting History:
Discussions To:Tcl Core list
Keywords:Tcl

TIP #414: Add (back) Tcl_InitSubsystems as Public API
$Revision: 1.25 $

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.

Author:Brian Griffin
Jan Nijtmans
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:15 Oct 2012
Posting History:

TIP #415: Enable Easy Creation of Circular Arc Segments
$Revision: 1.11 $

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 extension to support the more general elliptical arc segments is outside the scope of this TIP.

Author:Simon Geard
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:16 Oct 2012
Posting History:
Keywords:Tk

TIP #416: New Options for 'load': -global and -lazy
$Revision: 1.5 $

This TIP proposes enhancing the Tcl load command with the additional options -global and -lazy. It is implemented on top of TIP #357, by defining a meaning to the flags parameter already defined there.

Author:Christian Delbaere
Jan Nijtmans
Jan Nijtmans
Type:Project
Tcl Version:8.6
State:Final
Vote:Done
Created:31 Oct 2012
Posting History:

TIP #417: Use Explicit Option Names for "file tempfile"
$Revision: 1.1 $

This TIP proposes altering the way in which optional arguments are specified to file tempfile (see TIP #210) to make them easier to understand and extend in the future.

Author:Christophe Curis
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:16 Nov 2012
Posting History:
Keywords:Tcl, future expansion,
extensibility

TIP #418: Add [binary] Subcommands for In-Place Modification
$Revision: 1.3 $

This TIP proposes adding new subcommands to the binary to better enable parsing and manipulation of binary values.

Author:Jeff Rogers
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:27 Aug 2012
Posting History:
Keywords:Tcl, binary data

TIP #419: A New Command for Binding to Tk Events
$Revision: 1.2 $

This TIP proposes a more modern mechanism for binding callbacks to Tk's events.

Author:Jeff Rogers
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:28 Aug 2012
Posting History:

TIP #420: 'vexpr', a Vector Expression Command
$Revision: 1.6 $

This TIP proposes to add a new command to Tcl for manipulating vectors and related mathematical objects. The command, vexpr, will provide C-optimized implementations of generally useful scalar, 2D, 3D and affine transforms. vexpr is a complement to expr, and expects to take in vector arguments and return vector results.

Author:Sean Woods
Andreas Kupries
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:15 Nov 2012
Posting History:

TIP #421: A Command for Iterating Over Arrays
$Revision: 1.1 $

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

Author:Karl Lehenbauer
Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:28 Nov 2012
Posting History:

TIP #422: Don't Use stdarg.h/va_list in Public API
$Revision: 1.1 $

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.

Author:Jan Nijtmans
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:02 Jan 2013
Posting History:
Keywords:Tcl, API removal,
varargs

TIP #423: Formatting Timestamps with Milliseconds
$Revision: 1.1 $

This TIP describes a change to clock format to allow it to handle timestamps with sub-second accuracy.

Author:Thomas Perschak
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:07 Jun 2013
Posting History:
Keywords:Tcl, time, millisecond resolution

TIP #424: Improving [exec]
$Revision: 1.8 $

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

Author:Alexandre Ferrieux
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:07 Jul 2013
Posting History:
Keywords:Tcl, subprocess,
execution

TIP #425: Internationalization of Default Panic Callback on Windows
$Revision: 1.6 $

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 code page like CP1252. When using characters outside the ASCII range, that does not give the expected output in the console. This TIP proposes to add a new Console panic proc to the stub library, and modify the Tcl_Main() macro to use it.

Author:Jan Nijtmans
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:17 Jul 2013
Posting History:
Keywords:Tcl, platform integration,
i18n

TIP #426: Determining the "Type" of Commands
$Revision: 1.2 $

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, namespace origin or interp alias.

Author:Donal K. Fellows
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:31 Jul 2013
Posting History:
Keywords:introspection,
commands, Tcl, Tk

TIP #427: Introspection of Asynchronous Socket Connection
$Revision: 1.13 $

This TIP describes a method to introspect the asynchronous connection process by an extension of the fconfigure interface in addition to fconfigure -error. This will enable better control over the asynchronous connection process, even in cases where the event loop is not in use.

Author:Reinhard Max
Harald Oehlmann
Reinhard Max
Type:Project
Tcl Version:8.6.4
State:Final
Vote:Done
Created:16 Mar 2014
Posting History:
Keywords:async socket connect,
introspection,
IPV6

TIP #428: Produce Error Dictionary from 'fconfigure -error'
$Revision: 1.26 $

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.

Author:Harald Oehlmann
Harald Oehlmann
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:16 Mar 2014
Posting History:
Keywords:socket, non-blocking,
error reporting,
option dictionary

TIP #429: A 'string' Subcommand for Concatenation
$Revision: 1.6 $

This TIP describes a new (sub)command string cat to concatenate an arbitrary number of strings.

Author:Andreas Leitgeb
Alexandre Ferrieux
Type:Project
Tcl Version:8.6.2
State:Final
Vote:Done
Created:27 Jul 2014
Posting History:
Keywords:Tcl, cat, scriptlet result

TIP #430: Add basic ZIP archive support to Tcl
$Revision: 1.6 $

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

Author:Sean Woods
Donal Fellows
Poor Yorick
Harald Oehlmann
Type:Project
Tcl Version:8.6.3
State:Draft
Vote:Pending
Created:03 Sep 2014
Posting History:
Keywords:virtual filesystem,
zip, tclkit, boot,
bootstrap

TIP #431: Add 'tempdir' Subcommand to 'file'
$Revision: 1.2 $

This TIP proposes adding a new tempdir subcommand to the file command, simplifying the effort required in creating uniquely named temporary directories at the scripting level.

Author:Kevin Pasko
Type:Project
Tcl Version:8.6.4
State:Draft
Vote:Pending
Created:10 Sep 2014
Posting History:
Keywords:Tcl, directory, file

TIP #432: Support for New Windows File Dialogs in Vista and Later
$Revision: 1.4 $

This TIP proposes changing the tk_getOpenFile, tk_getSaveFile and tk_chooseDirectory dialog box commands to display the new style file dialogs available on newer Windows versions.

Author:Ashok P. Nadkarni
Type:Project
Tcl Version:8.6.3
State:Final
Vote:Done
Created:20 Sep 2014
Posting History:

TIP #433: Add %M binding substitution
$Revision: 1.7 $

This TIP proposes one new binding substitution, %M, to access the number of script-based binding patterns matched so far for the event.

Author:Joe Mistachkin
Brian Griffin
Don Porter
Type:Project
Tcl Version:8.6.4
State:Final
Vote:Done
Created:25 Feb 2015
Posting History:

TIP #434: Specify Event Sources for 'vwait'
$Revision: 1.1 $

This TIP proposes to extend the vwait Tcl command so the event sources can be specified, as is possible with the Tcl_DoOneEvent C command.

Author:Jos Decoster
Type:Project
Tcl Version:8.6
State:Draft
Vote:Pending
Created:26 Feb 2015
Posting History:

TIP #435: Safe Mutex Disposal API
$Revision: 1.7 $

This TIP proposes a new C API for improving mutex deletion.

Author:Donal Fellows
Joe Mistachkin
Type:Project
Tcl Version:8.6.5
State:Rejected
Vote:Done
Created:16 May 2015
Posting History:

TIP #436: Improve TclOO isa Introspection
$Revision: 1.3 $

The various info object isa introspectors should not produce errors when given a non-object; the set membership tests should simply return boolean false in those cases.

Author:Donal Fellows
Type:Project
Tcl Version:8.6.5
State:Final
Vote:Done
Created:30 Jun 2015
Posting History:

TIP #437: Tk panedwindow options for proxy window
$Revision: 1.5 $

The proxy window (i.e., the moving sash) of the Tk paned window widget is hard to see in some circumstances. This TIP adds three options allowing more control over the display of the proxy so that its visibility can be enhanced where required.

Author:Eric Boudaillier
François Vogel
Type:Project
Tcl Version:8.5.18
State:Final
Vote:Done
Created:14 Jul 2015
Posting History:
Keywords:Tk

TIP #438: Ensure Line Metrics are Up-to-Date
$Revision: 1.16 $

The text widget calculates line metrics asynchronously, for performance reasons. Because of this, some commands of the text widget may return wrong results if the asynchronous calculations are not over. This TIP is about providing the user with ways to ensure that line metrics are up-to-date.

Author:François Vogel
Jan Nijtmans
Type:Project
Tcl Version:8.6.5
State:Final
Vote:Done
Created:01 Nov 2015
Posting History:
Keywords:Tk, text

TIP #439: Semantic Versioning
$Revision: 1.8 $

The version schema used by Tcl and Tk has the form MAJOR.MINOR.PATCH, which is the same schema used by "Semantic Versioning" [6]. For alpha and beta releases the schema is MAJOR.MINORaPATCH resp MAJOR.MINORbPATCH, which is not following the "Semantic Versioning" rules, but it's close. This TIP proposes to start using "Semantic Versioning" for Tcl and Tk, starting with Tcl/Tk 8.7, without making it mandatory for extensions and Tcl modules: existing extensions and modules written for Tcl/Tk 8.6 or lower must cooperate unmodified with later 8.x versions as well.

Author:Jan Nijtmans
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:08 Dec 2015
Posting History:

TIP #440: Add engine to tcl_platform Array
$Revision: 1.13 $

This TIP proposes a mechanism for determining the implementation of the Tcl language currently in use.

Author:Joe Mistachkin
Jan Nijtmans
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:14 Jan 2016
Posting History:
Keywords:language implementation,
platform

TIP #441: Add -justify Configuration Option to the listbox Widget
$Revision: 1.3 $

Despite the listbox widget already having numerous configuration options, some users need more refinements and have requested the possibility to control the justification of the text displayed in the items of the listbox. This TIP proposes to add this option.

Author:François Vogel
François Vogel
Type:Project
Tcl Version:8.6.5
State:Final
Vote:Done
Created:18 Jan 2016
Posting History:
Keywords:Tk, listbox

TIP #442: Display text in progressbars
$Revision: 1.11 $

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

Author:René Zaumseil
Kevin B Kenny
Andreas Leitgeb
Kevin Kenny
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:17 Feb 2016
Posting History:
Keywords:Tk

TIP #443: More Tag Configuration Options for the Text Widget
$Revision: 1.9 $

Despite the text widget already has numerous configuration options, some users need more refinements and have requested new tag configuration options. This TIP proposes to add these options, when deemed relevant.

Author:François Vogel
Type:Project
Tcl Version:8.6.6
State:Final
Vote:Done
Created:09 Feb 2016
Posting History:
Keywords:Tk

TIP #444: Add "weekdays" unit in clock add
$Revision: 1.6 $

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

Author:Pietro Cerutti
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:23 Feb 2016
Posting History:

TIP #445: Tcl_ObjType Utility Routines
$Revision: 1.7 $

Proposes additional public routines useful for extensions that implement custom 'Tcl_ObjTypes.

Author:Don Porter
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:18 Mar 2016
Posting History:

TIP #446: Introspect Undo/Redo Stack Depths
$Revision: 1.9 $

Tk features a generic undo/redo mechanism (see TIP #104). This is used in practice by the text widget, within the edit command. The present TIP proposes to add two new subcommands to the edit command allowing the user to know whether undo and redo is possible for a text widget.

Author:François Vogel
Type:Project
Tcl Version:8.6.6
State:Final
Vote:Done
Created:05 Apr 2016
Posting History:
Keywords:Tk

TIP #447: Execution Time Verbosity Levels in tcltest::configure
$Revision: 1.6 $

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 report information about the execution time of tests.

Author:Pietro Cerutti
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:20 Apr 2016
Posting History:
Keywords:Tcl, tcltest

TIP #448: Update Tcl_SetNotifier to Reinitialize Event Loop
$Revision: 1.1 $

Tcl_SetNotifier cannot be used in its current state to replace a notifier than has been initialized because pointers to the old initialized value are kept in the interp's private data. This TIP proposes a way to change that.

Author:Jeff Rogers
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:24 May 2016
Posting History:
Keywords:Tcl, C API

TIP #449: [text] undo/redo to Return Range of Characters
$Revision: 1.12 $

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.

Author:François Vogel
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:07 Jun 2016
Posting History:
Keywords:Tk

TIP #450: Add [binary] subcommand "set" for in-place modification
$Revision: 1.1 $

This TIP proposes a simpler extension of the [binary] command than the related TIP #418, namely just a subcommand set that updates an existing byte array in a variable instead of creating a new one like binary format. It does not propose an extension of the various formatting codes.

Author:Arjen Markus
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:18 Jul 2016
Posting History:
Keywords:Tcl, binary data

TIP #451: Modify [update] to Give Full Script Access to Tcl_DoOneEvent
$Revision: 1.2 $

This TIP add flags to update to represent all the flag values available to the underlying API, Tcl_DoOneEvent(), exposing them to script access.

Author:Colin McCormack
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:10 Aug 2016
Posting History:
Keywords:Tcl, event loop

TIP #452: Add "stubs" Package to or Along Side of TclTest
$Revision: 1.8 $

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

Author:Gerald Lester
Gerald W. Lester
Gerald W. Lester
Type:Project
Tcl Version:8.6
State:Draft
Vote:Pending
Created:10 Aug 2016
Posting History:

TIP #453: Tcl Based Automation for tcl/pkgs
$Revision: 1.2 $

This TIP proposes replacing the make package process currently employed by the core with a Tcl-based build automation tool.

Author:Sean Woods
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:13 Sep 2016
Posting History:
Keywords:Build tooling

TIP #454: Automatically Resize Frames After Last Child Removed
$Revision: 1.19 $

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.

Author:Harald Oehlmann
Harald Oehlmann
Francois Vogel
Type:Project
Tcl Version:8.6.6
State:Draft
Vote:Pending
Created:21 Sep 2016
Posting History:
Keywords:Tk

TIP #455: Extensions to [vwait]: Variable Sets and Scripted Access to Tcl_DoOneEvent
$Revision: 1.2 $

This TIP generalizes the vwait command to allow waiting on zero, one, or more variable changes, on zero or more file events, to time-limit the wait, and to control on which kinds of events is to be waited by partially exposing the underlying API, namely Tcl_DoOneEvent().

Author:Christian Werner
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:07 Oct 2016
Posting History:
Keywords:Tcl, event loop

TIP #456: Extend the C API to Support Passing Options to TCP Server Creation
$Revision: 1.6 $

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 a new API function, Tcl_OpenTcpServerEx, that takes extra options.

Author:LemonBoy
lime boy
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:18 Nov 2016
Posting History:
Keywords:Tcl, socket, SO_REUSEPORT,
SO_REUSEADDR

TIP #457: Add Support for Named Arguments
$Revision: 1.22 $

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

Author:Mathieu Lafon
Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:21 Nov 2016
Posting History:
Keywords:Tcl, procedure, argument handling

TIP #458: Add Support for epoll() and kqueue() in the Notifier
$Revision: 1.6 $

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.

Author:Lucio Andrés Illanes Albornoz
Lucio Andrés Illanes Albornoz
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:24 Nov 2016
Posting History:
Keywords:event loop, scalability

TIP #459: Tcl Package Introspection Improvements
$Revision: 1.6 $

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

Author:Jan Nijtmans
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:08 Dec 2016
Posting History:
Keywords:Tcl, package

TIP #460: An Alternative to Upvar
$Revision: 1.5 $

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.

Author:Don Hathway
Type:Project
Tcl Version:9.0
State:Draft
Vote:Pending
Created:08 Dec 2016
Posting History:
Keywords:Tcl, variable, link,
upvar

TIP #461: Separate Numeric and String Comparison Operators
$Revision: 1.6 $

This TIP proposes to complete the separation between string and numeric comparison operations in [expr] and related commands ([for], [if], [while], etc.). It introduces new comparison operators ge, gt, le, and lt, (along with the corresponding commands in the ::tcl::mathop namespace), and encourages programmers to restrict the six operators ==, >=, >, <=, < and != to comparisons of numeric values.

Author:Kevin B Kenny
Kevin B Kenny
Kevin Kenny
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:24 Jan 2017
Posting History:
Keywords:Tcl, expression

TIP #462: Add New [info ps] Ensemble for Subprocess Management
$Revision: 1.4 $

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

Author:Frédéric Bonnet
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:23 Jan 2017
Posting History:

TIP #463: Command-Driven Substitutions for regsub
$Revision: 1.6 $

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 and safely.

Author:Donal Fellows
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:11 Feb 2017
Posting History:
Keywords:Tcl, regular expression

TIP #464: Support for Multimedia Keys on Windows
$Revision: 1.6 $

This TIP proposes adding support for the multimedia keys present on many modern keyboards.

Author:Ralf Fassel
Andreas Leitgeb
Type:Project
Tcl Version:8.5
State:Final
Vote:Done
Created:28 Jan 2017
Posting History:
Keywords:Tk, keyboard, keycode

TIP #465: Change Rule 8 of the Dodekalogue to Cut Some Corner Cases
$Revision: 1.2 $

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" for confusion, or as accidentally legal interpretation of mistyped Tcl code.

Author:Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:03 Mar 2017
Posting History:

TIP #466: Revised Implementation of the Text Widget
$Revision: 1.11 $

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.

Author:François Vogel
Gregor Cramer
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:10 Mar 2017
Posting History:
Keywords:Tk, text widget

TIP #467: Move TIP Collection to Fossil
$Revision: 1.5 $

The Tcl TIP collection shall be moved to Fossil and the process of managing TIPs shall use Fossil as much as possible. The TIP format will be changed from a TIP-specific form to Markdown.

Author:Mark Janssen
Type:Process
State:Draft
Vote:Pending
Created:14 Mar 2017
Posting History:
Keywords:migration

TIP #468: Support Passing TCP listen Backlog Size Option to TCP Socket Creation
$Revision: 1.1 $

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 backlog value. Currently, the SOMAXCONN macro is used as the default. Backlog values are hard coded to a minimum of 100. The backlog values of 1 and 0 are useful on the Linux platform.

Author:Shannon Noe
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:03 Apr 2017
Posting History:
Keywords:Tcl, socket, SOMAXCONN

TIP #469: A Callback for Channel-Exception Conditions
$Revision: 1.3 $

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 channel, while ignoring read- or writability.

Author:Andreas Leitgeb
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:16 Apr 2017
Posting History:
Keywords:Tcl, event handling

TIP #470: Reliable Access to OO Definition Context Object
$Revision: 1.4 $

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

Author:Donal Fellows
Type:Project
Tcl Version:8.7
State:Final
Vote:Done
Created:23 Apr 2017
Posting History:
Keywords:TclOO, metaprogramming

TIP #471: Add [info linkedname] Introspection Command
$Revision: 1.1 $

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

Author:Mathieu Lafon
Type:Project
Tcl Version:8.7
State:Draft
Vote:Pending
Created:05 May 2017
Posting History:

TIP #472: Add Support for 0d Radix Prefix to Integer Literals
$Revision: 1.8 $

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

Author:Venkat Iyer
Brian Griffin
Type:Project
Tcl Version:8.7
State:Accepted
Vote:Done
Created:25 May 2017
Posting History:

TIP #473: Allow a Defined Target Namespace in oo::copy
$Revision: 1.4 $

This TIP adds functionality to oo::copy to allow the created copy to have a defined namespace, much as oo::class's createWithNamespace method allows such a namespace to be given on normal object creation.

Author:Donal Fellows
Type:Project
Tcl Version:8.6.7
State:Final
Vote:Done
Created:06 Jun 2017
Posting History:
Keywords:Tcl, missing functionality,
bugfix

TIP #10000: Dummy Proposal for Testing Editing Interfaces
$Revision: 1.216 $

This TIP proposes to complete the separation between string and numeric comparison operations in [expr] and related commands ([for], [if], [while], etc.). It introduces new comparison operators ge, gt, le, and lt, (along with the corresponding commands in the ::tcl::mathop namespace), and to restrict the six operators ==, >=, >, <=, < and != to comparisons of numeric values.

Author:Don Porter
Andreas Kupries
Richard Suchenwirth
Kevin B KENNY
Jeff Hobbs
Vince Darley
Fabrice Pardo
Joe Mistachkin
Donal K. Fellows
Mark Janssen
Reinhard Max
Andreas Leitgeb
Andreas Kupries
Francois Vogel
KEVIN KENNY
Type:Informative
State:Draft
Vote:Pending
Created:03 Dec 2000
Posting History:

This is a test caption

This is an example long TIP reference https://tip.tcl-lang.org3.html that should be expanded in a renderer-specific way...

This is an example non-reference - index[3] - that should not be rendered as a link (to this document or anywhere else) at all. Note that the dashes in the previous sentence (with whitespace on each side) are candidates for rendering as long dashes (em-dashes) on output-media which support this.

Supported URLs

should be http, https, mailto, news, newsrc, ftp and gopher. Test here...

HTTP URL - http://purl.org/thecliff/tcl/wiki/

HTTP URL in brackets - [7]

HTTPS URL - https://sourceforge.net/

FTP URL - ftp://src.doc.ic.ac.uk/packages/tcl/tcl/

NEWS URL - news:comp.lang.tcl

MAILTO URL - fellowsd at cs dot man dot ac dot uk?subject=TIP3

Others (might not be valid links!) - gopher://info.mcc.ac.uk, newsrc:2845823825


Examples of sections and subsections

~Section Heading

Section text

~~Subsection Heading

Subsection text

~~~Subsubsection Heading

Subsubsection text

which renders as...

Section Heading

Section text

Subsection Heading

Subsection text

Subsubsection Heading

Subsubsection text


Copyright

This document has been placed in the public domain.


Powered by Tcl[Index] [History] [HTML Format] [Source Format] [LaTeX Format] [Text Format] [XML Format] [*roff Format (experimental)] [RTF Format (experimental)]

TIP AutoGenerator - written by Donal K. Fellows