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

Process TIPs
TIP #0 Process Final Tcl Core Team Basic Rules
TIP #2 Process Draft TIP Guidelines
TIP #3 Process Accepted TIP Format
TIP #13 Process Accepted Web Service for Drafting and Archiving TIPs
TIP #16 Process Accepted Tcl Functional Areas for Maintainer Assignments
TIP #23 Process Accepted Tk Toolkit Functional Areas for Maintainer Assignments
TIP #54 Process Withdrawn Using PURLs to Unite the Tcl Webspace
TIP #81 Process Deferred [incr Tcl] Functional Areas for Maintainer Assignments

Informational TIPs
TIP #1 Informative Active TIP Index
TIP #4 Informative Draft Tcl Release and Distribution Philosophy
TIP #12 Informative Draft The "Batteries Included" Distribution
TIP #24 Informative Draft Tcl Maintainer Assignments
TIP #28 Informative Draft How to be a good maintainer for Tcl/Tk
TIP #30 Informative Draft Tk Toolkit Maintainer Assignments
TIP #31 Informative Draft CVS tags in the Tcl and Tk repositories
TIP #43 Informative Draft How to be a TIP Editor
TIP #50 Informative Final Bundle [incr Tcl] with the Core Tcl distribution
TIP #55 Informative Draft Package Format for Tcl Extensions
TIP #66 Informative Draft Stand-alone and Embedded Tcl/Tk Applications
TIP #78 Informative Draft TEA 2.0 Definitions
TIP #108 Informative Final Summary of Changes to Generic Tcl/Tk Code to Enable Mac OS X Port
TIP #190 Informative Draft Implementation Choices for Tcl Modules
TIP #191 Informative Draft Managing Tcl Packages and Modules in a Multi-Version Environment
TIP #247 Informative Draft Tcl/Tk Engineering Manual
TIP #249 Informative Draft Unification of Tcl's Parsing of Numbers
TIP #308 Informative Final Tcl Database Connectivity (TDBC)
TIP #311 Informative Draft Tcl/Tk 8.6 Release Calendar
TIP #350 Informative Draft Tcl Database Connectivity - Corrigenda
TIP #352 Informative Draft Tcl Style Guide
TIP #10000 Informative Draft Dummy Proposal for Testing Editing Interfaces

Project TIPs
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 #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 #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 #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 #29 Project (9.0) Rejected Allow array syntax for Tcl lists
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 #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 #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 #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 #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 #79 Project (8.4) Final Add Deletion Callback to Tcl_CreateObjTrace
TIP #80 Project (8.4) Final Additional Options for 'lsearch'
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.7) Draft Add Encoding Abilities to the [dde] Command
TIP #107 Project (8.4) Final Fix the 2-second "raise delay" in Tk
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.7) Draft 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 #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 #248 Project (8.5) Final Integrate Tile into Tk as Ttk
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 (8.7) 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 #309 Project (8.7) Draft Expose the Expression Parsing
TIP #310 Project (8.6) Rejected Add a New Pseudo-Random Number Generator
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) Draft 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) Draft Align 'string is ...' to Type-Conversion Functions in 'expr'
TIP #348 Project (8.6) Draft Substituted 'errorStack' / 'traceback'
TIP #349 Project (8.7) Draft New "-cargo" option for every Tk widget
TIP #351 Project (8.7) Draft Add Striding Support to lsearch
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) Draft Export TclLoadFile
TIP #358 Project (8.7) Draft Suppress Empty List Element Generation from the Split Command

Search archive for TIPs containing:
 Advanced Search

TIP #0:
Tcl Core Team Basic Rules

TIP #1:
TIP Index

TIP #2: Draft
TIP Guidelines

TIP #3:
TIP Format

TIP #4: Draft
Tcl Release and Distribution Philosophy

TIP #5:
Make TkClassProcs and TkSetClassProcs Public and Extensible

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

TIP #7:
Increased resolution for TclpGetTime on Windows

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

TIP #9: Withdrawn
Tk Standard Library

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

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

TIP #12: Draft
The "Batteries Included" Distribution

TIP #13:
Web Service for Drafting and Archiving TIPs

TIP #14:
Access to Tk Photo Image Transparency

TIP #15:
Functions to List and Detail Math Functions

TIP #16:
Tcl Functional Areas for Maintainer Assignments

TIP #17:
Redo Tcl's filesystem

TIP #18:
Add Labels to Frames

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

TIP #20:
Add C Locale-Exact CType Functions

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

TIP #22:
Multiple Index Arguments to lindex

TIP #23:
Tk Toolkit Functional Areas for Maintainer Assignments

TIP #24: Draft
Tcl Maintainer Assignments

TIP #25: Withdrawn
Native tk_messageBox on Macintosh

TIP #26:
Enhancements for the Tk Text Widget

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

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

TIP #29: Rejected
Allow array syntax for Tcl lists

TIP #30: Draft
Tk Toolkit Maintainer Assignments

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

TIP #32:
Add Tcl_Obj-enabled counterpart to Tcl_CreateTrace

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

TIP #34: Withdrawn
Modernize TEA Build System

TIP #35:
Enhanced Support for Serial Communications

TIP #36:
Library Access to 'Subst' Functionality

TIP #37:
Uniform Rows and Columns in Grid

TIP #38: Withdrawn
Add Support for Default Bindtags

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

TIP #40: Withdrawn
Documentation Generator for Tcl Scripts

TIP #41:
Paned Window Tk Widget

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

TIP #43: Draft
How to be a TIP Editor

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

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

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

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

TIP #48:
Tk Widget Styling Support

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

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

TIP #51: Withdrawn
Native Menubutton on Macintosh

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

TIP #53: Withdrawn
Addition of 'assert' Command

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

TIP #55: Draft
Package Format for Tcl Extensions

TIP #56:
Standardize Call Interface to Tcl_Eval* Functions

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

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

TIP #59:
Embed Build Information in Tcl Binary Library

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

TIP #61:
Make TK_NO_SECURITY Run-Time Switchable

TIP #62:
Add Support for Command Tracing

TIP #63:
Add -compound Option to Menu Entries

TIP #64:
Improvements to Windows Font Handling

TIP #65: Rejected
Enhanced [info args]

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

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

TIP #68:
Dynamic Trace Result Handling

TIP #69: Draft
Improvements for the Tcl Hash Table

TIP #70: Withdrawn
A Relational Switch Control Structure

TIP #71: Withdrawn
Tk Bitmap Image Improvements

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

TIP #73:
Export Tcl_GetTime in the Public API

TIP #74:
wm stackorder command

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

TIP #76:
Make 'regsub' Return a String

TIP #77: Withdrawn
Support for Nested Paired Item Lists

TIP #78: Draft
TEA 2.0 Definitions

TIP #79:
Add Deletion Callback to Tcl_CreateObjTrace

TIP #80:
Additional Options for 'lsearch'

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

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

TIP #83: Withdrawn
Augment Tcl_EvalFile with Tcl_EvalChannel and Tcl_EvalUrl

TIP #84:
Add control for mouse movement filtering

TIP #85:
Custom Comparisons in Tcltest

TIP #86: Draft
Improved Debugger Support

TIP #87:
Allow Tcl Access to the Recursion Limit

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

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

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

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

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

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

TIP #94:
Add Listbox -activestyle Option

TIP #95:
Add [wm attributes] Command

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

TIP #97:
Moving Vertices of Canvas Items

TIP #98:
Adding Transparency Compositing Rules to Photo Images

TIP #99:
Add 'file link' to Tcl

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

TIP #101:
Export Tcltest Configuration

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

TIP #103: Rejected
Argument Expansion Command

TIP #104:
Generalization of the Tk Undo Subsystem

TIP #105: Withdrawn
Add Prefix Matching for Switch

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

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

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

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

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

TIP #111:
Dictionary Values and Manipulators

TIP #112:
Ensembles are Namespaces are Commands

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

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

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

TIP #116:
More Safety for Large Images

TIP #117: Withdrawn
Object Type Introspection

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

TIP #119:
Angled Text on a Canvas

TIP #120:
Restricted DDE Services

TIP #121:
Controlled Application Shutdown via Tcl_Exit

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

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

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

TIP #125:
Converting between Frame and Toplevel Windows

TIP #126: Draft
Rich Strings for Representation Persistence

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

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

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

TIP #130:
Unique DDE server names.

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

TIP #132:
Revised Floating-Point Conversions in Tcl

TIP #133: Draft
Extending [expr] Operators

TIP #134: Withdrawn
Subsystem Per-Thread Data Interfaces

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

TIP #136:
Large List Initialisation

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

TIP #138:
New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables

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

TIP #140:
Tracing Namespace Modifications

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

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

TIP #143:
An Interpreter Resource Limiting Framework

TIP #144: Withdrawn
Argument Expansion Syntax

TIP #145:
Enhanced Tk Font Handling

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

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

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

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

TIP #150:
Implement the Tk send Command for Windows

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

TIP #152:
New -detail Option for tk_messageBox

TIP #153:
Enhancing the [winfo toplevel] Command

TIP #154: Draft
Add Named Colors to Tk

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

TIP #156:
Language-Neutral Root Locale for Msgcat

TIP #157:
Argument Expansion with Leading {expand}

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

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

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

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

TIP #162: Draft
IPv6 Sockets for Tcl

TIP #163:
A [dict merge] Subcommand

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

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

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

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

TIP #168:
Cubic Bezier Curves on the Canvas

TIP #169:
Add Peer Text Widgets

TIP #170: Draft
Better Support for Nested Lists

TIP #171:
Change Default Bindings Behavior

TIP #172: Withdrawn
Improve UNIX Tk Look and Feel

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

TIP #174:
Math Operators as Commands

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

TIP #176:
Add String Index Values

TIP #177:
Add -stretch Option to panedwindow Widget

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

TIP #179:
Add -hide Option to panedwindow Widget

TIP #180: Draft
Add a Megawidget Support Core Package

TIP #181:
Add a [namespace unknown] Command

TIP #182:
Add [expr bool] Math Function

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

TIP #184:
Avoid Creating Unusable Variables

TIP #185: Rejected
Null Handling

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

TIP #187: Rejected
Procedures as Values

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

TIP #189:
Tcl Modules

TIP #190: Draft
Implementation Choices for Tcl Modules

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

TIP #192: Draft
Lazy Lists

TIP #193: Draft
Simple Syntax Help System

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

TIP #195:
A Unique Prefix Handling Command

TIP #196: Withdrawn
Tcl Commands as Values

TIP #197:
Unfocussed Text Widget Cursor Control

TIP #198: Draft
Image Command XPM Extension

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

TIP #200: Rejected
Listing the Values in an Array

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

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

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

TIP #204:
Virtual Events for Keyboard Traversal

TIP #205:
Use pkgconfig Database to Register Xft Support

TIP #206: Rejected
Add an [ftruncate] Command

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

TIP #208:
Add a 'chan' Command

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

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

TIP #211: Withdrawn
Add Full Stack Trace Capability

TIP #212:
Temporarily Opening out a Dictionary

TIP #213: Withdrawn
A Standard Dialog for Font Selection

TIP #214: Withdrawn
Add New Object Introspection Command

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

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

TIP #217:
Getting Sorted Indices out of Lsort

TIP #218:
Tcl Channel Driver Thread State Actions

TIP #219:
Tcl Channel Reflection API

TIP #220: Draft
Escalate Privileges in VFS Close Callback

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

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

TIP #223:
Full-Screen Toplevel Support for Tk

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

TIP #225: Draft
Arithmetic Series with Optimized Space Complexity

TIP #226:
Interface to Save and Restore Interpreter State

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

TIP #228: Draft
Tcl Filesystem Reflection API

TIP #229:
Scripted Control of Name Resolution in Namespaces

TIP #230:
Tcl Channel Transformation Reflection API

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

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

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

TIP #234:
Add Support For Zlib Compression

TIP #235:
Exposing a C API for Ensembles

TIP #236:
Absolute Positioning of Canvas Items

TIP #237:
Arbitrary-Precision Integers for Tcl

TIP #238: Draft
Fire Event when Widget Created

TIP #239: Draft
Enhance the 'load' Command

TIP #240: Draft
An Ensemble Command to Manage Processes

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

TIP #242:
Preselect Filter on tk_get*File Dialogs

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

TIP #244:
PNG Photo Image Support for Tk

TIP #245:
Discover User Inactivity Time

TIP #246: Draft
Unify Pattern Matching

TIP #247: Draft
Tcl/Tk Engineering Manual

TIP #248:
Integrate Tile into Tk as Ttk

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

TIP #250:
Efficient Access to Namespace Variables

TIP #251: Rejected
Enhance the 'list' Command

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

TIP #253: Draft
Consolidate Package-Related Commands

TIP #254:
New Types for Tcl_LinkVar

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

TIP #256:
Implement Tabular and Wordprocessor Style Tabbing

TIP #257:
Object Orientation for Tcl

TIP #258:
Enhanced Interface for Encodings

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

TIP #260:
Add Underline Option to Canvas Text Items

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

TIP #262: Draft
Background Images for Frames

TIP #263: Draft
Quantum Tcl

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

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

TIP #266: Rejected
Numbers are Commands

TIP #267:
Allow 'exec' to Ignore Stderr

TIP #268:
Enhance 'package' Version Handling

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

TIP #270:
Utility C Routines for String Formatting

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

TIP #272:
String and List Reversal Operations

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

TIP #274:
Right-Associativity for the Exponentiation Operator

TIP #275:
Support Unsigned Values in binary Command

TIP #276: Draft
Specify and Unify Variable Linking Commands

TIP #277: Draft
Create Namespaces as Needed

TIP #278: Draft
Fix Variable Name Resolution Quirks

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

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

TIP #281: Draft
Improvements in System Error Handling

TIP #282: Draft
Enhanced Expression Syntax

TIP #283: Draft
Modify Ensemble Command Resolution Behaviour

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

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

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

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

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

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

TIP #290: Draft
Registration of Custom Error Handler Scripts

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

TIP #292: Draft
Allow Unquoted Strings in Expressions

TIP #293:
Argument Expansion with Leading {*}

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

TIP #295: Draft
Enhance Arguments to lrange

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

TIP #297: Draft
Integer Type Introspection and Conversion

TIP #298:
Revise Shared Value Rules for Tcl_GetBignumAndClearObj

TIP #299:
Add isqrt() Math Function

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

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

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

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

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

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

TIP #306: Rejected
Auto-Naming Widgets

TIP #307:
Make TclTransferResult() Public

TIP #308:
Tcl Database Connectivity (TDBC)

TIP #309: Draft
Expose the Expression Parsing

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

TIP #311: Draft
Tcl/Tk 8.6 Release Calendar

TIP #312: Draft
Add More Link Types

TIP #313:
Inexact Searching in Sorted List

TIP #314:
Ensembles with Parameters

TIP #315:
Add pathSeparator to tcl_platform Array

TIP #316:
Portable Access Functions for Stat Buffers

TIP #317:
Extend binary Ensemble with Binary Encodings

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

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

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

TIP #321:
Add a [tk busy] Command

TIP #322:
Publish the NRE API

TIP #323:
Do Nothing Gracefully

TIP #324:
A Standard Dialog For Font Selection

TIP #325: Draft
System Tray Access

TIP #326:
Add -stride Option to lsort

TIP #327:
Proper Tailcalls

TIP #328:
Coroutines

TIP #329:
Try/Catch/Finally syntax

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

TIP #331:
Allow [lset] to Extend Lists

TIP #332:
Half-Close for Bidirectional Channels

TIP #333: Draft
New Variable and Namespace Resolving Interface

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

TIP #335:
An API for Detecting Active Interpreters

TIP #336:
Supported Access To interp->errorline

TIP #337:
Make TclBackgroundException() Public

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

TIP #339: Rejected
Case-Insensitive Package Names

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

TIP #341:
Multiple 'dict filter' Patterns

TIP #342: Draft
Dict Get With Default

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

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

TIP #345: Draft
Kill the 'identity' Encoding

TIP #346: Draft
Error on Failed String Encodings

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

TIP #348: Draft
Substituted 'errorStack' / 'traceback'

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

TIP #350: Draft
Tcl Database Connectivity - Corrigenda

TIP #351: Draft
Add Striding Support to lsearch

TIP #352: Draft
Tcl Style Guide

TIP #353:
NR-enabled Expressions for Extensions

TIP #354:
Minor Production-Driven TclOO Revisions

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

TIP #356:
NR-enabled Substitutions for Extensions

TIP #357: Draft
Export TclLoadFile

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

TIP #10000: Draft
Dummy Proposal for Testing Editing Interfaces

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.42 $

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.54 $

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.19 $

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

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.6 $

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:Deferred
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