TIP #3: TIP FORMAT ==================== Version: $Revision: 1.8 $ Author: Andreas Kupries Donal K. Fellows State: Accepted Type: Process Vote: Done Created: Thursday, 14 September 2000 URL: https://tip.tcl-lang.org3.html Post-History: ------------------------------------------------------------------------- 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 * easy to write, * easy to read, * easy to search, and * acceptable to the community at large. 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 [] 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: * Plain ASCII text without special markup for references or highlighting of important parts. * Mail-like header section containing the meta-information. * Uses indentation to distinguish section headers from section text. 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 [] 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] ... * The main disadvantage of SGML and XML based solutions is that they require a much more heavyweight infrastructure for editing and processing documents using them, like specialized editors and extensions for parsing. The format below on the other hand can be processed using pure tcl without extensions. with respect to the specialized editors it should be said that an editor operating on plain ASCII is possible too, but then the text will be difficult to read for humans because of the many occurrences of < and >, conflicting with the requirement to have an 'easy to read' format. While there are commercial products which can gloss over this, making the editing of XML fairly easy, not everyone currently has access to one or the desire to spend what might be quite a lot of money to acquire one. It is far better to let everyone continue to use their current favourite plain-text editor. * The main problem of HTML is that it is focused on visual and not logical markup. This will make it, although not impossible, but very difficult to parse documents for automatic handling. It is also a poor format for producing printed versions of the documentation from. Experience has also shown that different people have widely different ideas about how the content of TIP documents should be rendered into HTML, an indication that using the language would prove problematic! We can still use HTML as a generated format, but we should not write the documents themselves in it. * The approach of embedding tcl commands into the text of a TIP is (at least) as powerful as XML when it comes to automatic processing of documents but much more lightweight. Because of this it is seen as the best of the three rejected alternatives. It was rejected in the end because it was still seen as too heavyweight/demanding for the casual user with respect to learning, easy writing and reading. HEADER FORMAT =============== The general format of the header for a TIP is specified in RFC 822 []. 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 / 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 () 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 for suggesting this!) Obsoleted-By: Indicates a TIP number that renders this TIP obsolete. (Thanks to Joel Saunier 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 ) 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: * italicised emphasis is indicated by enclosing the text within inside double apostrophes "/" * emboldened emphasis is indicated by enclosing the text within inside triple apostrophes "*". 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 ) 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 , 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 and is installed (as a behind-the-scenes rendering engine) on a set of TIP documents [] with the source code to the rendering engine being available [] 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 '' And back to the top-level yet again. Now we show off both ''italic'' and '''bold''' text. ---- and the rendered result * 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 / And back to the top-level yet again. Now we show off both /italic/ and *bold* text. ------------------------------------------------------------------------- /Examples of index generation and image paragraphs./ Here is the code #index: #index:short #index: long #image:3example This is a test caption This is an example long TIP reference tip:3 that should be expanded in a renderer-specific way... This is an example non-reference - ''index[[3]]'' - that should not be rendered as a link (to this document or anywhere else) at all. Note that the dashes in the previous sentence (with whitespace on each side) are candidates for rendering as long dashes (em-dashes) on output-media which support this. Supported URLs: should be http, https, mailto, news, newsrc, ftp and gopher. Test here... > HTTP URL - http://purl.org/thecliff/tcl/wiki/ > HTTP URL in brackets - [http://wiki.tcl.tk] > HTTPS URL - https://sourceforge.net/ > FTP URL - ftp://src.doc.ic.ac.uk/packages/tcl/tcl/ > NEWS URL - news:comp.lang.tcl > MAILTO URL - mailto:fellowsd@cs.man.ac.uk?subject=TIP3 > Others (might not be valid links!) - gopher://info.mcc.ac.uk, newsrc:2845823825 and here is the rendered result. +-----------+-------------+-----------+----------------------------------------------------------------------------+ | Series ID | Type | State | Title | +-----------+-------------+-----------+----------------------------------------------------------------------------+ | TIP #0 | Process | Final | Tcl Core Team Basic Rules | | TIP #1 | Informative | Active | TIP Index | | TIP #2 | Process | Draft | TIP Guidelines | | TIP #3 | Process | Accepted | TIP Format | | TIP #4 | Informative | Draft | Tcl Release and Distribution Philosophy | | TIP #5 | Project | Final | Make TkClassProcs and TkSetClassProcs Public and Extensible | | TIP #6 | Project | Rejected | Include [Incr Tcl] in the Core Tcl distribution | | TIP #7 | Project | Final | Increased resolution for TclpGetTime on Windows | | TIP #8 | Project | Final | Add Winico support to the wm command on windows | | TIP #9 | Project | Withdrawn | Tk Standard Library | | TIP #10 | Project | Final | Tcl I/O Enhancement: Thread-Aware Channels | | TIP #11 | Project | Final | Tk Menubutton Enhancement: -compound option for menubutton | | TIP #12 | Informative | Draft | The "Batteries Included" Distribution | | TIP #13 | Process | Accepted | Web Service for Drafting and Archiving TIPs | | TIP #14 | Project | Final | Access to Tk Photo Image Transparency | | TIP #15 | Project | Final | Functions to List and Detail Math Functions | | TIP #16 | Process | Accepted | Tcl Functional Areas for Maintainer Assignments | | TIP #17 | Project | Final | Redo Tcl's filesystem | | TIP #18 | Project | Final | Add Labels to Frames | | TIP #19 | Project | Final | Add a Text Changed Flag to Tk's Text Widget | | TIP #20 | Project | Deferred | Add C Locale-Exact CType Functions | | TIP #21 | Project | Final | Asymmetric Padding in the Pack and Grid Geometry Managers | | TIP #22 | Project | Final | Multiple Index Arguments to lindex | | TIP #23 | Process | Accepted | Tk Toolkit Functional Areas for Maintainer Assignments | | TIP #24 | Informative | Draft | Tcl Maintainer Assignments | | TIP #25 | Project | Withdrawn | Native tk_messageBox on Macintosh | | TIP #26 | Project | Final | Enhancements for the Tk Text Widget | | TIP #27 | Project | Final | CONST Qualification on Pointers in Tcl API's | | TIP #28 | Informative | Draft | How to be a good maintainer for Tcl/Tk | | TIP #29 | Project | Rejected | Allow array syntax for Tcl lists | | TIP #30 | Informative | Draft | Tk Toolkit Maintainer Assignments | | TIP #31 | Informative | Draft | CVS tags in the Tcl and Tk repositories | | TIP #32 | Project | Final | Add Tcl_Obj-enabled counterpart to Tcl_CreateTrace | | TIP #33 | Project | Final | Add 'lset' Command to Assign to List Elements. | | TIP #34 | Project | Withdrawn | Modernize TEA Build System | | TIP #35 | Project | Final | Enhanced Support for Serial Communications | | TIP #36 | Project | Final | Library Access to 'Subst' Functionality | | TIP #37 | Project | Final | Uniform Rows and Columns in Grid | | TIP #38 | Project | Withdrawn | Add Support for Default Bindtags | | TIP #39 | Project | Withdrawn | Add New Standard Tk Option: -component | | TIP #40 | Project | Withdrawn | Documentation Generator for Tcl Scripts | | TIP #41 | Project | Final | Paned Window Tk Widget | | TIP #42 | Project | Withdrawn | Add New Standard Tk Option: -clientdata | | TIP #43 | Informative | Draft | How to be a TIP Editor | | TIP #44 | Project | Final | Move Tk's Private Commands and Variables into ::tk Namespace | | TIP #45 | Project | Final | Empty index lists for [lindex] and [lset] | | TIP #46 | Project | Withdrawn | Consistent Overlap Behavior of Area-Defining Canvas Items | | TIP #47 | Project | Final | Modifying Tk to Allow Writing X Window managers | | TIP #48 | Project | Final | Tk Widget Styling Support | | TIP #49 | Project | Final | I/O Subsystem: Add API Tcl_OutputBuffered(chan) | | TIP #50 | Informative | Final | Bundle [incr Tcl] with the Core Tcl distribution | | TIP #51 | Project | Withdrawn | Native Menubutton on Macintosh | | TIP #52 | Project | Withdrawn | Hierarchical Namespace Lookup of Commands and Variables | | TIP #53 | Project | Withdrawn | Addition of 'assert' Command | | TIP #54 | Process | Withdrawn | Using PURLs to Unite the Tcl Webspace | | TIP #55 | Informative | Draft | Package Format for Tcl Extensions | | TIP #56 | Project | Final | Standardize Call Interface to Tcl_Eval* Functions | | TIP #57 | Project | Final | Move TclX's [lassign] into the Tcl Core | | TIP #58 | Project | Rejected | Extend [set] to Assign Multiple Values to Multiple Variables | | TIP #59 | Project | Final | Embed Build Information in Tcl Binary Library | | TIP #60 | Project | Rejected | EXTERN Macro Change to Support a Wider Set of Attributes | | TIP #61 | Project | Deferred | Make TK_NO_SECURITY Run-Time Switchable | | TIP #62 | Project | Final | Add Support for Command Tracing | | TIP #63 | Project | Final | Add -compound Option to Menu Entries | | TIP #64 | Project | Deferred | Improvements to Windows Font Handling | | TIP #65 | Project | Rejected | Enhanced [info args] | | TIP #66 | Informative | Draft | Stand-alone and Embedded Tcl/Tk Applications | | TIP #67 | Project | Withdrawn | Allow Subclassing of tk_getOpenFile, tk_getSaveFile on UNIX | | TIP #68 | Project | Final | Dynamic Trace Result Handling | | TIP #69 | Project | Draft | Improvements for the Tcl Hash Table | | TIP #70 | Project | Withdrawn | A Relational Switch Control Structure | | TIP #71 | Project | Withdrawn | Tk Bitmap Image Improvements | | TIP #72 | Project | Final | 64-Bit Value Support for Tcl on 32-Bit Platforms | | TIP #73 | Project | Final | Export Tcl_GetTime in the Public API | | TIP #74 | Project | Final | wm stackorder command | | TIP #75 | Project | Final | Refer to Sub-RegExps Inside 'switch -regexp' Bodies | | TIP #76 | Project | Final | Make 'regsub' Return a String | | TIP #77 | Project | Withdrawn | Support for Nested Paired Item Lists | | TIP #78 | Informative | Draft | TEA 2.0 Definitions | | TIP #79 | Project | Final | Add Deletion Callback to Tcl_CreateObjTrace | | TIP #80 | Project | Final | Additional Options for 'lsearch' | | TIP #81 | Process | Withdrawn | [incr Tcl] Functional Areas for Maintainer Assignments | | TIP #82 | Project | Final | Add -offrelief Option to Checkbutton and Radiobutton | | TIP #83 | Project | Withdrawn | Augment Tcl_EvalFile with Tcl_EvalChannel and Tcl_EvalUrl | | TIP #84 | Project | Final | Add control for mouse movement filtering | | TIP #85 | Project | Final | Custom Comparisons in Tcltest | | TIP #86 | Project | Draft | Improved Debugger Support | | TIP #87 | Project | Final | Allow Tcl Access to the Recursion Limit | | TIP #88 | Project | Rejected | Extend Tcl Process Id Control via 'pid' | | TIP #89 | Project | Withdrawn | Try/Catch Exception Handling in the Core | | TIP #90 | Project | Final | Enable [return -code] in Control Structure Procs | | TIP #91 | Project | Final | Backward Compatibility for Channel Types with 32-bit SeekProcs | | TIP #92 | Project | Withdrawn | Move Package Load Decisions to Application Developer | | TIP #93 | Project | Final | Get/Delete Enhancement for the Tk Text Widget | | TIP #94 | Project | Final | Add Listbox -activestyle Option | | TIP #95 | Project | Final | Add [wm attributes] Command | | TIP #96 | Project | Final | Add [tk caret] Command and Tk_SetCaretPos API | | TIP #97 | Project | Final | Moving Vertices of Canvas Items | | TIP #98 | Project | Final | Adding Transparency Compositing Rules to Photo Images | | TIP #99 | Project | Final | Add 'file link' to Tcl | | TIP #100 | Project | Final | Add Support for Unloading Dynamic Libraries Loaded with [load] | | TIP #101 | Project | Final | Export Tcltest Configuration | | TIP #102 | Project | Final | Change [trace list] to [trace info] | | TIP #103 | Project | Rejected | Argument Expansion Command | | TIP #104 | Project | Final | Generalization of the Tk Undo Subsystem | | TIP #105 | Project | Withdrawn | Add Prefix Matching for Switch | | TIP #106 | Project | Final | Add Encoding Abilities to the [dde] Command | | TIP #107 | Project | Final | Fix the 2-second "raise delay" in Tk | | TIP #108 | Informative | Final | Summary of Changes to Generic Tcl/Tk Code to Enable Mac OS X Port | | TIP #109 | Project | Final | New Look for Checkbutton and Radiobutton on Unix | | TIP #110 | Project | Final | Add a Tristate Mode to the Checkbutton and Radiobutton | | TIP #111 | Project | Final | Dictionary Values and Manipulators | | TIP #112 | Project | Final | Ensembles are Namespaces are Commands | | TIP #113 | Project | Final | Multi-Line Searches in the Text Widget | | TIP #114 | Project | Draft | Eliminate Octal Parsing of Leading Zero Integer Strings | | TIP #115 | Project | Draft | Making Tcl Truly 64-Bit Ready | | TIP #116 | Project | Final | More Safety for Large Images | | TIP #117 | Project | Withdrawn | Object Type Introspection | | TIP #118 | Project | Final | Enhance [file attributes] and [file copy] on Mac OS X & BSD | | TIP #119 | Project | Final | Angled Text on a Canvas | | TIP #120 | Project | Final | Restricted DDE Services | | TIP #121 | Project | Final | Controlled Application Shutdown via Tcl_Exit | | TIP #122 | Project | Rejected | Use tcl_{non,}wordchars Throughout Tcl/Tk | | TIP #123 | Project | Final | Adding an Exponentiation Operator to the [expr] Command | | TIP #124 | Project | Final | High-Resolution Absolute Time Values From [clock] | | TIP #125 | Project | Final | Converting between Frame and Toplevel Windows | | TIP #126 | Project | Draft | Rich Strings for Representation Persistence | | TIP #127 | Project | Final | Add an -index Option to [lsearch] | | TIP #128 | Project | Rejected | Ability to Install a Custom Memory Allocator | | TIP #129 | Project | Final | New Format Codes for the [binary] Command | | TIP #130 | Project | Final | Unique DDE server names. | | TIP #131 | Project | Draft | Read My Mind and Do What I Mean | | TIP #132 | Project | Final | Revised Floating-Point Conversions in Tcl | | TIP #133 | Project | Draft | Extending [expr] Operators | | TIP #134 | Project | Withdrawn | Subsystem Per-Thread Data Interfaces | | TIP #135 | Project | Final | Change 'dde servername -exact' Option to -force | | TIP #136 | Project | Final | Large List Initialisation | | TIP #137 | Project | Final | Specifying Script Encodings for [source] and tclsh | | TIP #138 | Project | Final | New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables | | TIP #139 | Project | Final | Publish Part of Tcl's Namespace API | | TIP #140 | Project | Deferred | Tracing Namespace Modifications | | TIP #141 | Project | Final | Multiple Initial-Files in [tk_getOpenFile] | | TIP #142 | Project | Withdrawn | Search Path Variable to Lookup Command Names in Namespaces | | TIP #143 | Project | Final | An Interpreter Resource Limiting Framework | | TIP #144 | Project | Withdrawn | Argument Expansion Syntax | | TIP #145 | Project | Final | Enhanced Tk Font Handling | | TIP #146 | Project | Final | Add Overall Anchoring to the Grid Geometry Manager | | TIP #147 | Project | Final | Make Grid's Column/Row Configure Easier | | TIP #148 | Project | Final | Correct [list]-Quoting of the '#' Character | | TIP #149 | Project | Withdrawn | Allow "enabled" as Synonym for "normal" in -state Option | | TIP #150 | Project | Deferred | Implement the Tk send Command for Windows | | TIP #151 | Project | Final | Remove -e: Command Line Option from tclsh and wish | | TIP #152 | Project | Final | New -detail Option for tk_messageBox | | TIP #153 | Project | Final | Enhancing the [winfo toplevel] Command | | TIP #154 | Project | Draft | Add Named Colors to Tk | | TIP #155 | Project | Final | Fix Some of the Text Widget's Limitations | | TIP #156 | Project | Final | Language-Neutral Root Locale for Msgcat | | TIP #157 | Project | Final | Argument Expansion with Leading {expand} | | TIP #158 | Project | Final | Distinguish the two 'Enter' keys on Windows | | TIP #159 | Project | Final | Extending Tk 'wm' Command to Support Coloured Icons | | TIP #160 | Project | Draft | Improvements to Terminal and Serial Channel Handling | | TIP #161 | Project | Draft | Change Default for Menu's -tearoff Option to False | | TIP #162 | Project | Final | IPv6 Sockets for Tcl | | TIP #163 | Project | Final | A [dict merge] Subcommand | | TIP #164 | Project | Draft | Add Rotate Subcommand to the Canvas Widget | | TIP #165 | Project | Final | A User-Data Field for Virtual Events | | TIP #166 | Project | Draft | Reading and Writing the Photo Image Alpha Channel | | TIP #167 | Project | Draft | Add a New Option for Context Help for Windows | | TIP #168 | Project | Final | Cubic Bezier Curves on the Canvas | | TIP #169 | Project | Final | Add Peer Text Widgets | | TIP #170 | Project | Draft | Better Support for Nested Lists | | TIP #171 | Project | Final | Change Default Bindings Behavior | | TIP #172 | Project | Withdrawn | Improve UNIX Tk Look and Feel | | TIP #173 | Project | Final | Internationalisation and Refactoring of the 'clock' Command | | TIP #174 | Project | Final | Math Operators as Commands | | TIP #175 | Project | Withdrawn | Add an -async Option to [open] | | TIP #176 | Project | Final | Add String Index Values | | TIP #177 | Project | Final | Add -stretch Option to panedwindow Widget | | TIP #178 | Project | Draft | [info pid] and [info tid] Subcommands | | TIP #179 | Project | Final | Add -hide Option to panedwindow Widget | | TIP #180 | Project | Draft | Add a Megawidget Support Core Package | | TIP #181 | Project | Final | Add a [namespace unknown] Command | | TIP #182 | Project | Final | Add [expr bool] Math Function | | TIP #183 | Project | Final | Add a Binary Flag to [open] | | TIP #184 | Project | Final | Avoid Creating Unusable Variables | | TIP #185 | Project | Rejected | Null Handling | | TIP #186 | Project | Draft | Expose the Type and Modified-State of Widget Options | | TIP #187 | Project | Rejected | Procedures as Values | | TIP #188 | Project | Final | Add 'string is wideinteger' to the 'string is' Subcommand | | TIP #189 | Project | Final | Tcl Modules | | TIP #190 | Informative | Draft | Implementation Choices for Tcl Modules | | TIP #191 | Informative | Draft | Managing Tcl Packages and Modules in a Multi-Version Environment | | TIP #192 | Project | Draft | Lazy Lists | | TIP #193 | Project | Draft | Simple Syntax Help System | | TIP #194 | Project | Final | Procedures as Values via '''apply''' | | TIP #195 | Project | Final | A Unique Prefix Handling Command | | TIP #196 | Project | Withdrawn | Tcl Commands as Values | | TIP #197 | Project | Final | Unfocussed Text Widget Cursor Control | | TIP #198 | Project | Draft | Image Command XPM Extension | | TIP #199 | Project | Rejected | Specification of Alternatives to .wishrc/.tclshrc | | TIP #200 | Project | Rejected | Listing the Values in an Array | | TIP #201 | Project | Final | Add 'in' Operator to [expr] | | TIP #202 | Project | Final | Add 2>@1 Special Case to [open] and [exec] | | TIP #203 | Project | Withdrawn | Create tclConfig.sh-Equivalent in Tcl | | TIP #204 | Project | Final | Virtual Events for Keyboard Traversal | | TIP #205 | Project | Final | Use pkgconfig Database to Register Xft Support | | TIP #206 | Project | Rejected | Add an [ftruncate] Command | | TIP #207 | Project | Final | Add a -namespace Option to [interp invokehidden] | | TIP #208 | Project | Final | Add a 'chan' Command | | TIP #209 | Project | Final | Add [clock milliseconds], and [clock microseconds] | | TIP #210 | Project | Final | Add 'tempfile' Subcommand to 'file' | | TIP #211 | Project | Withdrawn | Add Full Stack Trace Capability | | TIP #212 | Project | Final | Temporarily Opening out a Dictionary | | TIP #213 | Project | Withdrawn | A Standard Dialog for Font Selection | | TIP #214 | Project | Withdrawn | Add New Object Introspection Command | | TIP #215 | Project | Final | Make [incr] Auto-Initialize Undefined Variables | | TIP #216 | Project | Draft | Handling Command-Line Options in Tclsh and Wish | | TIP #217 | Project | Final | Getting Sorted Indices out of Lsort | | TIP #218 | Project | Final | Tcl Channel Driver Thread State Actions | | TIP #219 | Project | Final | Tcl Channel Reflection API | | TIP #220 | Project | Draft | Escalate Privileges in VFS Close Callback | | TIP #221 | Project | Final | Allow Background Error Handlers to Accept Return Options | | TIP #222 | Project | Final | Add [wm attributes -alpha] Attribute on Windows | | TIP #223 | Project | Final | Full-Screen Toplevel Support for Tk | | TIP #224 | Project | Draft | Add New [array] Subcommands 'incr' and 'value' | | TIP #225 | Project | Draft | Arithmetic Series with Optimized Space Complexity | | TIP #226 | Project | Final | Interface to Save and Restore Interpreter State | | TIP #227 | Project | Final | Interface to Get and Set the Return Options of an Interpreter | | TIP #228 | Project | Draft | Tcl Filesystem Reflection API | | TIP #229 | Project | Final | Scripted Control of Name Resolution in Namespaces | | TIP #230 | Project | Final | Tcl Channel Transformation Reflection API | | TIP #231 | Project | Final | Support for [wm attributes] on X11 | | TIP #232 | Project | Final | Creating New Math Functions for the 'expr' Command | | TIP #233 | Project | Final | Virtualization of Tcl's Sense of Time | | TIP #234 | Project | Final | Add Support For Zlib Compression | | TIP #235 | Project | Final | Exposing a C API for Ensembles | | TIP #236 | Project | Final | Absolute Positioning of Canvas Items | | TIP #237 | Project | Final | Arbitrary-Precision Integers for Tcl | | TIP #238 | Project | Draft | Fire Event when Widget Created | | TIP #239 | Project | Draft | Enhance the 'load' Command | | TIP #240 | Project | Draft | An Ensemble Command to Manage Processes | | TIP #241 | Project | Final | Case-Insensitive Switches and List Searching and Sorting | | TIP #242 | Project | Final | Preselect Filter on tk_get*File Dialogs | | TIP #243 | Project | Draft | Supply Find Dialog for the Text Widget | | TIP #244 | Project | Final | PNG Photo Image Support for Tk | | TIP #245 | Project | Final | Discover User Inactivity Time | | TIP #246 | Project | Draft | Unify Pattern Matching | | TIP #247 | Informative | Draft | Tcl/Tk Engineering Manual | | TIP #248 | Project | Final | Integrate Tile into Tk as Ttk | | TIP #249 | Informative | Draft | Unification of Tcl's Parsing of Numbers | | TIP #250 | Project | Final | Efficient Access to Namespace Variables | | TIP #251 | Project | Rejected | Enhance the 'list' Command | | TIP #252 | Project | Rejected | Add New 'string' Command Options | | TIP #253 | Project | Draft | Consolidate Package-Related Commands | | TIP #254 | Project | Final | New Types for Tcl_LinkVar | | TIP #255 | Project | Final | Add 'min' and 'max' [expr] Functions | | TIP #256 | Project | Final | Implement Tabular and Wordprocessor Style Tabbing | | TIP #257 | Project | Final | Object Orientation for Tcl | | TIP #258 | Project | Final | Enhanced Interface for Encodings | | TIP #259 | Project | Draft | Making 'exec' Optionally Binary Safe | | TIP #260 | Project | Final | Add Underline Option to Canvas Text Items | | TIP #261 | Project | Final | Return Imported Commands from [namespace import] | | TIP #262 | Project | Draft | Background Images for Frames | | TIP #263 | Project | Draft | Quantum Tcl | | TIP #264 | Project | Final | Add Function to Retrieve the Interpreter of a Window | | TIP #265 | Project | Final | A Convenient C-side Command Option Parser for Tcl | | TIP #266 | Project | Rejected | Numbers are Commands | | TIP #267 | Project | Final | Allow 'exec' to Ignore Stderr | | TIP #268 | Project | Final | Enhance 'package' Version Handling | | TIP #269 | Project | Final | Add 'string is list' to the 'string is' Subcommand | | TIP #270 | Project | Final | Utility C Routines for String Formatting | | TIP #271 | Project | Draft | Windows-Style Open and Save File Dialog on Unix | | TIP #272 | Project | Final | String and List Reversal Operations | | TIP #273 | Project | Rejected | Add Tcl_Expr... Support to Tcl_Get... Functions | | TIP #274 | Project | Final | Right-Associativity for the Exponentiation Operator | | TIP #275 | Project | Final | Support Unsigned Values in binary Command | | TIP #276 | Project | Draft | Specify and Unify Variable Linking Commands | | TIP #277 | Project | Draft | Create Namespaces as Needed | | TIP #278 | Project | Draft | Fix Variable Name Resolution Quirks | | TIP #279 | Project | Draft | Adding an Extensible Object System to the Core | | TIP #280 | Project | Final | Add Full Stack Trace Capability With Location Introspection | | TIP #281 | Project | Draft | Improvements in System Error Handling | | TIP #282 | Project | Draft | Enhanced Expression Syntax | | TIP #283 | Project | Draft | Modify Ensemble Command Resolution Behaviour | | TIP #284 | Project | Draft | New 'invoke' and 'namespace invoke' Commands | | TIP #285 | Project | Final | Script Cancellation with [interp cancel] and Tcl_CancelEval | | TIP #286 | Project | Final | Add 'xposition' Command to Menu Widgets | | TIP #287 | Project | Final | Add a Commands for Determining Size of Buffered Data | | TIP #288 | Project | Draft | Allow "args" Anywhere in Procedure Formal Arguments | | TIP #289 | Project | Rejected | Revision of [lrepeat] Argument Order | | TIP #290 | Project | Draft | Registration of Custom Error Handler Scripts | | TIP #291 | Project | Final | Add the 'platform' Package to Tcl | | TIP #292 | Project | Draft | Allow Unquoted Strings in Expressions | | TIP #293 | Project | Final | Argument Expansion with Leading {*} | | TIP #294 | Project | Rejected | The "entier" Function: It's Spelt "entire" | | TIP #295 | Project | Draft | Enhance Arguments to lrange | | TIP #296 | Project | Draft | Enhanced Syntax for Pair-Wise Indices | | TIP #297 | Project | Draft | Integer Type Introspection and Conversion | | TIP #298 | Project | Final | Revise Shared Value Rules for Tcl_GetBignumAndClearObj | | TIP #299 | Project | Final | Add isqrt() Math Function | | TIP #300 | Project | Final | Examine Glyph Substitution in the 'font actual' Command | | TIP #301 | Project | Withdrawn | Split Bidirectional Channels For Half-Close | | TIP #302 | Project | Draft | Fix "after"'s Sensitivity To Adjustments Of System Clock | | TIP #303 | Project | Draft | Enhance 'llength' Command to Support Nested Lists | | TIP #304 | Project | Final | A Standalone [chan pipe] Primitive for Advanced Child IPC | | TIP #305 | Project | Withdrawn | ANSI Escape Sequence Support for Windows's Console Channel Driver | | TIP #306 | Project | Rejected | Auto-Naming Widgets | | TIP #307 | Project | Final | Make TclTransferResult() Public | | TIP #308 | Informative | Final | Tcl Database Connectivity (TDBC) | | TIP #309 | Project | Draft | Expose the Expression Parsing | | TIP #310 | Project | Rejected | Add a New Pseudo-Random Number Generator | | TIP #311 | Informative | Draft | Tcl/Tk 8.6 Release Calendar | | TIP #312 | Project | Draft | Add More Link Types | | TIP #313 | Project | Final | Inexact Searching in Sorted List | | TIP #314 | Project | Final | Ensembles with Parameters | | TIP #315 | Project | Final | Add pathSeparator to tcl_platform Array | | TIP #316 | Project | Final | Portable Access Functions for Stat Buffers | | TIP #317 | Project | Final | Extend binary Ensemble with Binary Encodings | | TIP #318 | Project | Final | Extend Default Whitespace in 'string trim' Beyond ASCII | | TIP #319 | Project | Draft | Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets | | TIP #320 | Project | Final | Improved Variable Handling in the Core Object System | | TIP #321 | Project | Final | Add a [tk busy] Command | | TIP #322 | Project | Final | Publish the NRE API | | TIP #323 | Project | Final | Do Nothing Gracefully | | TIP #324 | Project | Final | A Standard Dialog For Font Selection | | TIP #325 | Project | Draft | System Tray Access | | TIP #326 | Project | Final | Add -stride Option to lsort | | TIP #327 | Project | Final | Proper Tailcalls | | TIP #328 | Project | Final | Coroutines | | TIP #329 | Project | Final | Try/Catch/Finally syntax | | TIP #330 | Project | Final | Eliminate interp->result from the Public Headers | | TIP #331 | Project | Final | Allow [lset] to Extend Lists | | TIP #332 | Project | Final | Half-Close for Bidirectional Channels | | TIP #333 | Project | Draft | New Variable and Namespace Resolving Interface | | TIP #334 | Project | Withdrawn | Make 'lrepeat' Accept Zero as a Count | | TIP #335 | Project | Final | An API for Detecting Active Interpreters | | TIP #336 | Project | Final | Supported Access To interp->errorline | | TIP #337 | Project | Final | Make TclBackgroundException() Public | | TIP #338 | Project | Final | Embedder Access to Startup Scripts of *_Main() | | TIP #339 | Project | Rejected | Case-Insensitive Package Names | | TIP #340 | Project | Withdrawn | Const Qualification of Tcl_SetResult's Argument | | TIP #341 | Project | Final | Multiple 'dict filter' Patterns | | TIP #342 | Project | Draft | Dict Get With Default | | TIP #343 | Project | Final | A Binary Specifier for [format/scan] | | TIP #344 | Project | Draft | Bring TCP_NODELAY and SO_KEEPALIVE to socket options | | TIP #345 | Project | Draft | Kill the 'identity' Encoding | | TIP #346 | Project | Draft | Error on Failed String Encodings | | TIP #347 | Project | Withdrawn | Align 'string is ...' to Type-Conversion Functions in 'expr' | | TIP #348 | Project | Final | Substituted 'errorstack' / 'traceback' | | TIP #349 | Project | Draft | New "-cargo" option for every Tk widget | | TIP #350 | Informative | Draft | Tcl Database Connectivity - Corrigenda | | TIP #351 | Project | Draft | Add Striding Support to lsearch | | TIP #352 | Informative | Draft | Tcl Style Guide | | TIP #353 | Project | Final | NR-enabled Expressions for Extensions | | TIP #354 | Project | Final | Minor Production-Driven TclOO Revisions | | TIP #355 | Project | Draft | Stop Fast Recycling of Channel Names on Unix | | TIP #356 | Project | Final | NR-enabled Substitutions for Extensions | | TIP #357 | Project | Final | Export TclLoadFile | | TIP #358 | Project | Draft | Suppress Empty List Element Generation from the Split Command | | TIP #359 | Project | Final | Extended Window Manager Hint Support | | TIP #360 | Project | Final | Modernize X11 Menus | | TIP #361 | Project | Draft | Releasing Channel Buffers | | TIP #362 | Project | Final | Simple 32 and 64 bit Registry Support | | TIP #363 | Project | Draft | Vector Math in the Tcl Core | | TIP #364 | Project | Final | Threading Support: Configuration and Package | | TIP #365 | Project | Draft | Add Python Compatibility Mode | | TIP #366 | Project | Draft | Variable Sized Indicators for Menubuttons | | TIP #367 | Project | Draft | A Command to Remove Elements from a List | | TIP #368 | Project | Withdrawn | Listbox Justification Option | | TIP #369 | Project | Draft | Widget cargo command | | TIP #370 | Project | Draft | Extend Tk's selection with a -time option | | TIP #371 | Project | Draft | Improvements for the dict command | | TIP #372 | Project | Draft | Multi-argument Yield for Coroutines | | TIP #373 | Project | Withdrawn | Improved Yielding Support for Coroutines | | TIP #374 | Project | Draft | Stackless Vwait | | TIP #375 | Project | Draft | Symmetric Coroutines and Yieldto | | TIP #376 | Project | Final | Bundle sqlite3 and tdbc::sqlite3 Packages | | TIP #377 | Project | Withdrawn | Portably Determining the Number of Processors in the System | | TIP #378 | Project | Final | Fixing the Performance of TIP 280 | | TIP #379 | Project | Draft | Add a Command for Delivering Events Without Tk | | TIP #380 | Project | Final | TclOO Slots for Flexible Declarations | | TIP #381 | Project | Final | Call Chain Introspection and Control | | TIP #382 | Project | Final | Let tk_getSaveFile ignore file overwrites | | TIP #383 | Project | Draft | Injecting Code into Suspended Coroutines | | TIP #384 | Project | Draft | Add File Alteration Monitoring to the Tcl Core | | TIP #385 | Project | Draft | Functional Traces On Variables | | TIP #386 | Informative | Draft | Relocation of Tcl/Tk Source Control Repositories | | TIP #387 | Project | Withdrawn | Unified Yield Command Syntax | | TIP #388 | Project | Final | Extending Unicode literals past the BMP | | TIP #389 | Project | Draft | Full support for Unicode 8.0 and later | | TIP #390 | Project | Draft | A Logging API for Tcl | | TIP #391 | Project | Withdrawn | Support for UDP Sockets in Tcl | | TIP #392 | Project | Draft | Allow Bignums to be Disabled at Runtime on a Per-Interp Basis | | TIP #393 | Project | Draft | Add -command Option to lsearch | | TIP #394 | Project | Draft | Platform-Independent Handling of Contemporary Mice | | TIP #395 | Project | Final | New 'string is entier' Command | | TIP #396 | Project | Final | Symmetric Coroutines, Multiple Args, and yieldto | | TIP #397 | Project | Final | Extensible Object Copying | | TIP #398 | Project | Final | Quickly Exit with Non-Blocking Blocked Channels | | TIP #399 | Project | Accepted | Dynamic Locale Changing for msgcat | | TIP #400 | Project | Final | Setting the Compression Dictionary and Other 'zlib' Updates | | TIP #401 | Project | Draft | Comment Words with Leading {#} | | TIP #402 | Project | Draft | General Platform UNC Support | | TIP #403 | Project | Final | Web Colors for Tk | | TIP #404 | Project | Final | Let Message Catalogs get the Locale from their File Name | | TIP #405 | Project | Final | Add Collecting Loops, the 'lmap' and 'dict map' Commands | | TIP #406 | Project | Draft | "C" is for Cookie | | TIP #407 | Informative | Draft | The String Representation of Tcl Lists: the Gory Details | | TIP #408 | Project | Draft | Allow Any Command for expr Functions | | TIP #409 | Project | Draft | UDP in Tcl | | TIP #410 | Project | Draft | Three Features of scan Adapted for binary scan/format | | TIP #411 | Project | Draft | Improved Channel Introspection via "chan info" | | TIP #412 | Project | Final | Dynamic Locale Changing for msgcat with On-Demand File Load | | TIP #413 | Project | Final | Unicode Support for 'string is space' and 'string trim' | | TIP #414 | Project | Draft | Add (back) Tcl_InitSubsystems as Public API | | TIP #415 | Project | Draft | Enable Easy Creation of Circular Arc Segments | | TIP #416 | Project | Final | New Options for 'load': -global and -lazy | | TIP #417 | Project | Draft | Use Explicit Option Names for "file tempfile" | | TIP #418 | Project | Draft | Add [binary] Subcommands for In-Place Modification | | TIP #419 | Project | Draft | A New Command for Binding to Tk Events | | TIP #420 | Project | Draft | 'vexpr', a Vector Expression Command | | TIP #421 | Project | Draft | A Command for Iterating Over Arrays | | TIP #422 | Project | Draft | Don't Use stdarg.h/va_list in Public API | | TIP #423 | Project | Draft | Formatting Timestamps with Milliseconds | | TIP #424 | Project | Draft | Improving [exec] | | TIP #425 | Project | Draft | Internationalization of Default Panic Callback on Windows | | TIP #426 | Project | Draft | Determining the "Type" of Commands | | TIP #427 | Project | Final | Introspection of Asynchronous Socket Connection | | TIP #428 | Project | Draft | Produce Error Dictionary from 'fconfigure -error' | | TIP #429 | Project | Final | A 'string' Subcommand for Concatenation | | TIP #430 | Project | Draft | Add basic ZIP archive support to Tcl | | TIP #431 | Project | Draft | Add 'tempdir' Subcommand to 'file' | | TIP #432 | Project | Final | Support for New Windows File Dialogs in Vista and Later | | TIP #433 | Project | Final | Add %M binding substitution | | TIP #434 | Project | Draft | Specify Event Sources for 'vwait' | | TIP #435 | Project | Rejected | Safe Mutex Disposal API | | TIP #436 | Project | Final | Improve TclOO isa Introspection | | TIP #437 | Project | Final | Tk panedwindow options for proxy window | | TIP #438 | Project | Final | Ensure Line Metrics are Up-to-Date | | TIP #439 | Project | Draft | Semantic Versioning | | TIP #440 | Project | Final | Add engine to tcl_platform Array | | TIP #441 | Project | Final | Add -justify Configuration Option to the listbox Widget | | TIP #442 | Project | Final | Display text in progressbars | | TIP #443 | Project | Final | More Tag Configuration Options for the Text Widget | | TIP #444 | Project | Final | Add "weekdays" unit in clock add | | TIP #445 | Project | Draft | Tcl_ObjType Utility Routines | | TIP #446 | Project | Final | Introspect Undo/Redo Stack Depths | | TIP #447 | Project | Final | Execution Time Verbosity Levels in tcltest::configure | | TIP #448 | Project | Draft | Update Tcl_SetNotifier to Reinitialize Event Loop | | TIP #449 | Project | Final | [text] undo/redo to Return Range of Characters | | TIP #450 | Project | Draft | Add [binary] subcommand "set" for in-place modification | | TIP #451 | Project | Draft | Modify [update] to Give Full Script Access to Tcl_DoOneEvent | | TIP #452 | Project | Draft | Add "stubs" Package to or Along Side of TclTest | | TIP #453 | Project | Draft | Tcl Based Automation for tcl/pkgs | | TIP #454 | Project | Draft | Automatically Resize Frames After Last Child Removed | | TIP #455 | Project | Draft | Extensions to [vwait]: Variable Sets and Scripted Access to Tcl_DoOneEvent | | TIP #456 | Project | Final | Extend the C API to Support Passing Options to TCP Server Creation | | TIP #457 | Project | Draft | Add Support for Named Arguments | | TIP #458 | Project | Final | Add Support for epoll() and kqueue() in the Notifier | | TIP #459 | Project | Draft | Tcl Package Introspection Improvements | | TIP #460 | Project | Draft | An Alternative to Upvar | | TIP #461 | Project | Draft | Separate Numeric and String Comparison Operators | | TIP #462 | Project | Draft | Add New [info ps] Ensemble for Subprocess Management | | TIP #463 | Project | Final | Command-Driven Substitutions for regsub | | TIP #464 | Project | Final | Support for Multimedia Keys on Windows | | TIP #465 | Project | Draft | Change Rule 8 of the Dodekalogue to Cut Some Corner Cases | | TIP #466 | Project | Draft | Revised Implementation of the Text Widget | | TIP #467 | Process | Draft | Move TIP Collection to Fossil | | TIP #468 | Project | Draft | Support Passing TCP listen Backlog Size Option to TCP Socket Creation | | TIP #469 | Project | Draft | A Callback for Channel-Exception Conditions | | TIP #470 | Project | Final | Reliable Access to OO Definition Context Object | | TIP #471 | Project | Draft | Add [info linkedname] Introspection Command | | TIP #472 | Project | Accepted | Add Support for 0d Radix Prefix to Integer Literals | | TIP #473 | Project | Final | Allow a Defined Target Namespace in oo::copy | | TIP #10000 | Informative | Draft | Dummy Proposal for Testing Editing Interfaces | +-----------+-------------+-----------+----------------------------------------------------------------------------+ TIP #0: Tcl Core Team Basic Rules TIP #1: TIP Index TIP #2: (D) TIP Guidelines TIP #3: TIP Format TIP #4: (D) Tcl Release and Distribution Philosophy TIP #5: Make TkClassProcs and TkSetClassProcs Public and Extensible TIP #6: (R) 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: Tk Standard Library TIP #10: Tcl I/O Enhancement: Thread-Aware Channels TIP #11: Tk Menubutton Enhancement: -compound option for menubutton TIP #12: (D) 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: (D) Tcl Maintainer Assignments TIP #25: 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: (D) How to be a good maintainer for Tcl/Tk TIP #29: (R) Allow array syntax for Tcl lists TIP #30: (D) Tk Toolkit Maintainer Assignments TIP #31: (D) 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: 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: Add Support for Default Bindtags TIP #39: Add New Standard Tk Option: -component TIP #40: Documentation Generator for Tcl Scripts TIP #41: Paned Window Tk Widget TIP #42: Add New Standard Tk Option: -clientdata TIP #43: (D) 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: 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: Native Menubutton on Macintosh TIP #52: Hierarchical Namespace Lookup of Commands and Variables TIP #53: Addition of 'assert' Command TIP #54: Using PURLs to Unite the Tcl Webspace TIP #55: (D) 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: (R) Extend [set] to Assign Multiple Values to Multiple Variables TIP #59: Embed Build Information in Tcl Binary Library TIP #60: (R) 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: (R) Enhanced [info args] TIP #66: (D) Stand-alone and Embedded Tcl/Tk Applications TIP #67: Allow Subclassing of tk_getOpenFile, tk_getSaveFile on UNIX TIP #68: Dynamic Trace Result Handling TIP #69: (D) Improvements for the Tcl Hash Table TIP #70: A Relational Switch Control Structure TIP #71: 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: Support for Nested Paired Item Lists TIP #78: (D) 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: 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: (D) Improved Debugger Support TIP #87: Allow Tcl Access to the Recursion Limit TIP #88: (R) Extend Tcl Process Id Control via 'pid' TIP #89: 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: 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: (R) Argument Expansion Command TIP #104: Generalization of the Tk Undo Subsystem TIP #105: Add Prefix Matching for Switch TIP #106: 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: (D) Eliminate Octal Parsing of Leading Zero Integer Strings TIP #115: (D) Making Tcl Truly 64-Bit Ready TIP #116: More Safety for Large Images TIP #117: 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: (R) 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: (D) Rich Strings for Representation Persistence TIP #127: Add an -index Option to [lsearch] TIP #128: (R) Ability to Install a Custom Memory Allocator TIP #129: New Format Codes for the [binary] Command TIP #130: Unique DDE server names. TIP #131: (D) Read My Mind and Do What I Mean TIP #132: Revised Floating-Point Conversions in Tcl TIP #133: (D) Extending [expr] Operators TIP #134: 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: Search Path Variable to Lookup Command Names in Namespaces TIP #143: An Interpreter Resource Limiting Framework TIP #144: 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: 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: (D) 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: (D) Improvements to Terminal and Serial Channel Handling TIP #161: (D) Change Default for Menu's -tearoff Option to False TIP #162: IPv6 Sockets for Tcl TIP #163: A [dict merge] Subcommand TIP #164: (D) Add Rotate Subcommand to the Canvas Widget TIP #165: A User-Data Field for Virtual Events TIP #166: (D) Reading and Writing the Photo Image Alpha Channel TIP #167: (D) 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: (D) Better Support for Nested Lists TIP #171: Change Default Bindings Behavior TIP #172: Improve UNIX Tk Look and Feel TIP #173: Internationalisation and Refactoring of the 'clock' Command TIP #174: Math Operators as Commands TIP #175: Add an -async Option to [open] TIP #176: Add String Index Values TIP #177: Add -stretch Option to panedwindow Widget TIP #178: (D) [info pid] and [info tid] Subcommands TIP #179: Add -hide Option to panedwindow Widget TIP #180: (D) 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: (R) Null Handling TIP #186: (D) Expose the Type and Modified-State of Widget Options TIP #187: (R) Procedures as Values TIP #188: Add 'string is wideinteger' to the 'string is' Subcommand TIP #189: Tcl Modules TIP #190: (D) Implementation Choices for Tcl Modules TIP #191: (D) Managing Tcl Packages and Modules in a Multi-Version Environment TIP #192: (D) Lazy Lists TIP #193: (D) Simple Syntax Help System TIP #194: Procedures as Values via '''apply''' TIP #195: A Unique Prefix Handling Command TIP #196: Tcl Commands as Values TIP #197: Unfocussed Text Widget Cursor Control TIP #198: (D) Image Command XPM Extension TIP #199: (R) Specification of Alternatives to .wishrc/.tclshrc TIP #200: (R) 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: Create tclConfig.sh-Equivalent in Tcl TIP #204: Virtual Events for Keyboard Traversal TIP #205: Use pkgconfig Database to Register Xft Support TIP #206: (R) 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: Add Full Stack Trace Capability TIP #212: Temporarily Opening out a Dictionary TIP #213: A Standard Dialog for Font Selection TIP #214: Add New Object Introspection Command TIP #215: Make [incr] Auto-Initialize Undefined Variables TIP #216: (D) 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: (D) 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: (D) Add New [array] Subcommands 'incr' and 'value' TIP #225: (D) 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: (D) 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: (D) Fire Event when Widget Created TIP #239: (D) Enhance the 'load' Command TIP #240: (D) 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: (D) Supply Find Dialog for the Text Widget TIP #244: PNG Photo Image Support for Tk TIP #245: Discover User Inactivity Time TIP #246: (D) Unify Pattern Matching TIP #247: (D) Tcl/Tk Engineering Manual TIP #248: Integrate Tile into Tk as Ttk TIP #249: (D) Unification of Tcl's Parsing of Numbers TIP #250: Efficient Access to Namespace Variables TIP #251: (R) Enhance the 'list' Command TIP #252: (R) Add New 'string' Command Options TIP #253: (D) 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: (D) Making 'exec' Optionally Binary Safe TIP #260: Add Underline Option to Canvas Text Items TIP #261: Return Imported Commands from [namespace import] TIP #262: (D) Background Images for Frames TIP #263: (D) 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: (R) 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: (D) Windows-Style Open and Save File Dialog on Unix TIP #272: String and List Reversal Operations TIP #273: (R) 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: (D) Specify and Unify Variable Linking Commands TIP #277: (D) Create Namespaces as Needed TIP #278: (D) Fix Variable Name Resolution Quirks TIP #279: (D) Adding an Extensible Object System to the Core TIP #280: Add Full Stack Trace Capability With Location Introspection TIP #281: (D) Improvements in System Error Handling TIP #282: (D) Enhanced Expression Syntax TIP #283: (D) Modify Ensemble Command Resolution Behaviour TIP #284: (D) 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: (D) Allow "args" Anywhere in Procedure Formal Arguments TIP #289: (R) Revision of [lrepeat] Argument Order TIP #290: (D) Registration of Custom Error Handler Scripts TIP #291: Add the 'platform' Package to Tcl TIP #292: (D) Allow Unquoted Strings in Expressions TIP #293: Argument Expansion with Leading {*} TIP #294: (R) The "entier" Function: It's Spelt "entire" TIP #295: (D) Enhance Arguments to lrange TIP #296: (D) Enhanced Syntax for Pair-Wise Indices TIP #297: (D) 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: Split Bidirectional Channels For Half-Close TIP #302: (D) Fix "after"'s Sensitivity To Adjustments Of System Clock TIP #303: (D) Enhance 'llength' Command to Support Nested Lists TIP #304: A Standalone [chan pipe] Primitive for Advanced Child IPC TIP #305: ANSI Escape Sequence Support for Windows's Console Channel Driver TIP #306: (R) Auto-Naming Widgets TIP #307: Make TclTransferResult() Public TIP #308: Tcl Database Connectivity (TDBC) TIP #309: (D) Expose the Expression Parsing TIP #310: (R) Add a New Pseudo-Random Number Generator TIP #311: (D) Tcl/Tk 8.6 Release Calendar TIP #312: (D) 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: (D) 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: (D) 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: (D) New Variable and Namespace Resolving Interface TIP #334: 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: (R) Case-Insensitive Package Names TIP #340: Const Qualification of Tcl_SetResult's Argument TIP #341: Multiple 'dict filter' Patterns TIP #342: (D) Dict Get With Default TIP #343: A Binary Specifier for [format/scan] TIP #344: (D) Bring TCP_NODELAY and SO_KEEPALIVE to socket options TIP #345: (D) Kill the 'identity' Encoding TIP #346: (D) Error on Failed String Encodings TIP #347: Align 'string is ...' to Type-Conversion Functions in 'expr' TIP #348: Substituted 'errorstack' / 'traceback' TIP #349: (D) New "-cargo" option for every Tk widget TIP #350: (D) Tcl Database Connectivity - Corrigenda TIP #351: (D) Add Striding Support to lsearch TIP #352: (D) Tcl Style Guide TIP #353: NR-enabled Expressions for Extensions TIP #354: Minor Production-Driven TclOO Revisions TIP #355: (D) Stop Fast Recycling of Channel Names on Unix TIP #356: NR-enabled Substitutions for Extensions TIP #357: Export TclLoadFile TIP #358: (D) Suppress Empty List Element Generation from the Split Command TIP #359: Extended Window Manager Hint Support TIP #360: Modernize X11 Menus TIP #361: (D) Releasing Channel Buffers TIP #362: Simple 32 and 64 bit Registry Support TIP #363: (D) Vector Math in the Tcl Core TIP #364: Threading Support: Configuration and Package TIP #365: (D) Add Python Compatibility Mode TIP #366: (D) Variable Sized Indicators for Menubuttons TIP #367: (D) A Command to Remove Elements from a List TIP #368: Listbox Justification Option TIP #369: (D) Widget cargo command TIP #370: (D) Extend Tk's selection with a -time option TIP #371: (D) Improvements for the dict command TIP #372: (D) Multi-argument Yield for Coroutines TIP #373: Improved Yielding Support for Coroutines TIP #374: (D) Stackless Vwait TIP #375: (D) Symmetric Coroutines and Yieldto TIP #376: Bundle sqlite3 and tdbc::sqlite3 Packages TIP #377: Portably Determining the Number of Processors in the System TIP #378: Fixing the Performance of TIP 280 TIP #379: (D) Add a Command for Delivering Events Without Tk TIP #380: TclOO Slots for Flexible Declarations TIP #381: Call Chain Introspection and Control TIP #382: Let tk_getSaveFile ignore file overwrites TIP #383: (D) Injecting Code into Suspended Coroutines TIP #384: (D) Add File Alteration Monitoring to the Tcl Core TIP #385: (D) Functional Traces On Variables TIP #386: (D) Relocation of Tcl/Tk Source Control Repositories TIP #387: Unified Yield Command Syntax TIP #388: Extending Unicode literals past the BMP TIP #389: (D) Full support for Unicode 8.0 and later TIP #390: (D) A Logging API for Tcl TIP #391: Support for UDP Sockets in Tcl TIP #392: (D) Allow Bignums to be Disabled at Runtime on a Per-Interp Basis TIP #393: (D) Add -command Option to lsearch TIP #394: (D) Platform-Independent Handling of Contemporary Mice TIP #395: New 'string is entier' Command TIP #396: Symmetric Coroutines, Multiple Args, and yieldto TIP #397: Extensible Object Copying TIP #398: Quickly Exit with Non-Blocking Blocked Channels TIP #399: Dynamic Locale Changing for msgcat TIP #400: Setting the Compression Dictionary and Other 'zlib' Updates TIP #401: (D) Comment Words with Leading {#} TIP #402: (D) General Platform UNC Support TIP #403: Web Colors for Tk TIP #404: Let Message Catalogs get the Locale from their File Name TIP #405: Add Collecting Loops, the 'lmap' and 'dict map' Commands TIP #406: (D) "C" is for Cookie TIP #407: (D) The String Representation of Tcl Lists: the Gory Details TIP #408: (D) Allow Any Command for expr Functions TIP #409: (D) UDP in Tcl TIP #410: (D) Three Features of scan Adapted for binary scan/format TIP #411: (D) Improved Channel Introspection via "chan info" TIP #412: Dynamic Locale Changing for msgcat with On-Demand File Load TIP #413: Unicode Support for 'string is space' and 'string trim' TIP #414: (D) Add (back) Tcl_InitSubsystems as Public API TIP #415: (D) Enable Easy Creation of Circular Arc Segments TIP #416: New Options for 'load': -global and -lazy TIP #417: (D) Use Explicit Option Names for "file tempfile" TIP #418: (D) Add [binary] Subcommands for In-Place Modification TIP #419: (D) A New Command for Binding to Tk Events TIP #420: (D) 'vexpr', a Vector Expression Command TIP #421: (D) A Command for Iterating Over Arrays TIP #422: (D) Don't Use stdarg.h/va_list in Public API TIP #423: (D) Formatting Timestamps with Milliseconds TIP #424: (D) Improving [exec] TIP #425: (D) Internationalization of Default Panic Callback on Windows TIP #426: (D) Determining the "Type" of Commands TIP #427: Introspection of Asynchronous Socket Connection TIP #428: (D) Produce Error Dictionary from 'fconfigure -error' TIP #429: A 'string' Subcommand for Concatenation TIP #430: (D) Add basic ZIP archive support to Tcl TIP #431: (D) Add 'tempdir' Subcommand to 'file' TIP #432: Support for New Windows File Dialogs in Vista and Later TIP #433: Add %M binding substitution TIP #434: (D) Specify Event Sources for 'vwait' TIP #435: (R) Safe Mutex Disposal API TIP #436: Improve TclOO isa Introspection TIP #437: Tk panedwindow options for proxy window TIP #438: Ensure Line Metrics are Up-to-Date TIP #439: (D) Semantic Versioning TIP #440: Add engine to tcl_platform Array TIP #441: Add -justify Configuration Option to the listbox Widget TIP #442: Display text in progressbars TIP #443: More Tag Configuration Options for the Text Widget TIP #444: Add "weekdays" unit in clock add TIP #445: (D) Tcl_ObjType Utility Routines TIP #446: Introspect Undo/Redo Stack Depths TIP #447: Execution Time Verbosity Levels in tcltest::configure TIP #448: (D) Update Tcl_SetNotifier to Reinitialize Event Loop TIP #449: [text] undo/redo to Return Range of Characters TIP #450: (D) Add [binary] subcommand "set" for in-place modification TIP #451: (D) Modify [update] to Give Full Script Access to Tcl_DoOneEvent TIP #452: (D) Add "stubs" Package to or Along Side of TclTest TIP #453: (D) Tcl Based Automation for tcl/pkgs TIP #454: (D) Automatically Resize Frames After Last Child Removed TIP #455: (D) Extensions to [vwait]: Variable Sets and Scripted Access to Tcl_DoOneEvent TIP #456: Extend the C API to Support Passing Options to TCP Server Creation TIP #457: (D) Add Support for Named Arguments TIP #458: Add Support for epoll() and kqueue() in the Notifier TIP #459: (D) Tcl Package Introspection Improvements TIP #460: (D) An Alternative to Upvar TIP #461: (D) Separate Numeric and String Comparison Operators TIP #462: (D) Add New [info ps] Ensemble for Subprocess Management TIP #463: Command-Driven Substitutions for regsub TIP #464: Support for Multimedia Keys on Windows TIP #465: (D) Change Rule 8 of the Dodekalogue to Cut Some Corner Cases TIP #466: (D) Revised Implementation of the Text Widget TIP #467: (D) Move TIP Collection to Fossil TIP #468: (D) Support Passing TCP listen Backlog Size Option to TCP Socket Creation TIP #469: (D) A Callback for Channel-Exception Conditions TIP #470: Reliable Access to OO Definition Context Object TIP #471: (D) Add [info linkedname] Introspection Command TIP #472: Add Support for 0d Radix Prefix to Integer Literals TIP #473: Allow a Defined Target Namespace in oo::copy TIP #10000: (D) Dummy Proposal for Testing Editing Interfaces TIP #0: Tcl Core Team Basic Rules Version: $Revision: 2.6 $ Author: John Ousterhout State: Final Type: Process Vote: Done Created: 11 Dec 2000 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. TIP #1: TIP Index Version: $Revision: 1.6 $ Author: TIP Editor State: Active Type: Informative Vote: No voting Created: 14 Sep 2000 This TIP contains the index of all TIPs published over the lifetime of the TCT. It will be continually and automatically updated. TIP #2: TIP Guidelines Version: $Revision: 1.38 $ Authors: Andreas Kupries Donal K. Fellows Don Porter Mo DeJong Larry W. Virden Kevin Kenny State: Draft Type: Process Vote: Pending Created: 12 Sep 2000 This document describes and defines the editorial process a TCT document (TIP) has to go through before accepted as official. TIP #3: TIP Format Version: $Revision: 1.8 $ Authors: Andreas Kupries Donal K. Fellows State: Accepted Type: Process Vote: Done Created: 14 Sep 2000 This TIP is a companion document to the TIP Guidelines [TIP #2] and describes the structure and formatting to use when writing a TIP. TIP #4: Tcl Release and Distribution Philosophy Version: $Revision: 1.10 $ Authors: Brent Welch Donal K. Fellows Larry W. Virden Larry W. Virden State: Draft Type: Informative Vote: Pending Created: 26 Oct 2000 Discussions To: news:comp.lang.tcl 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. TIP #5: Make TkClassProcs and TkSetClassProcs Public and Extensible Version: $Revision: 1.3 $ Author: Eric Melski State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 17 Oct 2000 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. TIP #6: Include [Incr Tcl] in the Core Tcl distribution Version: $Revision: 1.6 $ Author: Mark Harrison State: Rejected Type: Project Tcl Version: 8.4.0 Vote: Done Created: 16 Oct 2000 Include [Incr Tcl] in the Core Tcl distribution. TIP #7: Increased resolution for TclpGetTime on Windows Version: $Revision: 1.4 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 26 Oct 2000 Discussions To: news:comp.lang.tcl 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. TIP #8: Add Winico support to the wm command on windows Version: $Revision: 1.8 $ Author: Vince Darley State: Final Type: Project Tcl Version: 8.4.0 Vote: Done Created: 06 Nov 2000 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. TIP #9: Tk Standard Library Version: $Revision: 1.9 $ Authors: Marty Backe Larry W. Virden Jeff Hobbs State: Withdrawn Type: Project Tcl Version: 8.4 Vote: Pending Created: 07 Nov 2000 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. TIP #10: Tcl I/O Enhancement: Thread-Aware Channels Version: $Revision: 1.6 $ Author: Andreas Kupries State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 08 Nov 2000 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. TIP #11: Tk Menubutton Enhancement: -compound option for menubutton Version: $Revision: 1.5 $ Author: Todd Helfter State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 16 Nov 2000 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. TIP #12: The "Batteries Included" Distribution Version: $Revision: 1.3 $ Authors: George A. Howlett Larry W. Virden State: Draft Type: Informative Vote: Pending Created: 15 Sep 2000 Discussions To: news:comp.lang.tcl 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. TIP #13: Web Service for Drafting and Archiving TIPs Version: $Revision: 1.26 $ Authors: Don Porter Donal K. Fellows State: Accepted Type: Process Vote: Done Created: 21 Nov 2000 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. TIP #14: Access to Tk Photo Image Transparency Version: $Revision: 2.5 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.4.0 Vote: Done Created: 22 Nov 2000 Keywords: Tk, photo, transparency, internal, access 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. TIP #15: Functions to List and Detail Math Functions Version: $Revision: 1.8 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.4.0 Vote: Done Created: 22 Nov 2000 Keywords: Tcl, expr, function, introspection 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. TIP #16: Tcl Functional Areas for Maintainer Assignments Version: $Revision: 1.48 $ Authors: Don Porter Daniel Steffen State: Accepted Type: Process Vote: Done Created: 21 Nov 2000 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. TIP #17: Redo Tcl's filesystem Version: $Revision: 1.18 $ Author: Vince Darley State: Final Type: Project Tcl Version: 8.4.0 Vote: Done Created: 17 Nov 2000 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. TIP #18: Add Labels to Frames Version: $Revision: 2.3 $ Author: Peter Spjuth State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 12 Dec 2000 This TIP proposes to add a labelled frame widget to Tk. TIP #19: Add a Text Changed Flag to Tk's Text Widget Version: $Revision: 1.6 $ Author: Neil McKay State: Final Type: Project Tcl Version: 8.4a2 Vote: Done Created: 03 Jan 2001 Obsoleted By: TIP #26 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. TIP #20: Add C Locale-Exact CType Functions Version: $Revision: 1.4 $ Author: Jeffrey Hobbs State: Deferred Type: Project Tcl Version: 8.5 Vote: Pending Created: 08 Jan 2001 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). TIP #21: Asymmetric Padding in the Pack and Grid Geometry Managers Version: $Revision: 1.6 $ Author: D. Richard Hipp State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 14 Jan 2001 Proposes modifying the /pack/ and /grid/ geometry managers to support asymmetric padding. TIP #22: Multiple Index Arguments to lindex Version: $Revision: 1.22 $ Authors: David Cuthbert Kevin Kenny Don Porter Donal K. Fellows State: Final Type: Project Tcl Version: 8.4a2 Vote: Done Created: 19 Jan 2001 Discussions To: news:comp.lang.tcl, mailto:kennykb@acm.org Keywords: lindex, multiple arguments, sublists 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. TIP #23: Tk Toolkit Functional Areas for Maintainer Assignments Version: $Revision: 1.30 $ Authors: Kevin Kenny Jim Ingham Don Porter Daniel A. Steffen Donal K. Fellows State: Accepted Type: Process Vote: Done Created: 22 Jan 2001 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. TIP #24: Tcl Maintainer Assignments Version: $Revision: 1.56 $ Authors: Don Porter Donal K. Fellows Kevin B. Kenny Jeff Hobbs Pavel Goran Daniel A. Steffen miguel sofer State: Draft Type: Informative Vote: Pending Created: 29 Jan 2001 This document keeps a record of who maintains each functional area of Tcl ([TIP #16]). TIP #25: Native tk_messageBox on Macintosh Version: $Revision: 1.3 $ Author: Mats Bengtsson State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 07 Feb 2001 Obsoleted By: TIP #152 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. TIP #26: Enhancements for the Tk Text Widget Version: $Revision: 1.9 $ Authors: Ludwig Callewaert Ludwig Callewaert State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 20 Feb 2001 Discussions To: news:comp.lang.tcl Obsoletes: TIP #19 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. TIP #27: CONST Qualification on Pointers in Tcl API's Version: $Revision: 1.6 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 25 Feb 2001 Discussions To: news:comp.lang.tcl, mailto:kennykb@acm.org 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.) TIP #28: How to be a good maintainer for Tcl/Tk Version: $Revision: 1.24 $ Author: Don Porter State: Draft Type: Informative Vote: Pending Created: 23 Feb 2001 This document presents information and advice to maintainers in the form of a Frequently Asked Questions (FAQ) list. TIP #29: Allow array syntax for Tcl lists Version: $Revision: 1.8 $ Authors: Kevin Kenny Donal K. Fellows State: Rejected Type: Project Tcl Version: 9.0 Vote: Done Created: 07 Mar 2001 Discussions To: news:comp.lang.tcl, mailto:kennykb@acm.org 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. TIP #30: Tk Toolkit Maintainer Assignments Version: $Revision: 1.46 $ Authors: 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 State: Draft Type: Informative Vote: Pending Created: 09 Mar 2001 This document keeps a record of who maintains each functional area of Tk ([TIP #23]). TIP #31: CVS tags in the Tcl and Tk repositories Version: $Revision: 1.38 $ Authors: Don Porter miguel sofer Jeff Hobbs Kevin Kenny David Gravereaux Donal K. Fellows Andreas Kupries Donal K. Fellows Kevin Kenny State: Draft Type: Informative Vote: Pending Created: 12 Mar 2001 This document keeps a record of the CVS tags used in the Tcl and Tk repositories and their meanings. TIP #32: Add Tcl_Obj-enabled counterpart to Tcl_CreateTrace Version: $Revision: 1.11 $ Authors: David Cuthbert Kevin Kenny State: Final Type: Project Tcl Version: 8.4a4 Vote: Done Created: 23 Mar 2001 Discussions To: news:comp.lang.tcl Keywords: trace, Tcl_Obj This document proposes to add Tcl_Obj support for trace procedures written in C. TIP #33: Add 'lset' Command to Assign to List Elements. Version: $Revision: 1.13 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 15 May 2001 Discussions To: news:comp.lang.tcl, mailto:kennykb@acm.org 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. TIP #34: Modernize TEA Build System Version: $Revision: 2.7 $ Authors: Mo DeJong Andreas Kupries State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Done Created: 03 May 2001 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 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. TIP #35: Enhanced Support for Serial Communications Version: $Revision: 1.12 $ Author: Rolf Schroedter State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 06 Jun 2001 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. TIP #36: Library Access to 'Subst' Functionality Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 13 Jun 2001 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. TIP #37: Uniform Rows and Columns in Grid Version: $Revision: 1.11 $ Authors: Peter Spjuth Kevin Kenny State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 19 Jun 2001 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. TIP #38: Add Support for Default Bindtags Version: $Revision: 1.5 $ Author: Bryan Oakley State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 27 Jun 2001 This TIP proposes to add support for the ability to change the default list of bindtags for a class of widgets. TIP #39: Add New Standard Tk Option: -component Version: $Revision: 1.5 $ Author: Bryan Oakley State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 04 Jul 2001 Keywords: compound, megawidget This TIP proposes to add a new standard option, /-component/, for all Tk widgets. TIP #40: Documentation Generator for Tcl Scripts Version: $Revision: 1.4 $ Authors: Arjen Markus Donal K. Fellows State: Withdrawn Type: Project Tcl Version: 8.0 Vote: Pending Created: 04 Jul 2001 Keywords: documentation, automatic generation, HTML, reference 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. TIP #41: Paned Window Tk Widget Version: $Revision: 1.13 $ Author: Eric Melski State: Final Type: Project Tcl Version: 8.4a2 Vote: Done Created: 04 Jul 2001 Keywords: widget, tk, panedwindow 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. TIP #42: Add New Standard Tk Option: -clientdata Version: $Revision: 1.4 $ Author: Bryan Oakley State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 05 Jul 2001 This TIP proposes to add a new standard option, -clientdata, for all Tk widgets. TIP #43: How to be a TIP Editor Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Draft Type: Informative Vote: Pending Created: 07 Jul 2001 This TIP describes some of the rules and guidelines that the TIP Editor uses when accepting TIPs for the first time. TIP #44: Move Tk's Private Commands and Variables into ::tk Namespace Version: $Revision: 1.9 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 16 Jul 2001 This TIP proposes that Tk's private commands and variables be moved into the namespace /::tk/ or its descendent namespace(s). TIP #45: Empty index lists for [lindex] and [lset] Version: $Revision: 1.9 $ Authors: Kevin Kenny Don Porter State: Final Type: Project Tcl Version: 8.4b1 Vote: Done Created: 18 Jul 2001 Discussions To: news:comp.lang.tcl, mailto:kennykb@acm.org Keywords: lindex, lset, multiple arguments, sublists 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. TIP #46: Consistent Overlap Behavior of Area-Defining Canvas Items Version: $Revision: 1.5 $ Author: Gerhard Hintermayer State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 18 Jul 2001 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). TIP #47: Modifying Tk to Allow Writing X Window managers Version: $Revision: 1.9 $ Authors: Neil McKay Andreas Kupries Donal K. Fellows State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 19 Jul 2001 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. TIP #48: Tk Widget Styling Support Version: $Revision: 1.20 $ Authors: Frédéric Bonnet Frédéric Bonnet State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 23 Jul 2001 Discussions To: news:comp.lang.tcl 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. TIP #49: I/O Subsystem: Add API Tcl_OutputBuffered(chan) Version: $Revision: 1.4 $ Author: Rolf Schroedter State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 25 Jul 2001 This document proposes the new public function /Tcl_OutputBuffered()/, analogous to the existing public function /Tcl_InputBuffered()/. TIP #50: Bundle [incr Tcl] with the Core Tcl distribution Version: $Revision: 1.12 $ Authors: Kevin Kenny Mark Harrison Jeff Hobbs Andreas Kupries Karl Lehenbauer Michael McLennan Don Porter Brent Welch State: Final Type: Informative Vote: Done Created: 27 Jul 2001 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. TIP #51: Native Menubutton on Macintosh Version: $Revision: 1.4 $ Author: Mats Bengtsson State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 04 Aug 2001 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. TIP #52: Hierarchical Namespace Lookup of Commands and Variables Version: $Revision: 1.6 $ Authors: David Cuthbert Andreas Kupries State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 09 Aug 2001 Discussions To: news:comp.lang.tcl Keywords: namespace, lookup, hierarchy 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. TIP #53: Addition of 'assert' Command Version: $Revision: 1.4 $ Authors: Gerald W. Lester Kevin Kenny State: Withdrawn Type: Project Tcl Version: 8.4 Vote: Pending Created: 14 Aug 2001 Keywords: bytecode, compiler This TIP proposes the addition of an /assert/ command and supporting infrastructure to the Tcl core. TIP #54: Using PURLs to Unite the Tcl Webspace Version: $Revision: 1.8 $ Authors: Andreas Kupries Jeff Hobbs State: Withdrawn Type: Process Vote: Pending Created: 16 Aug 2001 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. TIP #55: Package Format for Tcl Extensions Version: $Revision: 1.18 $ Authors: Steve Cassidy Larry W. Virden State: Draft Type: Informative Vote: No voting Created: 16 Aug 2001 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. TIP #56: Standardize Call Interface to Tcl_Eval* Functions Version: $Revision: 1.4 $ Author: Miguel Sofer State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 28 Aug 2001 This TIP replaces /Tcl_EvalTokens/ with /Tcl_EvalTokensStandard/, which obeys the standard result management conventions for script evaluation functions. TIP #57: Move TclX's [lassign] into the Tcl Core Version: $Revision: 2.4 $ Authors: Donal K. Fellows Agnar Renolen Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 30 Aug 2001 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. TIP #58: Extend [set] to Assign Multiple Values to Multiple Variables Version: $Revision: 1.6 $ Author: Anselm Lingnau State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 02 Sep 2001 This TIP proposes a multiple assignment command as a backwards-compatible extension to the Tcl /set/ command. TIP #59: Embed Build Information in Tcl Binary Library Version: $Revision: 1.16 $ Author: Andreas Kupries State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 04 Sep 2001 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. TIP #60: EXTERN Macro Change to Support a Wider Set of Attributes Version: $Revision: 1.21 $ Authors: David Gravereaux Donal K. Fellows State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 06 Sep 2001 This TIP proposes a change to how the EXTERN macro in /tcl.h/ works to support a wider range of compiler specific attributes. TIP #61: Make TK_NO_SECURITY Run-Time Switchable Version: $Revision: 1.4 $ Authors: Jeff Hobbs Donal K. Fellows State: Deferred Type: Project Tcl Version: 8.5 Vote: Pending Created: 12 Sep 2001 This TIP changes the compile time Tk define TK_NO_SECURITY to be switchable at run-time. TIP #62: Add Support for Command Tracing Version: $Revision: 1.11 $ Authors: Hemang Lavana Vince Darley State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 18 Sep 2001 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. TIP #63: Add -compound Option to Menu Entries Version: $Revision: 1.5 $ Author: Vince Darley State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 27 Sep 2001 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. TIP #64: Improvements to Windows Font Handling Version: $Revision: 1.9 $ Authors: Chris Nelson Kevin Kenny State: Deferred Type: Project Tcl Version: 8.4 Vote: Done Created: 27 Sep 2001 Obsoleted By: TIP #145 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. TIP #65: Enhanced [info args] Version: $Revision: 1.6 $ Authors: Glenn Jackman Don Porter Glenn Jackman State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 18 Sep 2001 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. TIP #66: Stand-alone and Embedded Tcl/Tk Applications Version: $Revision: 1.15 $ Author: Arjen Markus State: Draft Type: Informative Vote: Pending Created: 02 Oct 2001 Keywords: installation, initialisation, embedded, resources 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++. TIP #67: Allow Subclassing of tk_getOpenFile, tk_getSaveFile on UNIX Version: $Revision: 1.5 $ Authors: Chris Nelson Al Zielaskowski State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 09 Oct 2001 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). TIP #68: Dynamic Trace Result Handling Version: $Revision: 1.5 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 16 Oct 2001 This TIP proposes an extension to the /Tcl_TraceVar/ API to cope with dynamically allocated results. TIP #69: Improvements for the Tcl Hash Table Version: $Revision: 1.10 $ Authors: George A. Howlett Don Porter Donal K. Fellows State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 16 Oct 2001 Discussions To: news:comp.lang.tcl 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. TIP #70: A Relational Switch Control Structure Version: $Revision: 1.8 $ Authors: Bhushit Joshipura Donal K. Fellows State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 20 Oct 2001 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. TIP #71: Tk Bitmap Image Improvements Version: $Revision: 1.14 $ Authors: Chris Nelson Kevin Kenny Eric Melski Donal K. Fellows State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 26 Oct 2001 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). TIP #72: 64-Bit Value Support for Tcl on 32-Bit Platforms Version: $Revision: 1.10 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 05 Nov 2001 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). TIP #73: Export Tcl_GetTime in the Public API Version: $Revision: 1.4 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 03 Nov 2001 This TIP proposes that the existing /TclpGetTime/ function be renamed to be /Tcl_GetTime/ and included in the published API. TIP #74: wm stackorder command Version: $Revision: 1.6 $ Author: Mo DeJong State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 12 Nov 2001 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. TIP #75: Refer to Sub-RegExps Inside 'switch -regexp' Bodies Version: $Revision: 1.14 $ Authors: Donal K. Fellows János Holányi Salvatore Sanfilippo State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 28 Nov 2001 Discussions To: http://purl.org/mini/cgi-bin/chat.cgi Keywords: switch, regexp, parentheses 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. TIP #76: Make 'regsub' Return a String Version: $Revision: 1.3 $ Authors: Bruce Hartweg Donal K. Fellows State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 29 Nov 2001 This TIP proposes altering the [regsub] command so that it can return the substituted string as the result of the command. TIP #77: Support for Nested Paired Item Lists Version: $Revision: 1.3 $ Author: Christian Williams State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 07 Dec 2001 Obsoleted By: TIP #111 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]. TIP #78: TEA 2.0 Definitions Version: $Revision: 1.4 $ Authors: Andreas Kupries Larry W. Virden State: Draft Type: Informative Vote: Pending Created: 15 Dec 2001 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. TIP #79: Add Deletion Callback to Tcl_CreateObjTrace Version: $Revision: 1.7 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 03 Jan 2002 Discussions To: news:comp.lang.tcl Keywords: trace, Tcl_Obj 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. TIP #80: Additional Options for 'lsearch' Version: $Revision: 1.10 $ Authors: Tom Wilkason Tom Wilkason State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 02 Jan 2002 Discussions To: news:comp.lang.tcl 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. TIP #81: [incr Tcl] Functional Areas for Maintainer Assignments Version: $Revision: 1.7 $ Author: Donal K. Fellows State: Withdrawn Type: Process Vote: Pending Created: 07 Jan 2002 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. TIP #82: Add -offrelief Option to Checkbutton and Radiobutton Version: $Revision: 1.4 $ Author: D. Richard Hipp State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 10 Jan 2002 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. TIP #83: Augment Tcl_EvalFile with Tcl_EvalChannel and Tcl_EvalUrl Version: $Revision: 1.6 $ Authors: Marian Szczepkowski State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 24 Jan 2002 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. TIP #84: Add control for mouse movement filtering Version: $Revision: 1.5 $ Authors: Jyrki Alakuijala Jeff Hobbs State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 26 Feb 2002 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. TIP #85: Custom Comparisons in Tcltest Version: $Revision: 1.14 $ Authors: Arjen Markus Don Porter State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 31 Jan 2002 Keywords: test, string comparison, floating-point 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. TIP #86: Improved Debugger Support Version: $Revision: 1.26 $ Authors: Peter MacDonald Peter MacDonald State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 08 Feb 2002 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. TIP #87: Allow Tcl Access to the Recursion Limit Version: $Revision: 1.11 $ Authors: Stephen Trier Richard Suchenwirth State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 19 Feb 2002 Discussions To: news:comp.lang.tcl Keywords: Tcl_SetRecusionLimit, recursion limit 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. TIP #88: Extend Tcl Process Id Control via 'pid' Version: $Revision: 1.9 $ Authors: Jeff Hobbs Vince Darley State: Rejected Type: Project Tcl Version: 8.4 Vote: Done Created: 11 Mar 2002 Obsoleted By: TIP #240 This TIP proposes extended the [pid] command to provide more control over native processes in Tcl. TIP #89: Try/Catch Exception Handling in the Core Version: $Revision: 1.10 $ Authors: Tom Wilkason Frank Pilhofer <520065607613-0001_at_t-online.de> State: Withdrawn Type: Project Tcl Version: 8.6 Vote: Pending Created: 11 Mar 2002 Discussions To: news:comp.lang.tcl Obsoleted By: TIP #329 This TIP proposes the addition of a *try*...*catch*...*finally* command to provide a more robust and powerful exception handling mechanism. TIP #90: Enable [return -code] in Control Structure Procs Version: $Revision: 1.39 $ Authors: Don Porter Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 15 Mar 2002 This TIP analyzes existing limitations on the coding of control structure commands as /proc/s, and presents expanded forms of /catch/ and /return/ to remove those limitations. TIP #91: Backward Compatibility for Channel Types with 32-bit SeekProcs Version: $Revision: 1.5 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 03 May 2002 [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. TIP #92: Move Package Load Decisions to Application Developer Version: $Revision: 1.3 $ Author: Clif Flynt State: Withdrawn Type: Project Tcl Version: 8.4 Vote: Pending Created: 13 May 2002 Keywords: package require, namespace, pkg_mkIndex 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. TIP #93: Get/Delete Enhancement for the Tk Text Widget Version: $Revision: 1.8 $ Authors: Craig Votava Donal K. Fellows Jeff Hobbs State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 28 Dec 2001 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. TIP #94: Add Listbox -activestyle Option Version: $Revision: 1.5 $ Author: Jeff Hobbs State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 29 May 2002 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). TIP #95: Add [wm attributes] Command Version: $Revision: 1.5 $ Author: Jeff Hobbs State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 29 May 2002 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. TIP #96: Add [tk caret] Command and Tk_SetCaretPos API Version: $Revision: 1.4 $ Author: Jeff Hobbs State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 29 May 2002 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). TIP #97: Moving Vertices of Canvas Items Version: $Revision: 1.10 $ Authors: Agnar Renolen Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 07 Jun 2002 Keywords: Tk 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. TIP #98: Adding Transparency Compositing Rules to Photo Images Version: $Revision: 1.5 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 09 Jun 2001 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. TIP #99: Add 'file link' to Tcl Version: $Revision: 1.23 $ Author: Vince Darley State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 11 Jun 2002 Tcl can read links, but cannot create them. This TIP proposes adding a /file link/ subcommand to allow cross-platform creation of links. TIP #100: Add Support for Unloading Dynamic Libraries Loaded with [load] Version: $Revision: 1.10 $ Author: George Petasis State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 11 Jun 2002 Discussions To: news:comp.lang.tcl Keywords: load, unload, dynamic library 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. TIP #101: Export Tcltest Configuration Version: $Revision: 1.4 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 11 Jun 2002 Proposes public command /tcltest::configure/ to give programmatic control to processing configuration options of the tcltest package. TIP #102: Change [trace list] to [trace info] Version: $Revision: 1.4 $ Author: Reinhard Max State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 12 Jun 2002 Keywords: trace, info, introspection This TIP proposes to change the name of the introspection subcommand of the /trace/ command from /list/ to /info/. TIP #103: Argument Expansion Command Version: $Revision: 1.13 $ Authors: Peter Spjuth Donal K. Fellows Andreas Leitgeb State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 15 Jun 2002 This TIP proposes to add a command that can perform argument expansion in a safe and efficient manner. TIP #104: Generalization of the Tk Undo Subsystem Version: $Revision: 1.6 $ Authors: Ludwig Callewaert Larry W. Virden. State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 19 Jun 2002 Discussions To: news:comp.lang.tcl This TIP proposes a reimplementation of the Tk Text widget undo feature. The text widget interface is not affected. No functional changes are made at the Tcl level. The purpose of the reimplementation is to move the undo feature from a text only implementation to a general implementation also usable by other widgets. This opens the door to undoing also tag, mark and other operations, and allows for an exposure of the undo stack at the Tcl level. These new features are however not part of this TIP. TIP #105: Add Prefix Matching for Switch Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 03 Jul 2002 Obsoleted By: TIP #195 This TIP adds a new option to the [switch] command to support matching of strings to unique prefixes of patterns, similar to Tcl's existing subcommand-name matching or Tk's option-name matching. TIP #106: Add Encoding Abilities to the [dde] Command Version: $Revision: 1.14 $ Author: Harald Oehlmann State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 13 Aug 2002 When using Windows DDE communication with non-Tcl programs, the encoding of the exchanged strings is mostly needed to be the system encoding. Selection of this behaviour should be possible with in the *dde* command should be done by a parameter. TIP #107: Fix the 2-second "raise delay" in Tk Version: $Revision: 1.4 $ Author: Joe English State: Final Type: Project Tcl Version: 8.4 Vote: Done Created: 28 Aug 2002 This TIP explains the genesis of the long delays often associated with the [raise] and [lower] commands under Unix/X with some window managers, as well as describing the solution. TIP #108: Summary of Changes to Generic Tcl/Tk Code to Enable Mac OS X Port Version: $Revision: 1.2 $ Author: Jim Ingham State: Final Type: Informative Vote: No voting Created: 29 Aug 2002 The submission of the changes to generic Tcl/Tk necessary for the Mac OS X port was discussed on the Tcl Core mailing list. In light of the very minor changes to shared code involved, and to facilitate including the port in the 8.4 release, it was decided that we would not hold a formal vote. This informational TIP is offered to summarize the work done, however, and to maintain a more complete record. TIP #109: New Look for Checkbutton and Radiobutton on Unix Version: $Revision: 1.4 $ Author: Brian Griffin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 01 Oct 2002 This TIP proposes changing the look of the Tk checkbutton and radiobutton widgets on Unix to more closely match the Windows counterparts. TIP #110: Add a Tristate Mode to the Checkbutton and Radiobutton Version: $Revision: 1.12 $ Author: Brian Griffin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 01 Oct 2002 This TIP proposes adding a third value (tristate) to the checkbutton and radiobutton widgets and corresponding display. TIP #111: Dictionary Values and Manipulators Version: $Revision: 1.12 $ Authors: Donal K. Fellows David S. Cargo State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 05 Oct 2002 This TIP proposes adding a standard value format (and supporting commands) to Tcl that implements a value-to-value mapping, just as Tcl's list values can be regarded as implementing a number-to-value mapping. TIP #112: Ensembles are Namespaces are Commands Version: $Revision: 2.28 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 10 Oct 2002 This TIP proposes unifying the concept of ensembles (from [Incr Tcl]) with namespaces and commands. It also adds control of command rewriting to allow for more efficient support for object systems like Snit. TIP #113: Multi-Line Searches in the Text Widget Version: $Revision: 1.13 $ Author: Vince Darley State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 11 Oct 2002 This TIP proposes enhancing the implementation of the /$textwidget search/ subcommand to allow matching of both exact strings and regexp patterns which span multiple lines, and to allow reporting on all matches. TIP #114: Eliminate Octal Parsing of Leading Zero Integer Strings Version: $Revision: 2.3 $ Author: Don Porter State: Draft Type: Project Tcl Version: 9.0 Vote: Done Created: 16 Oct 2007 Keywords: octal This TIP proposes elimination of Tcl's practice of using octal notation to interpret a string with a leading zero when an integer value is expected. TIP #115: Making Tcl Truly 64-Bit Ready Version: $Revision: 1.3 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 23 Oct 2002 This TIP proposes changes to Tcl to make it operate more effectively on 64-bit systems. TIP #116: More Safety for Large Images Version: $Revision: 1.6 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 28 Oct 2002 This TIP alters the C API for Tk's images so that failures to allocate sufficient memory for a large image can be handled more gracefully than a straight /panic()/. TIP #117: Object Type Introspection Version: $Revision: 1.9 $ Author: Peter Spjuth State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 01 Nov 2002 Obsoleted By: TIP #214 This TIP proposes to add a command to give information on the current internal representation of an object. TIP #118: Enhance [file attributes] and [file copy] on Mac OS X & BSD Version: $Revision: 1.7 $ Author: Daniel A. Steffen State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 01 Nov 2002 This TIP proposes a set of changes to /[file attributes]/ and /[file copy]/ to make them function better on MacOS X and other BSD-Unix systems. TIP #119: Angled Text on a Canvas Version: $Revision: 1.8 $ Authors: Simon Geard Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 18 Nov 2002 The current text object on a canvas does not support the creation of text strings at an arbitrary angle. For some applications this is limitation is sufficiently serious to disqualify Tk from use. This TIP removes this restriction. TIP #120: Restricted DDE Services Version: $Revision: 1.5 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 04 Dec 2002 This TIP will enhance the DDE package for use with safe interpreters and allow programmer control of the commands exposed by the DDE service. TIP #121: Controlled Application Shutdown via Tcl_Exit Version: $Revision: 1.8 $ Author: Joe Mistachkin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 05 Dec 2002 This TIP will allow all applications to perform a controlled shutdown (or do nothing) in the event that /Tcl_Exit()/ is called. TIP #122: Use tcl_{non,}wordchars Throughout Tcl/Tk Version: $Revision: 1.9 $ Authors: Martin Weber Vince Darley State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 12 Dec 2002 This TIP shall bring flexible management of word and non-word chars to Tcl, to be used throughout the Tcl realm in e.g. [regexp]'s \w \W, Tk's [textwidget], [string] wordstart/wordend etc. TIP #123: Adding an Exponentiation Operator to the [expr] Command Version: $Revision: 1.6 $ Authors: Arjen Markus Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 16 Dec 2002 Keywords: mathematics, evaluation This TIP proposes to add a new operator to the operators recognised by the [expr] command: the exponentiation operator. This operator will enhance the functionality of the current /pow()/ function by returning a result that depends on the type of its operands. It will also make complicated formulae more readable. TIP #124: High-Resolution Absolute Time Values From [clock] Version: $Revision: 1.13 $ Authors: Mark Harrison Kevin Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 20 Dec 2002 This TIP proposes altering the *clock clicks* command to add a *-microseconds* option, and to tie it to an absolute reference. TIP #125: Converting between Frame and Toplevel Windows Version: $Revision: 1.10 $ Authors: Brian Griffin Donal K. Fellows Sacha Schär State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 20 Jan 2003 Keywords: reparent, Tk This TIP modifies the *wm* command to act as a geometry manager for Frames, allowing them to become Toplevel windows. TIP #126: Rich Strings for Representation Persistence Version: $Revision: 1.1 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 30 Jan 2003 This TIP enriches the standard UTF-8 string representation of every /Tcl_Obj/ to allow for improved persistence of non-string representations. This, combined with rules for substring and substitution handling, allows the lifetime of an object to correspond far more closely with the more-broadly understood concept of "object lifetime". TIP #127: Add an -index Option to [lsearch] Version: $Revision: 1.13 $ Author: Michael Schlenker State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Feb 2003 Matching the /lsort/ functionality a /-index/ option should be added to the /lsearch/ command to make searching lists in list easier. The /lsort -index/ and the /lsearch -index/ options should accept list style indices like /lindex/ and /lset/ do. This TIP proposes such added options. TIP #128: Ability to Install a Custom Memory Allocator Version: $Revision: 1.5 $ Authors: Christophe Cap Mike Jackson State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 13 Mar 2003 This TIP alters Tcl to allow embedded uses of the Tcl library (and any extensions) to either use the Tcl memory allocators as their main allocator (especially in C++) or to set the memory allocator that Tcl uses for itself through /ckalloc()/. TIP #129: New Format Codes for the [binary] Command Version: $Revision: 1.5 $ Authors: Arjen Markus Torsten Reincke State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 14 Mar 2003 Keywords: IEEE, binary data, Tcl This TIP proposes to add a set of new format codes to the *binary* command to enhance its ability to deal with especially non-native floating-point data. The assumption is that current limitations are due to the distinction between little-endian and big-endian storage of such data. TIP #130: Unique DDE server names. Version: $Revision: 1.4 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 23 Mar 2003 The /dde/ package server registration code should ensure that the server names are unique. The proposed changes will mean end-user visible changes for some scripts. TIP #131: Read My Mind and Do What I Mean Version: $Revision: 1.2 $ Author: Joe English State: Draft Type: Project Tcl Version: 8.5 Vote: No voting Created: 01 Apr 2003 A new Tcl command is proposed, /rmmadwim/. This is an acronym for ``Read My Mind and Do What I Mean/. This command has obvious utility. TIP #132: Revised Floating-Point Conversions in Tcl Version: $Revision: 1.14 $ Authors: Kevin Kenny Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 31 Mar 2003 Keywords: floating point, IEEE, precision This TIP proposes several changes to the conversion between floating point numbers and character strings. The changes are made to restore the "everything is a string" contract that Tcl implicitly makes; without them, there are observable differences in the behavior of floating point numbers, depending on the state of the internal representation. TIP #133: Extending [expr] Operators Version: $Revision: 1.6 $ Author: Richard Suchenwirth State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 08 Apr 2003 This TIP proposes a way to define new operators for conditions and the *expr* command. It also includes demonstrations of how it might work in the examples: *in* tests inclusion in a list, and *and*, *or*, and *not* are aliases for "*&&*", "*||*", "*!*". TIP #134: Subsystem Per-Thread Data Interfaces Version: $Revision: 1.4 $ Author: Colin McCormack State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 12 May 2003 Tcl core subsystems per-thread data is good, because it modularises the core. None of the structures or access keys are exported, which is bad, because it makes modification to these subsystems difficult in a CVS world. TIP #135: Change 'dde servername -exact' Option to -force Version: $Revision: 1.5 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 17 May 2003 Keywords: dde [TIP #130] provides for unique DDE server name registration. This TIP renames one of the options it defines to better reflect its behaviour. TIP #136: Large List Initialisation Version: $Revision: 1.5 $ Author: Simon Geard State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 25 May 2003 This TIP proposes the addition of a list initialisation command so that large lists can be easily and efficiently initialised. TIP #137: Specifying Script Encodings for [source] and tclsh Version: $Revision: 1.6 $ Author: Anton Kovalenko State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 29 May 2003 This TIP proposes a way to specify encoding used to read a script with /source/ command and (tclsh, wish) shell. TIP #138: New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables Version: $Revision: 1.5 $ Authors: Kevin Kenny Joe Mistachkin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 29 May 2003 Keywords: thread specific data, hash table, memory allocation This TIP proposes a new flag in the Tcl hash table API in support of a proposed rework of thread-specific data management. TIP #139: Publish Part of Tcl's Namespace API Version: $Revision: 1.5 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 03 Jun 2003 This TIP makes the simpler parts of Tcl's Namespace API available to the general C-coding public. TIP #140: Tracing Namespace Modifications Version: $Revision: 1.2 $ Author: Donal K. Fellows State: Deferred Type: Project Tcl Version: 8.5 Vote: Pending Created: 04 Jun 2003 This TIP allows scripts to register callbacks to monitor alterations to namespaces, such as their deletion, the creation, renaming and deletion of commands within the namespace and modifications to the exports list of the namespace. TIP #141: Multiple Initial-Files in [tk_getOpenFile] Version: $Revision: 1.8 $ Author: David N. Welton State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 18 Jul 2003 This TIP proposes modifying the semantics of the *-initialfile* option when the *tk_get*File* commands are asked to select multiple files so as to allow several files to be selected initially. TIP #142: Search Path Variable to Lookup Command Names in Namespaces Version: $Revision: 1.3 $ Author: Ulrich Schoebel State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 23 Jul 2003 Keywords: namespace, command lookup, search path This TIP adds a Tcl variable to define the search path for command name lookup across namespaces. TIP #143: An Interpreter Resource Limiting Framework Version: $Revision: 1.13 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 25 Jul 2003 This TIP introduces a mechanism for creating and manipulating per-interpreter resource limits. This stops several significant classes of denial-of-service attack, and can also be used to do things like guaranteeing an answer within a particular amount of time. TIP #144: Argument Expansion Syntax Version: $Revision: 1.8 $ Authors: Peter Spjuth Donal K. Fellows State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 26 Jul 2003 Obsoleted By: TIP #157 This TIP proposes to add syntax in Tcl to perform argument expansion in a safe and efficient manner. TIP #145: Enhanced Tk Font Handling Version: $Revision: 1.10 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 31 Jul 2003 Obsoletes: TIP #64 [TIP #64] suggests some improvements to font handling under windows. However, not all of this TIP appears to have been implemented and I believe this can be done better using the Tk named fonts mechanism. TIP #146: Add Overall Anchoring to the Grid Geometry Manager Version: $Revision: 1.16 $ Author: Peter Spjuth State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 05 Aug 2003 This TIP proposes to add an anchor option to grid managers to control the behaviour of a grid where all weights are zero. TIP #147: Make Grid's Column/Row Configure Easier Version: $Revision: 1.5 $ Author: Peter Spjuth State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 05 Aug 2003 This TIP proposes to add an alternative way to state which columns/rows in a grid are affected by an column/rowconfigure command. TIP #148: Correct [list]-Quoting of the '#' Character Version: $Revision: 1.5 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 08 Aug 2003 This TIP proposes the correction of a long-standing bug in the [list]-quoting of the /#/ character. TIP #149: Allow "enabled" as Synonym for "normal" in -state Option Version: $Revision: 1.2 $ Author: Michael A. Cleverly State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 13 Aug 2003 This TIP allows Tk widgets which have a configurable /-state/ option to accept /enabled/ as a synonym for /normal/. TIP #150: Implement the Tk send Command for Windows Version: $Revision: 1.6 $ Author: Pat Thoyts State: Deferred Type: Project Tcl Version: 8.5 Vote: Done Created: 25 Jul 2003 Keywords: tk, send This TIP proposes to provide an implementation of the send mechanism for Tk under Windows. TIP #151: Remove -e: Command Line Option from tclsh and wish Version: $Revision: 1.7 $ Authors: Don Porter Don Porter Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 22 Aug 2003 This TIP proposes removal of the -e: command line option to tclsh and wish that was Accepted as part of [TIP #137]. TIP #152: New -detail Option for tk_messageBox Version: $Revision: 1.7 $ Author: Mats Bengtsson State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Aug 2003 Obsoletes: TIP #25 Keywords: Tk This TIP proposes a new option for the *tk_messageBox* for text that is less significant than the *-message* text. TIP #153: Enhancing the [winfo toplevel] Command Version: $Revision: 1.8 $ Author: Neil McKay State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Aug 2003 The [winfo toplevel] command returns the Tk toplevel window that encloses the window that's passed as an argument. However, Tk extensions may allow the creation of windows which reside at the top of a window hierarchy, but are not Tk toplevel widgets. If a subwindow of one of these top-of-hierarchy widgets is passed to [winfo toplevel], it returns an empty string, making it impossible to determine what hierarchy the window resides in. This TIP proposes enhancing the [winfo toplevel] command so that it will return the top window in the hierarchy regardless of what type of widget it is. TIP #154: Add Named Colors to Tk Version: $Revision: 1.26 $ Author: Damon Courtney State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 03 Sep 2003 This TIP proposes the addition of a *color* command at the Tk level to allow developers to create named colors as they can already do with both fonts and images. TIP #155: Fix Some of the Text Widget's Limitations Version: $Revision: 1.23 $ Author: Vince Darley State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 08 Sep 2003 Tk's text widget is very powerful, but has a number of known limitations. In particular the entire handling of wrapped lines and 'display/visual entities' versus 'logical entities' is quite limited. The most obvious side-effect of these inadequacies is the 'scrollbar problem' (in which, particularly when there are long wrapped lines in the widget, the vertical scrollbar slider changes in size depending on the number of logical lines currently displayed, see for example). This TIP overhauls the widget to provide consistent, complete support for 'display lines', 'display indices' and as a consequence smooth, pixel-based scrolling. A few other small bugs/issues have also been resolved. TIP #156: Language-Neutral Root Locale for Msgcat Version: $Revision: 1.4 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 20 Sep 2003 Discussions To: news:comp.lang.tcl This TIP proposes to extend Tcl's message catalog mechanism by adding a "root locale" (whose name is the empty string) that is searched after searches in all the language-dependent locales have failed. TIP #157: Argument Expansion with Leading {expand} Version: $Revision: 1.7 $ Authors: Kevin B. Kenny Peter Spjuth Donal K. Fellows Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 20 Sep 2003 Obsoletes: TIP #144 This TIP proposes to add syntax in Tcl to perform argument expansion in a safe and efficient manner. TIP #158: Distinguish the two 'Enter' keys on Windows Version: $Revision: 1.9 $ Authors: Wolfgang Großbauer Kevin Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 20 Sep 2003 Discussions To: news:comp.lang.tcl This TIP proposes that the "extended keys" on a Windows keyboard be labeled with so that they can be distinguished from their counterparts on the main keyboard. TIP #159: Extending Tk 'wm' Command to Support Coloured Icons Version: $Revision: 1.7 $ Author: Georgios Petasis State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 01 Oct 2003 Currently, Tk lacks a mechanism for allowing scripts to place colour icons in the window manager decorations of a toplevel window. Tk supports only the placement of monochrome bitmaps through the /wm iconbitmap/ and /wm iconmask/ commands. This TIP proposes an extension of the /wm/ command with the /iconphoto/ subcommand, which will pass a set of photo images as possible window manager icons. TIP #160: Improvements to Terminal and Serial Channel Handling Version: $Revision: 1.3 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 17 Oct 2003 Terminals and other kinds of serial lines have other capabilities and requirements that are not currently controllable using Tcl. This TIP adds new options to [fconfigure] to allow these advanced capabilities to be supported within Tcl in a straight-forward way. TIP #161: Change Default for Menu's -tearoff Option to False Version: $Revision: 1.2 $ Author: Mark Roseman State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 19 Oct 2003 This TIP proposes changing the default value of the /-tearoff/ option on menu widgets to false, from its current setting of true. TIP #162: IPv6 Sockets for Tcl Version: $Revision: 1.16 $ Authors: Rafael Martínez Torres Donal K. Fellows Reinhard Max State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 23 Oct 2003 This TIP is about allowing Tcl to use IPv6 sockets in virtually the same way that you would use the current (IPv4) sockets. TIP #163: A [dict merge] Subcommand Version: $Revision: 1.4 $ Author: Joe English State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 14 Nov 2003 This TIP proposes a new [dict] subcommand which is used to combine multiple dictionaries. TIP #164: Add Rotate Subcommand to the Canvas Widget Version: $Revision: 1.5 $ Authors: Arjen Markus Dimitrios Zachariadis Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 17 Nov 2003 Keywords: Tk, canvas This TIP proposes to add a /rotate/ subcommand to the canvas widget to facilitate rotating items in very much the same way as is now possible with scaling and moving. TIP #165: A User-Data Field for Virtual Events Version: $Revision: 1.6 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 17 Nov 2003 Keywords: Tk, substitution This TIP proposes adding to virtual events a new field that is not interpreted by Tk. This will make it far easier for user-code to pass information between creators and consumers of events instead of forcing the use of fragile global variables for this purpose. TIP #166: Reading and Writing the Photo Image Alpha Channel Version: $Revision: 1.12 $ Authors: Donal K. Fellows Simon Bachmann State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 19 Nov 2003 Keywords: Tk, image get, image put This TIP describes how to update the *image get* and *image put* subcommands so as to allow script-level access to the full alpha channel information that has been present in the photo image data model since Tk 8.3. TIP #167: Add a New Option for Context Help for Windows Version: $Revision: 1.9 $ Author: Ramon Ribó State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 19 Nov 2003 This TIP proposes adding a new option to *wm attributes* for the Windows version of Tk that offers contextual help in that window. Additionally, a new event type ** is defined, that will be delivered when the user picks the Help button in the window and picks over a widget. The event will be also hitted when user presses F1 over one window. TIP #168: Cubic Bezier Curves on the Canvas Version: $Revision: 1.10 $ Author: Lars Hellström State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 25 Jan 2004 This document proposes a new *-smooth* method for *line* and *polygon* canvas items that supports cubic Bezier curves and clarifies some of the existing terminology in that area. TIP #169: Add Peer Text Widgets Version: $Revision: 1.15 $ Authors: Brian Griffin Vince Darley State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 28 Jan 2004 This TIP proposes adding a method to the text widget that will create peer text widgets, allowing two or more text widgets to share the same text, tags, and marks. TIP #170: Better Support for Nested Lists Version: $Revision: 1.6 $ Authors: Sergey Babkin Don Porter Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 30 Jan 2004 Nested lists are easy to create with Tcl but then manipulating them is not easy. For example, think about how to change a value nested in a list 2 levels deep? How about 4 levels deep? The proposed new commands make such manipulation easy, and make the nested lists a great replacement for arrays and structures in C-like languages. TIP #171: Change Default Bindings Behavior Version: $Revision: 1.11 $ Authors: Jeff Hobbs Keith Vetter State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 05 Mar 2004 This TIP proposes changing the default bindings in Tk to have "better" behaved defaults for a larger set of applications. TIP #172: Improve UNIX Tk Look and Feel Version: $Revision: 1.4 $ Author: David N. Welton State: Withdrawn Type: Project Tcl Version: 8.5 Vote: No voting Created: 08 Mar 2004 Obsoleted By: TIP #248 In the spirit of "worse is better", this TIP proposes a simple way to notably improve Tk's look and feel for the 8.5 release of Tk. It does not fix all the problems, and won't make Tk look like whatever toolkit is "native" on the user's machine (Gtk or Qt), but will at least improve the current situation. TIP #173: Internationalisation and Refactoring of the 'clock' Command Version: $Revision: 1.22 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 11 Mar 2004 Discussions To: news:comp.lang.tcl The [clock] command provides Tcl's fundamental facilities for computing with dates and times. It has served Tcl faithfully since 7.6, but the computing world has advanced significantly in the decade that it has been in service. This TIP proposes a (nearly entirely compatible) reimplementation of [clock] that will allow for fewer ambiguities on input, improved localisation, more portability, and less exposure of platform-dependent bugs. A significantly greater fraction of [clock] shall be implemented in Tcl than it is today, and the code shall be refactored to use the ensemble mechanism introducted for Tcl 8.5 (see [TIP #112]). TIP #174: Math Operators as Commands Version: $Revision: 1.21 $ Authors: Kristoffer Lawson Donal K. Fellows David S. Cargo Peter Spjuth Kevin B. Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 15 Mar 2004 This TIP describes a proposal for math operators in Tcl as separate commands, acting much like the equivalent in the Lisp language. This would make simple usage of mathematics much clearer. TIP #175: Add an -async Option to [open] Version: $Revision: 1.9 $ Author: Neil Madden State: Withdrawn Type: Project Tcl Version: 9.0 Vote: Pending Created: 15 Mar 2004 This TIP propose to add an /-async/ option to the [open] command, with identical semantics to the /-async/ option to the [socket] command. TIP #176: Add String Index Values Version: $Revision: 1.8 $ Authors: Damon Courtney Don Porter Damon Courtney State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 16 Mar 2004 This TIP proposes extended index formats to be recognized by *TclGetIntForIndex*, supporting simple index arithmetic for string and list indices. TIP #177: Add -stretch Option to panedwindow Widget Version: $Revision: 1.5 $ Author: Brian Griffin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 17 Mar 2004 Keywords: Tk This TIP proposes adding a *paneconfigure* option to *panedwindow*s that will allow alternative fill behavior. TIP #178: [info pid] and [info tid] Subcommands Version: $Revision: 1.9 $ Author: Joe Mistachkin State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 21 Mar 2004 This TIP proposes two new *info* subcommands which are used to obtain the current process and thread identifiers. TIP #179: Add -hide Option to panedwindow Widget Version: $Revision: 1.5 $ Author: Brian Griffin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 22 Mar 2004 Keywords: Tk This TIP proposes adding a *paneconfigure* option to *panedwindow*s that will control pane visibility. TIP #180: Add a Megawidget Support Core Package Version: $Revision: 1.5 $ Author: Damon Courtney State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 22 Mar 2003 Keywords: Tk This TIP proposes the addition of a "megawidget" package to Tk as a core package which contains a set of functions useful for building megawidgets with standard script-level behaviour in Tk. TIP #181: Add a [namespace unknown] Command Version: $Revision: 1.33 $ Author: Neil Madden State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 23 Mar 2004 This TIP proposing adding a new *namespace* subcommand, *unknown*, which would register a per-namespace procedure for dealing with unknown commands. TIP #182: Add [expr bool] Math Function Version: $Revision: 1.16 $ Authors: Joe Mistachkin Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 23 Mar 2004 This TIP proposes a new *expr* math function *bool()*. TIP #183: Add a Binary Flag to [open] Version: $Revision: 1.10 $ Authors: Andreas Leitgeb Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 24 Mar 2004 Keywords: Tcl To handle binary files, one currently has to open the file, and then in a second step *fconfigure* it with *-translation binary*. This TIP proposes to add a flag "b" to open's /access/-argument to set initial translation to binary (rather than auto). TIP #184: Avoid Creating Unusable Variables Version: $Revision: 1.4 $ Author: Miguel Sofer State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 27 Mar 2004 Keywords: Tcl, upvar, global Both *upvar* and *global* can create unreachable variables: scalar variables whose name looks like an array element, e.g., a(b). This behaviour is documented in the *upvar* manpage. This TIP proposes that both *upvar* and *global* raise errors instead of creating such variables. TIP #185: Null Handling Version: $Revision: 1.8 $ Author: John H. Harris State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 08 Apr 2004 Keywords: Tcl, absent value Tcl lacks the ability to handle /nulls/, data with missing or unknown values. In this TIP I suggest a means for representing and propagating nulls, and command modifications for manipulating them. TIP #186: Expose the Type and Modified-State of Widget Options Version: $Revision: 1.4 $ Authors: Peter MacDonald Peter MacDonald State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 16 Apr 2004 Keywords: Tk This TIP adds a 6th (and 7th element) to each option in the output of [/path/ *configure*] for Tk widgets, indicating the type and modified status of each option respectively. TIP #187: Procedures as Values Version: $Revision: 1.14 $ Authors: Salvatore Sanfilippo Miguel Sofer Paul Nash State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 20 Apr 2004 Keywords: Tcl, lambda, anonymous, command, function This TIP describes a change in the semantics of Tcl to allow procedures to be first class values, being represented as strings, and in particular as three element lists. TIP #188: Add 'string is wideinteger' to the 'string is' Subcommand Version: $Revision: 1.7 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 23 Apr 2004 Discussions To: news:comp.lang.tcl Keywords: Tcl The *string* command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. This TIP proposes adding wide integers. TIP #189: Tcl Modules Version: $Revision: 1.13 $ Authors: Andreas Kupries Jean-Claude Wippler Jeff Hobbs Don Porter Larry W. Virden Daniel A. Steffen Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 24 Mar 2004 This document describes a new mechanism for the handling of packages by the Tcl Core which differs from the existing system in important details and makes different trade-offs with regard to flexibility of package declarations and to access to the filesystem. This mechanism is called "Tcl Modules". TIP #190: Implementation Choices for Tcl Modules Version: $Revision: 1.3 $ Authors: Andreas Kupries Jean-Claude Wippler Jeff Hobbs State: Draft Type: Informative Vote: Pending Created: 24 Mar 2004 This document is an informational adjunct to [TIP #189] "Tcl Modules", describing a number of choices for the implementation of Tcl Modules, pure-Tcl, binary, or mixed. It lists these choices and then discusses their relative merits and problems, especially their interaction with wrapping, i.e. when used in a wrapped application. The main point of the document is to dispel the illusion that the restriction to the "source" command for the loading Tcl Modules is an actual limitation. A secondary point is to make recommendations regarding preferred implementations, based the merits and weaknesses of the various possibilities. TIP #191: Managing Tcl Packages and Modules in a Multi-Version Environment Version: $Revision: 1.3 $ Authors: Andreas Kupries Joe English Larry Virden State: Draft Type: Informative Vote: Pending Created: 24 Mar 2004 This document is an informational adjunct to [TIP #189] "Tcl Modules", describing a number of choices for the management of Tcl Modules in environments with more than one version of the Tcl core installed. It lists these choices and then discusses their relative merits and problems. TIP #192: Lazy Lists Version: $Revision: 1.2 $ Authors: Salvatore Sanfilippo Theo Verelst State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 27 Mar 2004 Keywords: Tcl This TIP proposes to add a new command to generate lists of /N/ elements, where the /i/-th element is computed as the result of an unary Tcl procedure with /i/ as itsargument. Implementing special handling for this kind of lists inside the Tcl core will allow generation of lists in a /lazy/ way. This TIP's goal is not to change the semantics of Tcl, but just to provide a different space complexity for an (often interesting) subset of Tcl lists. TIP #193: Simple Syntax Help System Version: $Revision: 1.3 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 29 Apr 2004 Keywords: Tcl This TIP proposes a simple scheme to allow commands to provide basic syntax help for themselves. This information would allow for more advanced processing by programs doing interactive input of Tcl commands (by providing a mechanism for them to discover what possible completions of the current command fragment are available) and could be processed automatically by the *interp alias* and *namespace ensemble* mechanisms so that help could be automatically extended to commands defined through those mechanisms. TIP #194: Procedures as Values via '''apply''' Version: $Revision: 1.6 $ Authors: Miguel Sofer Joe Mistachkin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 30 Apr 2004 Keywords: Tcl, lambda, anonymous, command, function, functional programming This TIP proposes a new command, tentatively named *apply*, to allow procedures to be first class values. It is an alternative to the approach of [TIP #187], where attaining a similar goal requires a syntactic and semantic change. TIP #195: A Unique Prefix Handling Command Version: $Revision: 1.18 $ Authors: Peter Spjuth Peter Spjuth State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 02 May 2004 Obsoletes: TIP #105 Keywords: Tcl This TIP adds a new command to support matching of strings to unique prefixes of patterns, similar to Tcl's existing subcommand-name matching or Tk's option-name matching. TIP #196: Tcl Commands as Values Version: $Revision: 1.2 $ Author: Robert Suetterlin State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 11 May 2004 This TIP proposes making command procedures first-class values in Tcl. It also changes the command binding scheme to recognize these values before performing old-style name lookup indirection. TIP #197: Unfocussed Text Widget Cursor Control Version: $Revision: 1.10 $ Authors: R. Timothy Edwards Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 12 May 2004 Keywords: Tk This TIP proposes a simple extension to the Tk text widget to allow the insertion cursor to persist when the window containing the text widget does not have focus. TIP #198: Image Command XPM Extension Version: $Revision: 1.6 $ Authors: R. Timothy Edwards Don Porter Kevin Kenny State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 12 May 2004 This TIP proposes an extension to the Tk *image* command to incorporate color pixmap images based on the XPM format. The format is analogous to the *bitmap* option (/tkImgBmap.c/ in the Tk source). TIP #199: Specification of Alternatives to .wishrc/.tclshrc Version: $Revision: 1.8 $ Authors: R. Timothy Edwards Don Porter State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 12 May 2004 Keywords: Tcl, Tk, shell, interactive This TIP describes an extension of the command-line options to the "wish" and "tclsh" programs to allow the startup script to be redirected from the default ~/.wishrc (or ~/.tclshrc) to an alternative file. TIP #200: Listing the Values in an Array Version: $Revision: 1.4 $ Authors: Donal K. Fellows Dossy Shiobara State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 20 May 2004 Keywords: Tcl This TIP proposes adding another subcommand to the *array* command to list the values in an array. TIP #201: Add 'in' Operator to [expr] Version: $Revision: 1.5 $ Author: Jeff Hobbs State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 21 May 2004 Keywords: Tk, list membership, sets This TIP proposes new *expr* operators "*in*" and "*ni*" that simplifies the standard "does this item exist in list" *lsearch* case in expressions, with "*ni*" being "not in". TIP #202: Add 2>@1 Special Case to [open] and [exec] Version: $Revision: 1.4 $ Author: Jeff Hobbs State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 19 May 2004 Keywords: Tcl, redirection This TIP proposes adding a new redirection case '2>@1' that redirects the error channel to the output channel in *open* and *exec*. This would only be valid at the end of a pipeline. TIP #203: Create tclConfig.sh-Equivalent in Tcl Version: $Revision: 1.11 $ Authors: Colin McCormack Don Porter Colin McCormack State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 17 Jun 2004 Discussions To: http://mini.net/tcl/tclConfig.sh Keywords: configuration, installation This proposal requires the registration of information about the built process, currently stored in tclConfig.sh, by means of the Tcl_RegisterConfig mechanism set out in [Tip 59]. TIP #204: Virtual Events for Keyboard Traversal Version: $Revision: 1.5 $ Author: Joe English State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 21 Jun 2004 Proposes using two new virtual events, *<>* and *<>*, to notify widgets of keyboard navigation events. TIP #205: Use pkgconfig Database to Register Xft Support Version: $Revision: 1.5 $ Author: Joe English State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 23 Jun 2004 This TIP proposes to use Tcl's package configuration database (see [TIP #59]) to register whether Tk was compiled with support for Xft. TIP #206: Add an [ftruncate] Command Version: $Revision: 1.5 $ Author: Joe Mistachkin State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 25 Jun 2004 Obsoleted By: TIP #208 This TIP proposes a new command *ftruncate* for truncating open files. TIP #207: Add a -namespace Option to [interp invokehidden] Version: $Revision: 1.8 $ Authors: Joe Mistachkin Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 29 Jun 2004 This TIP proposes a /-namespace/ option for the *interp invokehidden* subcommand to allow hidden commands to be invoked in the specified namespace context in the slave interpreter. TIP #208: Add a 'chan' Command Version: $Revision: 1.8 $ Author: Jeff Hobbs State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 02 Jul 2004 Obsoletes: TIP #206 Keywords: Tcl This TIP proposes adding a *chan* command that would serve as a top-level command container for all the related channel commands that have proliferated over time, as well as future new channel-based commands. TIP #209: Add [clock milliseconds], and [clock microseconds] Version: $Revision: 1.5 $ Author: Reinhard Max State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 12 Jul 2004 Keywords: clock, milliseconds, microseconds This TIP proposes to replace *clock clicks -milliseconds* by *clock milliseconds* and *clock clicks -microseconds* by *clock microseconds*. TIP #210: Add 'tempfile' Subcommand to 'file' Version: $Revision: 1.11 $ Authors: Bob Techentin Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 19 Jul 2004 Keywords: Tcl, filename Programmers often need to create temporary files. This TIP proposes adding the new subcommand *tempfile* to the *file* command, simplifying programmer effort in creating a unique temporary file name. TIP #211: Add Full Stack Trace Capability Version: $Revision: 1.6 $ Authors: Robert Seeger Robert Seeger Don Porter State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 10 Aug 2004 Obsoleted By: TIP #280 Keywords: Tcl This TIP proposes adding a new subcommand to the *info* command to get a list of all the frames on the current stack, rather than the limited list returned by *info level*. TIP #212: Temporarily Opening out a Dictionary Version: $Revision: 1.9 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 11 Aug 2004 Keywords: tcl, dict, update, script This TIP proposes a new subcommand of *dict* that associates variables with dictionary entries while a Tcl script (the "body" of the command) runs. TIP #213: A Standard Dialog for Font Selection Version: $Revision: 1.7 $ Authors: Donal K. Fellows Pat Thoyts State: Withdrawn Type: Project Tcl Version: 8.6 Vote: Pending Created: 21 Aug 2004 Obsoleted By: TIP #324 Keywords: Tk This TIP proposes a new command that pops up a dialog box that allows the selection of a font. Where possible, this dialog will be implemented using the host platform's standard dialogs. TIP #214: Add New Object Introspection Command Version: $Revision: 1.7 $ Authors: Ulrich Schöbel Larry W. Virden State: Withdrawn Type: Project Tcl Version: 8.7 Vote: Pending Created: 24 Aug 2004 Obsoletes: TIP #117 Keywords: Tcl, info, representation This TIP proposes the new *representation* subcommand to *info* which returns the internal representation of a variable's contents. TIP #215: Make [incr] Auto-Initialize Undefined Variables Version: $Revision: 1.11 $ Authors: Andreas Leitgeb Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 25 Aug 2004 Keywords: Tcl Unlike *append* and *lappend*, *incr* currently does not auto-create yet-undefined variables. This TIP proposes to make *incr*'s behaviour in this regard more like the aforementioned commands. TIP #216: Handling Command-Line Options in Tclsh and Wish Version: $Revision: 1.5 $ Author: Arjen Markus State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 23 Aug 2004 Keywords: Tcl, debugging, argument, shell Currently there is no means to add new command-line options to the standard Tcl shells, tclsh and wish, that can be handled at the script level. This hampers the development of, for instance, a scripted debugger or tracing tool, because the shell must be called with an awkward command line (stating the location of the script file implementing the facility). This TIP proposes a simple mechanism so that a command line like "tclsh -debug myprog.tcl" is possible. The new mechanism relies on the existing package mechanism and a few conventions. It can be implemented for the most part in Tcl. TIP #217: Getting Sorted Indices out of Lsort Version: $Revision: 1.20 $ Author: James P. Salsman State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Aug 2004 Keywords: Tcl, lsort, parallel lists An *-indices* option is proposed for the *lsort* command, returning the indices of the given list's elements in the order that they would have otherwise been sorted. TIP #218: Tcl Channel Driver Thread State Actions Version: $Revision: 1.10 $ Authors: Andreas Kupries Andreas Kupries Larry W. Virden David Gravereaux State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 09 Sep 2004 This document specifies a modification of the public definition of channel drivers for the Tcl I/O system to fix a bug in the transfer of channels between threads affecting all drivers requiring thread-specific initialization. The targets for the change are Tcl 8.4./x/ (note that this is an API change to a release) and Tcl 8.5. TIP #219: Tcl Channel Reflection API Version: $Revision: 1.27 $ Authors: Andreas Kupries Andreas Kupries State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 09 Sep 2004 This document describes an API which reflects the Channel Driver API of the core I/O system up into the Tcl level, for the implementation of channel types in Tcl. It is built on top of [TIP #208] ('Add a chan command') and also an independent companion to [TIP #230] ('Tcl Channel Transformation Reflection API') and [TIP #228] ('Tcl Filesystem Reflection API'). As the later TIPs bring the ability of writing channel transformations and filesystems in Tcl itself into the core so this TIP provides the facilities for the implementation of new channel types in Tcl. This document specifies version /1/ of the channel reflection API. TIP #220: Escalate Privileges in VFS Close Callback Version: $Revision: 1.18 $ Authors: Colin McCormack Andreas Kupries Vince Darley State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 12 Sep 2004 This tip allows the creator and opener of a channel to cast away privileges and have them restored on close, to permit last-minute processing. It is sufficient to resolve a /tclvfs/ bug, minimal, and safe. TIP #221: Allow Background Error Handlers to Accept Return Options Version: $Revision: 2.10 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 15 Sep 2004 Keywords: bgerror, return, options This TIP proposes a new system for registering a background error handler of an interp so that the full set of return options ([TIP #90]) can be passed to it. TIP #222: Add [wm attributes -alpha] Attribute on Windows Version: $Revision: 1.8 $ Authors: Jeff Hobbs Andreas Kupries State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 16 Sep 2004 Keywords: Tk This TIP proposes a new controlled attribute *-alpha* to control toplevel alpha transparency for the *wm attributes* command on Windows. TIP #223: Full-Screen Toplevel Support for Tk Version: $Revision: 1.6 $ Author: Mo DeJong State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 21 Sep 2004 Tk lacks an optimal method for creating a full-screen *toplevel*. A full-screen toplevel is one that has no borders and a client drawing area that covers the entire screen. On some UNIX systems, one can create a normal toplevel that is a little larger than size of the screen and place the upper left corner of the client drawing area at at (0,0). This option is not available under Windows as the position and dimensions of normal windows are constrained to keep them from covering up the start menu and task bar. Under Windows, a zoomed toplevel with the /overrideredirect/ flag set avoids this size restriction and displays with no borders, both desirable properties. Unfortunately, setting the /overrideredirect/ flag also keeps an icon for the toplevel from being displayed in the task bar and in the programs list accessed via Alt-Tab. There are also some UNIX systems that restrict the placement of a normal toplevel window. For example, the default window manager for the KDE desktop restricts size and placement of a normal toplevel in much the same way as Windows. This TIP and its associated patch implement full-screen functionality that also displays an icon in the taskbar and is accessible via Alt-Tab. The implementation adds a new *-fullscreen* option to the *wm attributes* subcommand. TIP #224: Add New [array] Subcommands 'incr' and 'value' Version: $Revision: 1.12 $ Authors: Peter MacDonald Robert Seeger State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 28 Sep 2004 The TIP proposes the addition to two new subcommands to the *array* command: *incr* and *value*. The *incr/ subcommand would increment an element in an array. The *value* subcommand would query, reference, and/or initialize an array element. TIP #225: Arithmetic Series with Optimized Space Complexity Version: $Revision: 1.14 $ Authors: Salvatore Sanfilippo Miguel Sofer State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 25 Oct 2004 This TIP proposes to add a new command to generate arithmetic sequences as Tcl lists that may be stored in constant space in many practical situations. The only change from the point of view of the Tcl programmer is the addition of a new command named *range*. TIP #226: Interface to Save and Restore Interpreter State Version: $Revision: 1.5 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 30 Oct 2004 Keywords: Tcl This TIP proposes new public C routines to allow the dynamic state of an interp, including the return options, and error logging in progress as well as the interp result, to be saved and later restored. TIP #227: Interface to Get and Set the Return Options of an Interpreter Version: $Revision: 1.5 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 30 Oct 2004 Keywords: Tcl This TIP proposes new public C routines to allow the same access to interpreter return options [TIP #90] as are provided at the script level by the *catch* and *return* commands. TIP #228: Tcl Filesystem Reflection API Version: $Revision: 1.10 $ Authors: Andreas Kupries Andreas Kupries Vince Darley State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 02 Nov 2004 This document describes an API which reflects the Filesystem Driver API of the core Virtual Filesystem Layer up into the Tcl level, for the implementation of filesystems in Tcl. It is an independent companion to [TIP #219] ('Tcl Channel Reflection API') and [TIP #230] ('Tcl Channel Transformation Reflection API'). As the latter TIPs bring the ability of writing channel drivers and transformations in Tcl itself into the core so this TIP provides the facilities for the implementation of filesystems in Tcl. This document specifies version /1/ of the filesystem reflection API. TIP #229: Scripted Control of Name Resolution in Namespaces Version: $Revision: 1.10 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 03 Nov 2004 This TIP proposes extensions to the *namespace* command to allow scripts to control how individual namespaces map names to commands. TIP #230: Tcl Channel Transformation Reflection API Version: $Revision: 1.17 $ Authors: Andreas Kupries Andreas Kupries Andreas Kupries State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 02 Nov 2004 This document describes an API which reflects the Channel Transformation API of the core I/O system up into the Tcl level, for the implementation of channel transformations in Tcl. It is built on top of [TIP #208] ('Add a chan command') and also an independent companion to [TIP #219] ('Tcl Channel Reflection API') and [TIP #228] ('Tcl Filesystem Reflection API'). As the latter TIPs bring the ability of writing channel drivers and filesystems in Tcl itself so this TIP provides the facilities for the implementation of new channel transformations in Tcl. This document specifies version /1/ of the transformation reflection API. TIP #231: Support for [wm attributes] on X11 Version: $Revision: 1.7 $ Author: Joe English State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 06 Nov 2004 This TIP adds three UNIX/X11-specific attributes to the *wm attributes* command to take advantage of features newer Unix window manager control standards. TIP #232: Creating New Math Functions for the 'expr' Command Version: $Revision: 1.11 $ Authors: Arjen Markus Kevin Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Nov 2004 Keywords: math, expr, Tcl This TIP proposes to replace Tcl's math functions, ordinarily created using the *Tcl_CreateMathFunc()* function, with ordinary Tcl commands created in a known namespace, *::tcl::mathfunc*. This change has two chief motivations: it allows programmers to define new math functions at the Tcl level, and it encapsulates the *Tcl_Value* API so that new math functions can work on data types that are not described adequately as *Tcl_Value* objects. TIP #233: Virtualization of Tcl's Sense of Time Version: $Revision: 1.6 $ Authors: Andreas Kupries Andreas Kupries State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 30 Nov 2004 This document describes a number of changes to internal and public APIs which allows external code to hook into the routines through which the Tcl core computes time-dependent information, and to override them. Through this the external code can manipulate Tcl's sense of time. TIP #234: Add Support For Zlib Compression Version: $Revision: 1.21 $ Author: Pascal Scheffers State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 08 Dec 2004 Keywords: Tcl, zip, gzip, deflate This TIP proposes a new core package with commands to handle compression and decompression using the Zlib compression library. TIP #235: Exposing a C API for Ensembles Version: $Revision: 1.9 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 10 Dec 2004 This TIP exposes a C API for the ensembles of [TIP #112]. TIP #236: Absolute Positioning of Canvas Items Version: $Revision: 1.10 $ Author: Neil McKay State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 25 Dec 2004 Keywords: Tk, anchor, place This TIP proposes adding a canvas widget command to set the absolute position of canvas items. TIP #237: Arbitrary-Precision Integers for Tcl Version: $Revision: 1.19 $ Authors: Kevin B. Kenny Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 14 Jan 2005 This TIP adds the capability to perform computations on integer values of arbitrary precision. TIP #238: Fire Event when Widget Created Version: $Revision: 1.7 $ Author: Gerald W. Lester State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 25 Jan 2005 Keywords: Tk This TIP arranged for a new virtual event to be fired every time a widget is created. This allows class bindings to automatically discover new widget instances and act on their creation. TIP #239: Enhance the 'load' Command Version: $Revision: 1.12 $ Author: Jeff Hobbs State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 26 Jan 2005 This TIP proposes enhancing the Tcl *load* command with the ability to load arbitrary libraries and functions. TIP #240: An Ensemble Command to Manage Processes Version: $Revision: 1.14 $ Author: Steve Bold State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 22 Feb 2005 Obsoletes: TIP #88 Keywords: Tcl This TIP proposes some new commands through which Tcl scripts can create and monitor child processes. TIP #241: Case-Insensitive Switches and List Searching and Sorting Version: $Revision: 1.6 $ Author: Joe Mistachkin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Feb 2005 Keywords: Tcl, sorted lists, matching This TIP proposes a *-nocase* option for the *lsearch*, *lsort* and *switch* commands to allow for case-insensitive handling of the specified list. TIP #242: Preselect Filter on tk_get*File Dialogs Version: $Revision: 1.8 $ Author: Brian Griffin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 03 Mar 2005 This TIP proposes adding an *-typevariable* option to the *tk_getOpenFile* and *tk_getSaveFile* dialog box commands. This option will preselect the filter from the *-filetypes* list based on the type name. TIP #243: Supply Find Dialog for the Text Widget Version: $Revision: 1.3 $ Author: Rüdiger Härtel State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 16 Mar 2005 Keywords: Tk This TIP adds a /find dialog/ to the Tk *text* widget. TIP #244: PNG Photo Image Support for Tk Version: $Revision: 1.7 $ Author: Michael Kirkham State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 22 Mar 2005 Discussions To: news:comp.lang.tcl Tk's photo image type has had support for alpha channels internally since version 8.3. However, to date there is no photo format in the core that exposes this functionality. This TIP proposes adding support for the PNG (Portable Network Graphics) format. TIP #245: Discover User Inactivity Time Version: $Revision: 1.12 $ Authors: Pascal Scheffers Reinhard Max Neil Madden State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 15 Apr 2005 Keywords: Tk This TIP proposes a new subcommand, *inactive*, to the *tk* command, as well as *Tk_GetUserInactiveTime* and *Tk_ResetUserInactiveTime* C functions to discover the number of milliseconds the user has been inactive and reset that timer to zero respectively. For most environments, this is the time since the user last used the keyboard or mouse. TIP #246: Unify Pattern Matching Version: $Revision: 1.5 $ Author: Reinhard Max State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 27 Apr 2005 Keywords: pattern, match, glob, exact, regexp, case sensitive, Tcl Many Tcl commands take arguments that are patterns to match against. Some of these commands allow options to specify whether the pattern should be treated as a literal, a glob pattern, or a regular expression, and whether or not matching should be case sensitive. This TIP proposes a unique set of options for all commands that accept pattern arguments. TIP #247: Tcl/Tk Engineering Manual Version: $Revision: 1.9 $ Authors: John K. Ousterhout Donal K. Fellows State: Draft Type: Informative Vote: Pending Created: 01 Jun 2005 This document describes the set of conventions used for writing C code to go into the Tcl and Tk core. It is also recommended that extensions be written in the same style for clarity. TIP #248: Integrate Tile into Tk as Ttk Version: $Revision: 1.7 $ Authors: Jeff Hobbs Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 08 Jun 2005 Obsoletes: TIP #172 This TIP proposes that the tile themed widget set be integrated into Tk from 8.5 onwards as the static package Ttk. TIP #249: Unification of Tcl's Parsing of Numbers Version: $Revision: 1.9 $ Authors: Kevin B. Kenny David S. Cargo Don Porter State: Draft Type: Informative Vote: No voting Created: 13 Jun 2005 This TIP proposes to unify the recognition of all of Tcl's "numeric" objects into a single parser. The intended effect is to improve performance by eliminating a number of cases where a cached numeric representation may be discarded, and to restore (more accurately, to establish) the "everything is a string" principle in dealing with numbers. TIP #250: Efficient Access to Namespace Variables Version: $Revision: 1.7 $ Authors: Will Duquette miguel sofer State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 19 Jun 2005 This TIP proposes a new *namespace* subcommand, *namespace upvar*, to efficiently alias namespace variables into the current scope. TIP #251: Enhance the 'list' Command Version: $Revision: 1.14 $ Authors: Brian Schmidt Sérgio Loureiro State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 28 Jun 2005 This TIP proposes enhancing the existing *list* command to serve as a top-level command ensemble for all the related list commands that have proliferated over time, as well as making it easier to add future new list-based commands. TIP #252: Add New 'string' Command Options Version: $Revision: 1.4 $ Author: Brian Schmidt State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 28 Jun 2005 This TIP proposes moving several existing string-related commands to be options in the existing top-level *string* command. TIP #253: Consolidate Package-Related Commands Version: $Revision: 1.6 $ Author: Brian Schmidt State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 05 Jul 2005 This TIP proposes enhancing the existing *package* command with additional subcommands to serve as the top-level command container for the existing *pkg::create* and *pkg_mkIndex* commands. TIP #254: New Types for Tcl_LinkVar Version: $Revision: 1.6 $ Author: Rene Meyer State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 21 Jul 2005 Currently only a limited set of types of C variable may be linked to using Tcl_LinkVar. This TIP proposes extending this to cover all the basic numeric C types. TIP #255: Add 'min' and 'max' [expr] Functions Version: $Revision: 1.6 $ Author: Jeff Hobbs State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 21 Jul 2005 This TIP proposes enhancing the Tcl *expr* command with *min* and *max* functions. TIP #256: Implement Tabular and Wordprocessor Style Tabbing Version: $Revision: 1.15 $ Authors: Vince Darley Vince Darley State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 12 Aug 2005 There are two common style of tabbing in the computer world: that used for a regular table of information, and that used by a word-processor/text editor. This TIP proposes to add support for the latter to Tk's *text* widget. TIP #257: Object Orientation for Tcl Version: $Revision: 1.31 $ Authors: Donal K. Fellows Will Duquette Steve Landers Jeff Hobbs Kevin Kenny Miguel Sofer Richard Suchenwirth Larry W. Virden State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 26 Sep 2005 Obsoletes: TIP #50 This TIP proposes adding OO support to the Tcl core, semantically inspired by XOTcl. The commands it defines will be in the *::oo* namespace, which is not used by any current mainstream OO system, and it will be designed specifically to allow other object systems to be built on top. TIP #258: Enhanced Interface for Encodings Version: $Revision: 1.4 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 01 Oct 2005 Keywords: encoding This TIP proposes public C routines and a new *encoding dirs* subcommand to improve the interfaces to Tcl's encodings. TIP #259: Making 'exec' Optionally Binary Safe Version: $Revision: 1.4 $ Author: Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 12 Dec 2005 A new option shall be added to the command *exec*, that allows the user to specify that input redirected from immediate data (using *<<*) and/or the data received from the external command shall not undergo any translation within Tcl. TIP #260: Add Underline Option to Canvas Text Items Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 04 Jan 2006 This TIP proposes adding an *-underline* option to the Tk *canvas* widget's text items. TIP #261: Return Imported Commands from [namespace import] Version: $Revision: 1.7 $ Authors: Martin Lemburg State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 20 Dec 2005 This TIP describes a mechanism for easily finding out the list of commands in the current namespace that have been imported from other namespaces. TIP #262: Background Images for Frames Version: $Revision: 1.5 $ Authors: Eric Taylor Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 18 Mar 2006 Keywords: Tk, option This TIP proposes an option for frames that allows users to set the background of the window to be an image. TIP #263: Quantum Tcl Version: $Revision: 1.2 $ Author: Lars Hellström State: Draft Type: Project Tcl Version: 9.2 Vote: Pending Created: 01 Apr 2006 A new Tcl command *qubit* is proposed. This command makes it possible to handle quantum information in the form of qubits. TIP #264: Add Function to Retrieve the Interpreter of a Window Version: $Revision: 1.8 $ Author: George Petasis State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 01 Apr 2006 Keywords: Tk, C API This TIP proposes the addition of a new function in the Tk public API, for retrieving a pointer to the Tcl interpreter that was used for creating a window. TIP #265: A Convenient C-side Command Option Parser for Tcl Version: $Revision: 1.7 $ Author: Sam Bromley State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 03 Apr 2006 Keywords: Command line parsing, C implementation The Tk C library provides developers with a /Tk_ParseArgv/() function that allows command line parsing of options of the "-option" form. Archived discussions on and on the Wiki indicate that a desire for similar functionality without Tk has arisen several times in the past. This TIP presents a Tk-free implementation of /Tk_ParseArgv()/ named *Tcl_ParseArgvObj*, that developers can use to parse "-option" style command options in C implementations of Tcl commands using the Tcl_Obj interface. TIP #266: Numbers are Commands Version: $Revision: 1.8 $ Authors: Kristoffer Lawson Michal Malecki Wolf-Dieter Busch Paul Nash State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 11 Apr 2006 Keywords: Tcl, unknown, expression This TIP describes a change to Tcl's command dispatch which would allow every number to act as a command. TIP #267: Allow 'exec' to Ignore Stderr Version: $Revision: 1.4 $ Author: Nathan Bell State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 25 Apr 2006 Currently the *exec* command will always fail if the process writes to standard error. Since various applications use stderr for debug output it would be useful to retain this output without having to resort to redirecting stderr to stdout (which can cause interleaving). TIP #268: Enhance 'package' Version Handling Version: $Revision: 1.12 $ Authors: Jeff Hobbs Hemang Lavana Andreas Kupries Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 28 Apr 2006 This TIP proposes enhancing the Tcl *package* command to understand version numbers containing "a", and "b" and extend the semantics of *package require* to allow multiple requirements and various types of ranges of versions. TIP #269: Add 'string is list' to the 'string is' Subcommand Version: $Revision: 1.7 $ Author: Joe Mistachkin State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 19 May 2006 Keywords: Tcl, lists, strings The *string* command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. This TIP proposes adding lists to the set of things that can be checked for. TIP #270: Utility C Routines for String Formatting Version: $Revision: 1.10 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 19 Jun 2006 This TIP proposes new public C utility routines for the convenience of C-coded extensions and embedded uses of Tcl. TIP #271: Windows-Style Open and Save File Dialog on Unix Version: $Revision: 1.5 $ Authors: Matthew Middleton susanta kumar mishra State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 11 Jul 2006 This TIP describes updates to the Unix file dialogs to make them more like the dialogs found on the Windows platform. This increases the usability of the dialog for general "power" users. TIP #272: String and List Reversal Operations Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 23 Aug 2006 Keywords: Tcl, lreverse This TIP proposes adding commands to reverse the order of characters in strings and elements in lists. TIP #273: Add Tcl_Expr... Support to Tcl_Get... Functions Version: $Revision: 1.5 $ Author: Carsten Gosvig State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 30 Aug 2006 Obsoletes: TIP #176 This TIP proposes adding *Tcl_Expr*... calls to *Tcl_Get*... functions, supporting direct use of expressions for arguments to commands that is defined as int, long, wide-int, double or boolean. TIP #274: Right-Associativity for the Exponentiation Operator Version: $Revision: 1.9 $ Authors: Arjen Markus David Smith Richard Suchenwirth Don Porter Sérgio Loureiro State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 15 Sep 2006 Keywords: Tcl, expr This TIP clarifies and corrects the associativity behaviour of the exponentation operator that was introduced in [TIP #123]. TIP #275: Support Unsigned Values in binary Command Version: $Revision: 1.5 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 27 Sep 2006 Keywords: Tcl, binary, unsigned This TIP proposes to add support for unsigned values to the *binary* command. TIP #276: Specify and Unify Variable Linking Commands Version: $Revision: 1.20 $ Author: Miguel Sofer State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 01 Oct 2006 Keywords: Tcl, global, variable, upvar, namespace upvar The purpose of this TIP is to simplify and clarify the semantics of the commands in Tcl that couple variables in different scopes together. TIP #277: Create Namespaces as Needed Version: $Revision: 1.3 $ Author: Miguel Sofer State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 01 Oct 2006 This TIP proposes that namespaces be created automatically whenever a script tries to create a command, variable or child namespace in it. TIP #278: Fix Variable Name Resolution Quirks Version: $Revision: 1.18 $ Authors: Miguel Sofer Miguel Sofer Kevin Kenny Jan Nijtmans State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 03 Oct 2006 This TIP proposes to fix the behaviour for variable name resolution, modelling it on the resolution for namespace names instead of the current command name resolution. TIP #279: Adding an Extensible Object System to the Core Version: $Revision: 1.10 $ Authors: Gustaf Neumann Larry W. Virden State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 05 Oct 2006 This TIP proposes adding OO support to the Tcl core, consisting mostly of a dispatcher plus a small number of helper commands. The TIP allows the coexistence of multiple object systems by providing a common framework, the Tcl Minimal Object System (TMOS). The framework will contain, as well, a small, basic oriented language (Tcl Core Object Oriented Language, TclCOOL) to make it usable in the core without any extensions. All defined commands of the minimal object system are defined in the *::oo* namespace, which is not used by any current mainstream OO system. It has been designed specifically to allow a relatively simple re-implementation of the known object systems. TIP #280: Add Full Stack Trace Capability With Location Introspection Version: $Revision: 1.13 $ Authors: Andreas Kupries Andreas Kupries State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 10 Aug 2004 Obsoletes: TIP #211 Keywords: Tcl This TIP proposes adding a new subcommand to the *info* command to get a list of all the frames on the current stack, with additional information about command location, type of execution, etc., rather than the limited list returned by *info level*. It is also related to Peter MacDonald's [TIP #86], or rather, to the *info linenum* feature proposed there. The base feature of providing location information for a command was extended, allowing the user to ask for the current location in all stack levels. Enough information is returned to consider this as an extended [TIP #211]. TIP #281: Improvements in System Error Handling Version: $Revision: 1.7 $ Author: David Gravereaux State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 08 Oct 2006 Keywords: POSIX, channel driver, errorCode This TIP describes the need for better error codes and message handling of system errors to be returned to scripts. TIP #282: Enhanced Expression Syntax Version: $Revision: 1.4 $ Authors: Will Duquette Don Porter State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 13 Oct 2006 Keywords: expr, operator, assignment This TIP extends the syntax of the *expr* command to allow a sequence of mathematical computations to be expressed clearly and concisely. TIP #283: Modify Ensemble Command Resolution Behaviour Version: $Revision: 1.22 $ Authors: Miguel Sofer Neil Madden State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 01 Oct 2006 This TIP proposes that ensembles resolve all commands in their namespace. TIP #284: New 'invoke' and 'namespace invoke' Commands Version: $Revision: 1.23 $ Author: Miguel Sofer State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 01 Oct 2006 This TIP exposes a Tcl script-level interface to the direct command invokation engine already present in the Tcl library for years. TIP #285: Script Cancellation with [interp cancel] and Tcl_CancelEval Version: $Revision: 1.11 $ Authors: Joe Mistachkin Dawson Cowals State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 04 Jun 2006 Keywords: eval, cancel, unwind, terminate, runaway, async, thread, safe This TIP introduces the ability to quickly and safely cancel a script within a specified interpreter from any thread in the process. TIP #286: Add 'xposition' Command to Menu Widgets Version: $Revision: 1.4 $ Author: Schelte Bron State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 18 Oct 2006 Keywords: Tk There has been a *yposition* subcommand for menu widgets for years, but its counterpart in the x-direction does not currently exist. This TIP intends to rectify that situation. TIP #287: Add a Commands for Determining Size of Buffered Data Version: $Revision: 1.12 $ Author: Michael A. Cleverly State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Oct 2006 Keywords: Tcl, channel, chan, pendinginput, pendingoutput Many network servers programmed in Tcl (including the venerable tclhttpd) are vulnerable to DoS (denial of service) attacks because they lack any way to introspect the amount of buffered data on a non-blocking socket that is in line buffering mode. This TIP proposes a new subcommand to *chan* to allow the amount of buffered input and buffered output (for symmetry) to be inspected from Tcl. TIP #288: Allow "args" Anywhere in Procedure Formal Arguments Version: $Revision: 1.14 $ Authors: Peter Spjuth Andreas Leitgeb Peter Spjuth State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 03 Oct 2006 Keywords: Tcl, proc This TIP proposes to make /args/ have its special meaning as a formal *proc*edure argument anywhere in the argument list. TIP #289: Revision of [lrepeat] Argument Order Version: $Revision: 1.5 $ Authors: Peter Spjuth State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Oct 2006 Keywords: Tcl This TIP proposes to alter the argument order of *lrepeat* to be similar to *string repeat*. TIP #290: Registration of Custom Error Handler Scripts Version: $Revision: 1.13 $ Authors: Eckhard Lehmann Larry W. Virden State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 29 Oct 2006 Keywords: Tcl, error, trap This TIP proposes the possibility to register a custom command as error and exception handler. TIP #291: Add the 'platform' Package to Tcl Version: $Revision: 1.9 $ Authors: Steve Landers Andreas Kupries State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 26 Oct 2006 Keywords: Tcl, Critcl, TEApot This TIP proposes adding the *platform* package to the Tcl core sources and to install it automatically, similar to what is currently done with the *tcltest* package. TIP #292: Allow Unquoted Strings in Expressions Version: $Revision: 1.3 $ Author: Brian Griffin State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 01 Nov 2006 Keywords: Tcl, expr This TIP proposes allowing unquoted words to be recognized as strings in expressions (*expr*, *if*, *while*). TIP #293: Argument Expansion with Leading {*} Version: $Revision: 1.4 $ Author: Miguel Sofer State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 02 Nov 2006 Obsoletes: TIP #157 Tcl shall use *{*}* to denote argument expansion, replacing the current *{expand}*. TIP #294: The "entier" Function: It's Spelt "entire" Version: $Revision: 1.4 $ Authors: Lars Hellström Richard Suchenwirth State: Rejected Type: Project Tcl Version: 8.5 Vote: Done Created: 03 Nov 2006 Keywords: Tcl, number, cast, rename It is proposed that the *expr* function *entier*() introduced by [TIP #237] is renamed to *entire*(). TIP #295: Enhance Arguments to lrange Version: $Revision: 1.7 $ Author: Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 06 Nov 2006 Keywords: Tcl, lrange This TIP proposes an enhancement to *lrange* and *string range* that lets them take more than one start-end index pair. TIP #296: Enhanced Syntax for Pair-Wise Indices Version: $Revision: 1.7 $ Author: Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 06 Nov 2006 Keywords: Tcl, lrange, lreplace This TIP proposes adding another anchor *s* (for usage exclusively in end-indices) that refers to the respective start-index. TIP #297: Integer Type Introspection and Conversion Version: $Revision: 1.3 $ Author: Don Porter State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 20 Nov 2006 Keywords: Tcl, number, expression This TIP proposes changes to complete the set of commands to test and convert among Tcl's integer types. TIP #298: Revise Shared Value Rules for Tcl_GetBignumAndClearObj Version: $Revision: 1.6 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 22 Nov 2006 Keywords: Tcl, Tcl_Obj This TIP proposes a revision to *Tcl_GetBignumAndClearObj* to make it easier to use. TIP #299: Add isqrt() Math Function Version: $Revision: 1.3 $ Author: Kevin B. Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 24 Nov 2006 Keywords: Tcl, expression, integer, square root This TIP proposes a new *expr* math function *isqrt()*. TIP #300: Examine Glyph Substitution in the 'font actual' Command Version: $Revision: 1.4 $ Author: Kevin B. Kenny State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 25 Nov 2006 Keywords: Tk This TIP proposes enhancing the *font actual* command to allow determining the actual font to be used when rendering a specific character. TIP #301: Split Bidirectional Channels For Half-Close Version: $Revision: 1.2 $ Author: Alexandre Ferrieux State: Withdrawn Type: Project Tcl Version: 8.6 Vote: Pending Created: 11 Dec 2006 Obsoleted By: TIP #332 This TIP proposes to introduce a *chan split* command allowing to access both sides of a bidirectional channel (r+ pipe, or socket) as separate Tcl channels, in order to be able to close them separately. This would give Tcl the same level of control that the OS enjoys on the lifetime of such bidirectional connections. TIP #302: Fix "after"'s Sensitivity To Adjustments Of System Clock Version: $Revision: 1.3 $ Authors: Alexandre Ferrieux Kevin Kenny State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 13 Dec 2006 Keywords: Tcl, time changes Currently, *after* tasks can be drastically delayed or sped up simply by adjusting the system clock. This is due to the implementation's use of an /absolute/ target date based on the system clock. The idea of this TIP is to use another timebase for this purpose: the count of ticks from boot, which is not affected by system time adjustments. TIP #303: Enhance 'llength' Command to Support Nested Lists Version: $Revision: 1.3 $ Author: Wolf-Dieter Busch State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 29 Jan 2007 Keywords: Tcl, lindex The command *llength* currently returns the length of a list. Sometimes it is desirable to know the length of a nested list. This TIP proposes an improvement to *llength* to do that. TIP #304: A Standalone [chan pipe] Primitive for Advanced Child IPC Version: $Revision: 1.15 $ Author: Alexandre Ferrieux State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 07 Feb 2007 Keywords: Tcl, exec, process, subprocess, pipeline, channel Currently, it is not easy to get both (separate) dataflows from the stdout and stderr of a child. BLT's *bgexec* does this in an extension, and could be added to the core. But the point of this TIP is to show that a much smaller code addition can provide a lower-level primitive with much more potential than *bgexec*'s: a /standalone pipe/ creation tool like TclX's *pipe* command. TIP #305: ANSI Escape Sequence Support for Windows's Console Channel Driver Version: $Revision: 1.4 $ Author: David Gravereaux State: Withdrawn Type: Project Tcl Version: 8.5 Vote: Pending Created: 21 Feb 2007 Discussions To: news:comp.lang.tcl The console channel driver for windows (win/tclWinConsole.c) could support colors, cursor movement, and scrolling by embedding such commands in the stream to the console in the age-old tradition of ANSI_X3.64-1979 escapes. By filtering-out such commands in the DriverOutputProc and doing the command actions, greater cross-platform support is enabled to other platforms (such as Linux) that have ANSI support. TIP #306: Auto-Naming Widgets Version: $Revision: 1.11 $ Authors: Koen Danckaert Richard Suchenwirth State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 11 Jun 2007 Keywords: automatic, Tk, widget, naming A Tk programmer must give every widget a unique name. This is often quite annoying, especially for widgets whose name is stored in a variable (which also must be given a name). This TIP proposes a small extension to generate automatic names for widgets. TIP #307: Make TclTransferResult() Public Version: $Revision: 1.7 $ Author: Erik Leunissen State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 28 Sep 2007 Keywords: Tcl, result, transfer, interpreter, API rename This TIP proposes to make the existing function *TclTransferResult*() part of the public interface. TIP #308: Tcl Database Connectivity (TDBC) Version: $Revision: 1.17 $ Authors: Kevin B. Kenny Artur Trzewik Andreas Leitgeb Donal K. Fellows State: Final Type: Informative Vote: Done Created: 15 Nov 2007 Obsoleted By: TIP #350 This TIP defines a common database access interface for Tcl scripts. TIP #309: Expose the Expression Parsing Version: $Revision: 1.2 $ Author: Arjen Markus State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 07 Jan 2008 Keywords: expr, parse This TIP proposes a new command to expose the parsing of expressions by the *expr* command. This will make it much easier to implement alternative number systems, such as complex numbers, or to implement symbolic algebra. TIP #310: Add a New Pseudo-Random Number Generator Version: $Revision: 1.3 $ Author: Arjen Markus State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 07 Jan 2008 Keywords: expr This TIP proposes to add a new *expr* function: a random number generator with a longer sequence than the one currently in the core. TIP #311: Tcl/Tk 8.6 Release Calendar Version: $Revision: 1.66 $ Authors: Don Porter Larry W. Virden Joe Mistachkin Pat Thoyts Miguel Sofer Lars Hellström Alexandre Ferrieux Arnulf Wiedemann Trevor Davel Donal K. Fellows Jan Nijtmans State: Draft Type: Informative Vote: Pending Created: 08 Jan 2008 This TIP serves to coordinate Tcl/Tk 8.6 development releases and the features they deliver. TIP #312: Add More Link Types Version: $Revision: 1.9 $ Authors: Rene Zaumseil Larry W. Virden State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 26 Jan 2008 Keywords: variable, trace This TIP proposes adding a command, *Tcl_LinkArray*, to allow linking of C variables to Tcl lists. It also adds more types of linked variable. TIP #313: Inexact Searching in Sorted List Version: $Revision: 1.14 $ Author: Peter Spjuth State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 14 Feb 2008 Keywords: Tcl This TIP adds a new switch to *lsearch* to do a binary search to find the insertion point in a sorted list. TIP #314: Ensembles with Parameters Version: $Revision: 1.5 $ Author: Lars Hellström State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 26 Feb 2008 This TIP proposes that *namespace ensemble* commands are generalised so that they may have arguments before the subcommand name. TIP #315: Add pathSeparator to tcl_platform Array Version: $Revision: 1.5 $ Author: Hai Vu State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 04 Apr 2008 This TIP proposes a mechanism for determining the platform's path separator. The path separator is currently ":" in Unix and ";" in DOS/Windows. TIP #316: Portable Access Functions for Stat Buffers Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 02 May 2008 Tcl exposes the definition of the /struct stat/ type to users of its C API, but this can vary between builds. This TIP proposes a set of portable functions for reading (portable) fields out of those structures so that code does not need to match the API version when reading the fields (the most common case by far). TIP #317: Extend binary Ensemble with Binary Encodings Version: $Revision: 1.5 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 03 May 2008 Keywords: base64, uuencode, hex, transfer encoding This TIP extends the *binary* command with implementations in C of commonly used binary encodings. In particular the /base64/ encoding is implemented but the Tcl ensemble scheme [TIP #112] can be used to provide simple extension of the implemented formats. TIP #318: Extend Default Whitespace in 'string trim' Beyond ASCII Version: $Revision: 1.5 $ Author: Bill Poser State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 13 May 2008 This TIP extends the *string trim*, *string trimleft*, and *string trimright* subcommands to function properly with non-roman writing systems by adding non-ASCII space characters to the default list of characters to be trimmed. TIP #319: Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets Version: $Revision: 1.4 $ Author: Eric Taylor State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 04 Jun 2008 This TIP calls for the implementation of backward compatibility between ttk themed widgets and conventional tk widgets. It does this by describing configuration options that specify how to deal with unsupported options (error, ignore, or call supplied callbacks) where full compatibility is not feasible. Configuration should be both global (all widgets) and specific (by class or individual widget). TIP #320: Improved Variable Handling in the Core Object System Version: $Revision: 1.6 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 13 Jun 2008 Keywords: TclOO This TIP specifies new configuration commands that allow variables to be used in methods of the core object system without explicit declaration in each method. TIP #321: Add a [tk busy] Command Version: $Revision: 1.6 $ Author: Jos Decoster State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 26 Jun 2008 Keywords: Tk, BLT, busy The *blt::busy* commands can be used to make Tk widget busy, with all user interaction blocked and the cursor can be changed to e.g. a clock. This TIP proposes to add this useful feature to Tk. TIP #322: Publish the NRE API Version: $Revision: 1.9 $ Author: Miguel Sofer State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 13 Jul 2008 This TIP exposes an API to allow extension writers to take advantage of Tcl's Non-Recursive evaluation Engine. TIP #323: Do Nothing Gracefully Version: $Revision: 1.6 $ Authors: Colin McCormack Don Porter Kevin B. Kenny State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 06 Aug 2008 A number of Tcl's built-in commands currently raise errors when given arguments that would cause them to do nothing. This proposal asks that they instead simply do nothing gracefully. TIP #324: A Standard Dialog For Font Selection Version: $Revision: 1.7 $ Authors: Adrian Robert Daniel A. Steffen State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 08 Aug 2008 Obsoletes: TIP #213 Keywords: Tk This TIP proposes the addition of a font selection dialog to the set of common dialogs already available in Tk. Where possible, this dialog will be implemented using the host platform's standard dialogs. TIP #325: System Tray Access Version: $Revision: 1.2 $ Author: David N. Welton State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 25 Aug 2008 Keywords: Tk, desktop integration Modern operating systems have a "system tray", where programs may place an icon to indicate program status. This TIP proposes that Tk should adopt some existing code in order to permit cross platform access to this functionality. TIP #326: Add -stride Option to lsort Version: $Revision: 1.5 $ Author: Kieran Elby State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 01 Sep 2008 Keywords: Tcl, lsort, sorting This TIP adds a new option, *-stride*, to *lsort* to request that a list be treated as consisting of repeated groups of elements (as opposed to sublists), and that the the groups be sorted according to a chosen element within each group. TIP #327: Proper Tailcalls Version: $Revision: 1.8 $ Authors: Miguel Sofer David S. Cargo State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 20 Sep 2008 Keywords: tailcall, NRE This TIP recommends adding proper tailcalls to Tcl. TIP #328: Coroutines Version: $Revision: 1.6 $ Authors: Miguel Sofer Neil Madden State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 07 Sep 2008 Keywords: Coroutine, continuation, event-loop, NRE This TIP recommends adding a coroutine mechanism to Tcl, loosely modelled on those present in Lua. TIP #329: Try/Catch/Finally syntax Version: $Revision: 1.9 $ Author: Trevor Davel State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 22 Sep 2008 Discussions To: http://wiki.tcl.tk/21608 Obsoletes: TIP #89 This TIP proposes the addition of new core commands to improve the exception handling mechanism. It supercedes [TIP #89] by providing support for the error options dictionary introduced in Tcl 8.5 by [TIP #90]. TIP #330: Eliminate interp->result from the Public Headers Version: $Revision: 1.5 $ Author: Kevin B. Kenny State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 22 Sep 2008 This TIP proposes to eliminate the long-deprecated /interp/->/result/ field from the public headers. TIP #331: Allow [lset] to Extend Lists Version: $Revision: 1.5 $ Author: Kevin B. Kenny State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 22 Sep 2008 This TIP proposes to modify the *lset* command to allow it to extend lists. TIP #332: Half-Close for Bidirectional Channels Version: $Revision: 1.6 $ Author: Alexandre Ferrieux State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 25 Sep 2008 Obsoletes: TIP #301 Keywords: Tcl, channel, close, socket, shutdown This TIP proposes to extend the *close*/*chan close* commands to let them perform an unidirectional "half-close" on bidirectional channels. TIP #333: New Variable and Namespace Resolving Interface Version: $Revision: 1.4 $ Author: Arnulf Wiedemann State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 13 Oct 2008 Keywords: Tcl, resolution This is a TIP to allow easy command and variable resolving for itcl-ng, but is not restricted to itcl-ng. It should be possible for an application to drive the rules for command and variable lookup using the interface described below. This TIP should allow to get rid of namespace and interpreter resolvers for itcl-ng. TIP #334: Make 'lrepeat' Accept Zero as a Count Version: $Revision: 1.2 $ Author: Michael Thomas Greer State: Withdrawn Type: Project Tcl Version: 8.6 Vote: Pending Created: 13 Oct 2008 Keywords: empty list Following on from [TIP #323], the *lrepeat* command should also act gracefully when a repeat count of zero is used, as an empty list is still a valid list. TIP #335: An API for Detecting Active Interpreters Version: $Revision: 1.8 $ Author: Joe Mistachkin State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 13 Oct 2008 Keywords: numLevels, embedding, terminate, async, thread, safe, gc This TIP introduces the ability to quickly and safely decide whether a Tcl script is evaluating in an interpreter, allowing an external system to determine whether it is safe to delete that interpreter. TIP #336: Supported Access To interp->errorline Version: $Revision: 1.4 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 21 Oct 2008 This TIP proposes a supported public interface to set and get the value of the /errorLine/ field of the /Tcl_Interp/ data structure. TIP #337: Make TclBackgroundException() Public Version: $Revision: 1.6 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 21 Oct 2008 This TIP proposes to make the /TclBackgroundException/ routine available in the public interface so that extensions may notify Tcl about all return codes that occur during background operations. TIP #338: Embedder Access to Startup Scripts of *_Main() Version: $Revision: 1.4 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 22 Oct 2008 Keywords: Tcl, Tk, tclsh, wish This TIP proposes to make public the routines that get and set the startup script file that /Tcl_Main/ or /Tk_Main/ evaluate in their non-interactive modes. TIP #339: Case-Insensitive Package Names Version: $Revision: 1.8 $ Author: Andreas Kupries State: Rejected Type: Project Tcl Version: 8.6 Vote: Done Created: 14 Nov 2008 This document proposes to change the package management facilities of the Tcl core to handle package names in a case-insensitive manner, switching back to case-sensitive operation if and only if explicitly requested by the user. The case of package names is preserved in the storage however. TIP #340: Const Qualification of Tcl_SetResult's Argument Version: $Revision: 1.8 $ Author: Jan Nijtmans State: Withdrawn Type: Project Tcl Version: 8.7 Vote: Pending Created: 14 Nov 2008 Keywords: Tcl_SetResult As a follow-up of [TIP #27], in Tcl 8.6 and Tk 8.6 much work has been done to clean up the remaining places where pointers were not /const/ qualified. The question is, how can we prevent that in the future similar "mistakes" are made. The gcc compiler warning /-Wwrite-strings/ helps in that, therefore this TIP proposes to add that to the CFLAGS_WARNING flag in Tcl and Tk when using gcc. But for this flag to be introduced, all warnings will have to be eliminated. In the HEAD, this is done already, except for one function: *Tcl_SetResult*. This function is explicitely mentioned in [TIP #27] not to be modified, because it cannot be handled without unsafe casting. This TIP proposes to deprecate *Tcl_SetResult* in full, and provide a new macro *Tcl_SetStringResult* in its place. TIP #341: Multiple 'dict filter' Patterns Version: $Revision: 1.5 $ Author: Lars Hellström State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 27 Nov 2008 Keywords: Tcl, set intersection The *key* and *value* forms of *dict filter* are generalised to allow an arbitrary number of patterns. TIP #342: Dict Get With Default Version: $Revision: 1.3 $ Author: Lars Hellström State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 27 Nov 2008 Keywords: dictionary, default value A new subcommand of *dict* is proposed, which returns a dictionary value if it exists and returns a per-call default otherwise. TIP #343: A Binary Specifier for [format/scan] Version: $Revision: 1.3 $ Author: Alexandre Ferrieux State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 03 Dec 2008 Keywords: Tcl, binary This TIP proposes to add a %b specifier to the *format* and *scan* commands for working with integers in base-2 representation. TIP #344: Bring TCP_NODELAY and SO_KEEPALIVE to socket options Version: $Revision: 1.2 $ Author: Alexandre Ferrieux State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 31 Dec 2008 Just expose to script level, via *fconfigure*, the two most important setsockopt() use cases: TCP_NODELAY (disabling the Nagle agorithm) and SO_KEEPALIVE (sending automatic keepalives). TIP #345: Kill the 'identity' Encoding Version: $Revision: 1.2 $ Author: Alexandre Ferrieux State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 05 Feb 2009 Keywords: Tcl, encoding, invalid UTF-8 This TIP proposes to remove the 'identity' encoding which is the Pandora's Box of invalid UTF-8 string representations. TIP #346: Error on Failed String Encodings Version: $Revision: 1.2 $ Author: Alexandre Ferrieux State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 02 Feb 2009 Keywords: Tcl, encoding, convertto, strict, Unicode, String, ByteArray This TIP proposes to raise an error when an encoding-based conversion loses information. TIP #347: Align 'string is ...' to Type-Conversion Functions in 'expr' Version: $Revision: 1.8 $ Author: Jos Decoster State: Withdrawn Type: Project Tcl Version: 8.7 Vote: Pending Created: 09 Feb 2009 Discussions To: news:comp.lang.tcl Obsoleted By: TIP #395 Keywords: Tcl The *string* command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. The *tcl::mathfunc* mathematical functions provides sevaral functions to limit the number of bits used in integer numbers. This TIP proposes to align both groups of functions for *int*, *long*, *wide* and *entier*. TIP #348: Substituted 'errorstack' / 'traceback' Version: $Revision: 1.17 $ Author: Alexandre Ferrieux State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 26 Feb 2009 Keywords: Tcl, debugging This TIP proposes to add an *errorstack* options dict entry and associated *info* subcommand, giving a "substituted" traceback similar to Python's or gdb's ones. TIP #349: New "-cargo" option for every Tk widget Version: $Revision: 1.1 $ Author: Zbigniew Baniewski State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 17 Apr 2009 This TIP proposes adding a *-cargo* option to every Tk widget that will be kept free for code that uses the widget to use as it sees fit; the Tk library will assign no interpretation to the option. TIP #350: Tcl Database Connectivity - Corrigenda Version: $Revision: 1.1 $ Author: Kevin B. Kenny State: Draft Type: Informative Vote: Pending Created: 18 Apr 2009 Obsoletes: TIP #308 This TIP defines a common database access interface for Tcl scripts. It is an update to [TIP #308] to take into account experience gained since that TIP was written. Note that this TIP does /not/ repeat the contents of that one, which is mostly correct apart from the changes described in this document. TIP #351: Add Striding Support to lsearch Version: $Revision: 1.19 $ Authors: Peter da Silva Donal K. Fellows Harald Oehlmann Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 09 Jul 2009 This TIP allows the searching of lists that are grouped into collections of several elements. TIP #352: Tcl Style Guide Version: $Revision: 1.5 $ Authors: Ray Johnson Donal K. Fellows Mark Janssen State: Draft Type: Informative Vote: Pending Created: 14 Jul 2009 This document describes a set of conventions that it is suggested people use when writing Tcl code. It is substantially based on the Tcl/Tk Engineering Manual [TIP #247]. TIP #353: NR-enabled Expressions for Extensions Version: $Revision: 1.7 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 29 Jul 2009 This TIP proposes the new public routine *Tcl_NRExprObj* to provide extension commands that evaluate Tcl expressions the ability to do so in a non-recursive manner. TIP #354: Minor Production-Driven TclOO Revisions Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 26 Aug 2009 This TIP describes a few small changes required for solving issues that have been found when using TclOO in production. TIP #355: Stop Fast Recycling of Channel Names on Unix Version: $Revision: 1.1 $ Author: Alexandre Ferrieux State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 01 Sep 2009 This TIP proposes to put an end to the unix-specific habit of naming channels after the underlying file descriptor, by using a much longer-lived incremented counter instead. TIP #356: NR-enabled Substitutions for Extensions Version: $Revision: 1.4 $ Author: Don Porter State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 17 Sep 2009 Keywords: Tcl, C API, subst This TIP proposes the new public routine *Tcl_NRSubstObj* to provide extension commands that evaluate Tcl substitutions the ability to do so in a non-recursive manner. TIP #357: Export TclLoadFile Version: $Revision: 1.14 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 01 Oct 2009 This TIP proposes to promote the internal calls, /TclLoadFile/ and /TclpFindSymbol/ to the external API, making them available to C extensions. In addition, it proposes to introduce a /Tcl_FSUnloadFile/ to the VFS layer, removing the weird duplicate client data from /TclLoadFile/ and wrapping all necessary data into the *Tcl_LoadHandle* TIP #358: Suppress Empty List Element Generation from the Split Command Version: $Revision: 1.2 $ Author: George Petasis State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 04 Oct 2009 Keywords: Tcl, list extraction, parsing The *split* command will create empty list elements when adjacent split characters are found in the input. In some cases these empty list elements are not desired, so this TIP proposes a new switch to disable their generation. TIP #359: Extended Window Manager Hint Support Version: $Revision: 1.7 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 21 Dec 2009 Keywords: Tk, X11, ewmh, window manager The *wm attributes* command will be extended to accept a *-type* option when running on the X Window system to manipulate the extended window manager hints for Tk toplevel windows. TIP #360: Modernize X11 Menus Version: $Revision: 1.5 $ Author: Pat Thoyts State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 24 Dec 2009 Keywords: Tk, X11, menu This TIP proposes to modernize the functionality of the Tk menus on X11 to bring Tk up to date with reference to other toolkits on this platform. TIP #361: Releasing Channel Buffers Version: $Revision: 1.3 $ Author: Wayne Cuddy State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 03 Feb 2010 Tcl should provide a mechanism by which a channel's output buffer can be released without requiring that Tcl flush any remaining data in the buffer to the operating system. This is of particular interest with output mechanisms which can block indefinitely causing the interpreter to consume unnecessary resources or prevent the interpreter from exiting. TIP #362: Simple 32 and 64 bit Registry Support Version: $Revision: 1.9 $ Authors: Damon Courtney Kevin Kenny State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 01 Mar 2010 Keywords: Windows, Tcl Add new options to the *registry* command on Windows to allow it to specify that the action should be taken specifically on the 32 or 64 bit registry. TIP #363: Vector Math in the Tcl Core Version: $Revision: 1.1 $ Author: Karl C. Hansen State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 02 Mar 2010 Keywords: expand, {*}, vector, math The "expand" operator - *{*}* - was adopted in Tcl 8.5 and is very useful for simplifying code involving lists. It is proposed to add this operator to the list of actions performed during processing of double-quote ("), joining the *$*, *[*, and *\*, and to modify the behavior of *$* in variable substitution. The proposed behavior /will/ break existing substitution, but a trivial quoted-string substitution restores original behavior with the new approach. The proposed approach will enable eventual incorporation of vector-math to the Tcl engine without changing any of the existing syntax. TIP #364: Threading Support: Configuration and Package Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 19 Mar 2010 Keywords: Tcl This TIP changes the the default configuration for building to threaded on all platforms where this is not already the case (primarily Unix other than MacOS X) and adds the Thread package to the set of packages included by default. TIP #365: Add Python Compatibility Mode Version: $Revision: 1.2 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 8.6 Vote: No voting Created: 01 Apr 2010 Keywords: Look at the date This TIP adds support for reading and evaluating code written in Python to the /tclsh/ interpreter. TIP #366: Variable Sized Indicators for Menubuttons Version: $Revision: 1.4 $ Author: Russell Davidson State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 29 Apr 2010 Keywords: Tk This TIP is to allow custom sizing of menubutton indicators using *-indwidth* and *-indheight* as options. TIP #367: A Command to Remove Elements from a List Version: $Revision: 1.1 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 18 May 2010 Keywords: Tcl, delete, item This TIP proposes a command, *lremove*, that takes a list value and a collection of indices, and returns a list that is the input list with the elements at those indices removed. TIP #368: Listbox Justification Option Version: $Revision: 1.2 $ Author: Russell Davidson State: Withdrawn Type: Project Tcl Version: 8.7 Vote: Pending Created: 10 May 2010 Obsoleted By: TIP #441 Keywords: Tk This TIP is to allow right and center justification of listboxes using *-justify* as an option. TIP #369: Widget cargo command Version: $Revision: 1.7 $ Authors: Russell Davidson Trevor Davel State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 15 Jul 2010 Keywords: Tk, user-defined data, dictionary This TIP is to add a *cargo* subcommand to widgets for storing data in a data dictionary. This TIP is related to [TIP #349]. TIP #370: Extend Tk's selection with a -time option Version: $Revision: 1.3 $ Author: George Petasis State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 04 Aug 2010 This TIP proposes the addition of a new argument to the Tk command *selection*, for specifying a timestamp that should be used in order to retrieve a selection. TIP #371: Improvements for the dict command Version: $Revision: 1.3 $ Authors: Thomas Perschak Trevor Davel State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 05 Aug 2010 The *dict* command is limited by allowing manipulation of only the first level of key elements. Not only should the *dict get* accept a nested key list, but also the other commands like *dict replace*. TIP #372: Multi-argument Yield for Coroutines Version: $Revision: 1.3 $ Author: Colin McCormack State: Draft Type: Project Tcl Version: 8.6 Vote: Done Created: 11 Aug 2010 Discussions To: http://wiki.tcl.tk/26006 Obsoleted By: TIP #396 Keywords: coroutine, yield This TIP proposes a command that allows a coroutine to accept multiple arguments being passed in on return from yield. TIP #373: Improved Yielding Support for Coroutines Version: $Revision: 1.7 $ Author: Miguel Sofer State: Withdrawn Type: Project Tcl Version: 8.6 Vote: Pending Created: 12 Aug 2010 Obsoletes: TIP #372 Obsoleted By: TIP #375 Keywords: coroutine, yield This TIP proposes two new commands that improve control over the yielding behaviour of coroutines. TIP #374: Stackless Vwait Version: $Revision: 1.5 $ Authors: Thomas Perschak Trevor Davel State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 13 Aug 2010 This TIP proposes a way to have multiple procedures waiting for an event to happen, where the command that gets executed depends on the order of the events. TIP #375: Symmetric Coroutines and Yieldto Version: $Revision: 1.3 $ Author: Miguel Sofer State: Draft Type: Project Tcl Version: 8.6 Vote: Done Created: 12 Aug 2010 Obsoletes: TIP #373 Obsoleted By: TIP #396 Keywords: coroutine, yield The new command *yieldto* allows a coroutine to suspend its execution and tailcall into an arbitrary command. If the new command is another coroutine's resume command we obtain symmetric coroutines. TIP #376: Bundle sqlite3 and tdbc::sqlite3 Packages Version: $Revision: 1.5 $ Authors: Don Porter D. Richard Hipp Kevin Kenny State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 14 Sep 2010 This TIP proposes the packages *sqlite3* and *tdbc::sqlite3* be re-distributed as part of the Tcl source code distribution. TIP #377: Portably Determining the Number of Processors in the System Version: $Revision: 1.2 $ Author: Andreas Kupries State: Withdrawn Type: Project Tcl Version: 8.6 Vote: Pending Created: 13 Sep 2010 A C API and Tcl command are proposed which return the number of CPUs (a.k.a. Processors a.k.a. Cores) in the system, portably wrapping the OS specific APIs for doing so. TIP #378: Fixing the Performance of TIP 280 Version: $Revision: 1.3 $ Authors: Andreas Kupries Jeff Hobbs State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 04 Oct 2010 A Tcl command is proposed which enable a user of Tcl to disable the most performance intensive parts of the [TIP #280] implementation, at the loss of some detail. TIP #379: Add a Command for Delivering Events Without Tk Version: $Revision: 1.9 $ Author: Will Duquette State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 17 Oct 2010 Keywords: event This proposal defines the *hook* ensemble command, which implements the Subject/Observer pattern. It allows /subjects/, which may be modules, objects, widgets, and so forth, to synchronously call /hooks/ which may be bound to an arbitrary number of subscribers, called /observers/. A subject may call any number of distinct hooks, and any number of observers can bind callbacks to a particular hook called by a particular subject. Hook bindings can be queried and deleted. TIP #380: TclOO Slots for Flexible Declarations Version: $Revision: 1.5 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 20 Oct 2010 This TIP proposes a system that enables a more flexible system of handling all declarations relating to classes and objects that resolve to control over a list of things. This system, which will use TclOO to configure itself, will enable the scripting of additional mechanisms for manipulating declarations and will also include a change to the default behavior of the *filter* and *variable* declarations, where the standard "replace everything" behavior was found to be non-obvious in practice. In order to enable this, the exact behavior of the *unknown* method mechanism will be slightly varied. TIP #381: Call Chain Introspection and Control Version: $Revision: 1.9 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 20 Oct 2010 Keywords: TclOO, iTcl This TIP proposes mechanisms for inspecting the TclOO call chain for a particular method, both externally via *info* and from within a call to that method. It also proposes a mechanism that will allow the traversal of the call chain in a more controlled way than at present with the *next* command. TIP #382: Let tk_getSaveFile ignore file overwrites Version: $Revision: 1.6 $ Authors: Pawel Salawa Don Porter State: Final Type: Project Tcl Version: 8.5.11 Vote: Done Created: 02 Nov 2010 Keywords: Tk, dialog This document describes new option for *tk_getSaveFile* named *-confirmoverwrite* to control whether a warning dialog is displayed when selecting an existing file for overwriting. TIP #383: Injecting Code into Suspended Coroutines Version: $Revision: 1.4 $ Authors: Alexandre Ferrieux Miguel Sofer State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 03 Dec 2010 Keywords: debugging, coroutine, yielded This proposes a new command, *coroinject*, that allows a programmer to inject arbitrary code into a suspended coroutine, for execution on next resumption. TIP #384: Add File Alteration Monitoring to the Tcl Core Version: $Revision: 1.4 $ Authors: Reinhard Max Gerald W. Lester State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 02 Dec 2010 Keywords: kqueue, inotify, dnotify, gamin, FSevents, fam This TIP proposes to add capabilities for monitoring changes in the file system to the Tcl core. TIP #385: Functional Traces On Variables Version: $Revision: 1.6 $ Author: Alexandre Ferrieux State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 13 Feb 2011 Keywords: Tcl, traces Functional traces are new variants of variable traces, that rely purely on value passing rather than variable updating. Applied to array traces, they allow a much more efficient implementation of various storage backends. TIP #386: Relocation of Tcl/Tk Source Control Repositories Version: $Revision: 1.4 $ Authors: Kevin B. Kenny Kevin Kenny State: Draft Type: Informative Vote: Pending Created: 01 Mar 2011 Keywords: Fossil, DVCS This TIP describes the changed locations and procedures for source control for Tcl/Tk. TIP #387: Unified Yield Command Syntax Version: $Revision: 1.7 $ Author: Lars Hellström State: Withdrawn Type: Project Tcl Version: 8.6 Vote: Pending Created: 30 May 2011 Obsoleted By: TIP #396 Keywords: Tcl, coroutine This document describes the /syntax/ of a unified *yield* command, which is designed so that it can combine all features of the various yield-related commands proposed during 2010. TIP #388: Extending Unicode literals past the BMP Version: $Revision: 1.7 $ Authors: Jan Nijtmans Jan Nijtmans State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 10 Aug 2011 Discussions To: Tcl Core list Keywords: Tcl This TIP proposes to extend Tcl's syntax in order to be able to cope with quoted forms of Unicode characters outside the Basic Multilingual Plane. TIP #389: Full support for Unicode 8.0 and later Version: $Revision: 1.4 $ Authors: Jan Nijtmans Jan Nijtmans State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 23 Aug 2011 Discussions To: Tcl Core list Keywords: Tcl This TIP proposes to add full support for all characters in Unicode 8.0+, inclusive the characters >= *U+010000*. TIP #390: A Logging API for Tcl Version: $Revision: 1.1 $ Author: Jeff Rogers State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 27 Oct 2011 This TIP proposes a standard API for logging in Tcl applications, both at the Tcl and C level. TIP #391: Support for UDP Sockets in Tcl Version: $Revision: 1.3 $ Author: Jeff Rogers State: Withdrawn Type: Project Tcl Version: 8.7 Vote: Pending Created: 26 Oct 2011 Obsoleted By: TIP #409 This proposal is to add UDP socket support to the core in a clean and unobtrusive way. TIP #392: Allow Bignums to be Disabled at Runtime on a Per-Interp Basis Version: $Revision: 1.1 $ Author: Joe Mistachkin State: Draft Type: Project Tcl Version: 8.5 Vote: Pending Created: 30 Oct 2011 Keywords: bignum, runaway, safe, math, precision, integer, tcl This TIP proposes the ability to enable or disable all use of bignums at runtime on a per-interpreter basis. The mechanism being presented to accomplish this goal has been designed to be generic enough so that it can be used for other per-interpreter configuration parameters in the future. TIP #393: Add -command Option to lsearch Version: $Revision: 1.2 $ Author: Pawel Salawa State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 25 Apr 2011 This document describes new option for *lsearch* named *-command* that lets the developer define a custom comparision algorithm for searching for an element of a list. TIP #394: Platform-Independent Handling of Contemporary Mice Version: $Revision: 1.1 $ Author: Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 30 Nov 2011 This TIP proposes a change to Tk's Events such as to support new features of modern pointer devices (mice) in a platform-independent way. TIP #395: New 'string is entier' Command Version: $Revision: 1.5 $ Author: Jos Decoster State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 13 Dec 2011 Discussions To: news:comp.lang.tcl Obsoletes: TIP #347 Keywords: Tcl The *string is* command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. One common case is missing: checking if a value is an integer number without particular storage width, unlike *string is integer* and *string is wideinteger*. This document proposes to augment the *string is* command with a *string is entier*. TIP #396: Symmetric Coroutines, Multiple Args, and yieldto Version: $Revision: 1.8 $ Author: Kevin Kenny State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 11 Feb 2012 Obsoletes: TIP #372 Keywords: coroutine, yield, yieldto A new command, *yieldto*, is proposed that allows a corouting to suspend its execution and tailcall into an arbitrary command. If the new command is another coroutine's resume command, we obtain symmetric coroutines. If the new command is the *return* command, we obtain the ability for a coroutine to present an unusual status (e.g., /error/, /break/, /continue/ or /return/) to its caller. The *yieldto* command also marshals the arguments as a list when the yielding coroutine is next invoked, allowing for the transmission of multiple arguments. TIP #397: Extensible Object Copying Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 13 Feb 2012 Keywords: Tcl, TclOO, copy, clone This TIP proposes a mechanism whereby an object or class can provide additional control over how it gets copied to a new one by the *oo::copy* command. TIP #398: Quickly Exit with Non-Blocking Blocked Channels Version: $Revision: 1.7 $ Author: Alexandre Ferrieux State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 24 Feb 2012 Keywords: close, exit, flush, blocking, nonblocking This TIP reverts an age-old documented behavior that is useless, and the ill effects of which cannot be circumvented: Tcl's insistence on flushing even non-blocking channels on exit. TIP #399: Dynamic Locale Changing for msgcat Version: $Revision: 1.18 $ Author: Harald Oehlmann State: Accepted Type: Project Tcl Version: 8.6 Vote: Done Created: 27 Mar 2012 Obsoleted By: TIP #412 Keywords: Tcl, localization, msgcat This TIP adds dynamic locale switching capabilities to the *msgcat* package. TIP #400: Setting the Compression Dictionary and Other 'zlib' Updates Version: $Revision: 1.7 $ Author: Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 30 Mar 2012 Keywords: Tcl, zlib Sometimes it is necessary to set the compression dictionary so that a sequence of bytes may be compressed more efficiently (and decompressed as well). This TIP exposes that functionality. It also reduces the number of inconsistencies in the *zlib* command. TIP #401: Comment Words with Leading {#} Version: $Revision: 1.5 $ Author: Lars Hellström State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 29 Apr 2012 The basic syntax rules of Tcl (the "dodekalogue") are modified to allow words that are comments. In analogy with the argument expansion *{*}*, such comment words will begin with *{#}* (left brace, hash sign, right brace). The change concerns both words in scripts and, more importantly, words in lists. TIP #402: General Platform UNC Support Version: $Revision: 1.2 $ Author: Jan Nijtmans State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 16 Jul 2011 Discussions To: Tcl Core list Keywords: Tcl Both Windows and Cygwin interpret paths starting with *//* as a special prefix, indicating that the path has the form: *//server/share/file_path*. Windows has built-in handling of such paths built-in. UNIX doesn't have this. It could be implemented through a VFS extension, but there is one problem: File normalization on UNIX collapes multiple slashes into a single slash, so this would convert the UNC path into a normal path. This makes it impossible to implement a VFS extension which uses *//* as prefix, implementing connection to a Samba server using the UNC path format. TIP #403: Web Colors for Tk Version: $Revision: 1.3 $ Author: Jan Nijtmans State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 17 Jul 2011 Discussions To: Tcl Core list Keywords: Tk This TIP proposes some modifications in the RGB values of various colors as used in Tk, bringing those colors more in line with various W3C standards. TIP #404: Let Message Catalogs get the Locale from their File Name Version: $Revision: 1.9 $ Author: Harald Oehlmann State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 17 Jul 2011 Discussions To: Tcl Core list Keywords: msgcat, convention This TIP proposes a mechanism for coupling locales more strongly to the names of the files that define them, an already-recommended practice, so as to make it less error-prone to produce message catalogs. TIP #405: Add Collecting Loops, the 'lmap' and 'dict map' Commands Version: $Revision: 1.10 $ Authors: Trevor Davel Donal K. Fellows State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 31 Jul 2012 Keywords: Tcl, mapeach, loop, accumulator The *lmap* command is a collecting loop with the semantics of *foreach*. When the loop begins an accumulator is set to an empty list. In any iteration where the body of the loop completes normally, the result of the body is appended to the accumulator list. The return value for *lmap* is the contents of the accumulator. The *dict map* command is an equivalent collecting loop with the semantics based off *dict for*. TIP #406: "C" is for Cookie Version: $Revision: 1.4 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 8.6 Vote: Pending Created: 01 Aug 2012 The "http" package needs cookie support, especially to support complex modern web authentication protocols. This TIP defines a pluggable interface and a TclOO class that implements that interface so that Tcl programmers can control just what is shared and stored, and where. TIP #407: The String Representation of Tcl Lists: the Gory Details Version: $Revision: 1.7 $ Authors: Donal K. Fellows Kevin Kenny Don Porter State: Draft Type: Informative Vote: No voting Created: 06 Aug 2012 This document explains some of the details behind Tcl lists; it is there to expose documentation that was previously only present as comments in Tcl's source code. TIP #408: Allow Any Command for expr Functions Version: $Revision: 1.1 $ Author: Brian Griffin State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 17 Aug 2012 Proposed expansion of what constitutes a function in an *expr* expression. TIP #409: UDP in Tcl Version: $Revision: 1.19 $ Authors: Alexandre Ferrieux Colin McCormack State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 17 Aug 2012 Obsoletes: TIP #391 Keywords: udp, datagram, message This TIP adds support for UDP in Tcl, with a pure event approach to packet reception (as opposed to hijacking the existing channel infrastructure). TIP #410: Three Features of scan Adapted for binary scan/format Version: $Revision: 1.2 $ Author: Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 26 Aug 2012 This proposal specifies three new features for *binary scan* and *binary format* that already exist similarly for *scan*, namely: *#* for consuming a count-value from the parameter list (like "*scan %**"), *p* for writing current position to a consumed parameter variable (like "*scan %n*") and returning a single parsed value if no parameter is left. TIP #411: Improved Channel Introspection via "chan info" Version: $Revision: 1.4 $ Author: Pawel Salawa State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 31 Aug 2012 This document describes new subcommand for *chan*, *chan info*, that provides a unified interface to deeper introspection of information about a particular channel. TIP #412: Dynamic Locale Changing for msgcat with On-Demand File Load Version: $Revision: 1.9 $ Authors: Harald Oehlmann Harald Oehlmann State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 27 Mar 2012 Obsoletes: TIP #399 Keywords: Tcl, localization, msgcat This TIP adds dynamic locale switching capabilities to the *msgcat* package. TIP #413: Unicode Support for 'string is space' and 'string trim' Version: $Revision: 1.5 $ Author: Jan Nijtmans State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 08 Oct 2012 Discussions To: Tcl Core list Keywords: Tcl This TIP is in fact a re-consideration of [TIP #318], in that it attempts to define, once and for all, for which characters *string is space* should return 1 and which characters *string trim* should trim. TIP #414: Add (back) Tcl_InitSubsystems as Public API Version: $Revision: 1.25 $ Authors: Brian Griffin Jan Nijtmans State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 15 Oct 2012 The ability to initialize just the lower level Tcl subsystems used to be part of the public API, now it is no longer exposed. This TIP proposes that it be re-exposed. TIP #415: Enable Easy Creation of Circular Arc Segments Version: $Revision: 1.11 $ Author: Simon Geard State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 16 Oct 2012 Keywords: Tk Creating a segment of a circular arc is unnecessarily difficult using the *canvas* arc. This TIP proposes a simple extension of the syntax to support the creation of circular arc segments in a natural way. A similar extension to support the more general elliptical arc segments is outside the scope of this TIP. TIP #416: New Options for 'load': -global and -lazy Version: $Revision: 1.5 $ Authors: Christian Delbaere Jan Nijtmans Jan Nijtmans State: Final Type: Project Tcl Version: 8.6 Vote: Done Created: 31 Oct 2012 This TIP proposes enhancing the Tcl *load* command with the additional options *-global* and *-lazy*. It is implemented on top of [TIP #357], by defining a meaning to the *flags* parameter already defined there. TIP #417: Use Explicit Option Names for "file tempfile" Version: $Revision: 1.1 $ Author: Christophe Curis State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 16 Nov 2012 Keywords: Tcl, future expansion, extensibility This TIP proposes altering the way in which optional arguments are specified to *file tempfile* (see [TIP #210]) to make them easier to understand and extend in the future. TIP #418: Add [binary] Subcommands for In-Place Modification Version: $Revision: 1.3 $ Author: Jeff Rogers State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 27 Aug 2012 Keywords: Tcl, binary data This TIP proposes adding new subcommands to the *binary* to better enable parsing and manipulation of binary values. TIP #419: A New Command for Binding to Tk Events Version: $Revision: 1.2 $ Author: Jeff Rogers State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 28 Aug 2012 This TIP proposes a more modern mechanism for binding callbacks to Tk's events. TIP #420: 'vexpr', a Vector Expression Command Version: $Revision: 1.6 $ Authors: Sean Woods Andreas Kupries State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 15 Nov 2012 This TIP proposes to add a new command to Tcl for manipulating vectors and related mathematical objects. The command, *vexpr*, will provide C-optimized implementations of generally useful scalar, 2D, 3D and affine transforms. *vexpr* is a complement to *expr*, and expects to take in vector arguments and return vector results. TIP #421: A Command for Iterating Over Arrays Version: $Revision: 1.1 $ Authors: Karl Lehenbauer Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 28 Nov 2012 This TIP proposes an efficient mechanism for iterating over the contents of a large array. TIP #422: Don't Use stdarg.h/va_list in Public API Version: $Revision: 1.1 $ Author: Jan Nijtmans State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 02 Jan 2013 Keywords: Tcl, API removal, varargs This TIP proposes to remove all functions which use the /va_list/ type from the public API, and it describes what extensions using this should do to make their extension portable on the mingw-w64 gcc compiler on the AMD64 platform. TIP #423: Formatting Timestamps with Milliseconds Version: $Revision: 1.1 $ Author: Thomas Perschak State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 07 Jun 2013 Keywords: Tcl, time, millisecond resolution This TIP describes a change to *clock format* to allow it to handle timestamps with sub-second accuracy. TIP #424: Improving [exec] Version: $Revision: 1.8 $ Author: Alexandre Ferrieux State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 07 Jul 2013 Keywords: Tcl, subprocess, execution This extension overcomes day-1 limitations of [*exec*]'s syntax, allowing for unconstrained arguments to commands, and opening the path to more exotic redirections. TIP #425: Internationalization of Default Panic Callback on Windows Version: $Revision: 1.6 $ Author: Jan Nijtmans State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 17 Jul 2013 Keywords: Tcl, platform integration, i18n The default panic proc on Windows console applications writes the message in UTF-8 to stderr. Unfortunately, the Windows console normally does not have UTF-8 as code page but some single-byte code page like CP1252. When using characters outside the ASCII range, that does not give the expected output in the console. This TIP proposes to add a new Console panic proc to the stub library, and modify the Tcl_Main() macro to use it. TIP #426: Determining the "Type" of Commands Version: $Revision: 1.2 $ Author: Donal K. Fellows State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 31 Jul 2013 Keywords: introspection, commands, Tcl, Tk This TIP describes a mechanism for determining what "type" of command a particular command is. This can be used as a prelude to performing other kinds of introspection, such as using *info body*, *namespace origin* or *interp alias*. TIP #427: Introspection of Asynchronous Socket Connection Version: $Revision: 1.13 $ Authors: Reinhard Max Harald Oehlmann Reinhard Max State: Final Type: Project Tcl Version: 8.6.4 Vote: Done Created: 16 Mar 2014 Keywords: async socket connect, introspection, IPV6 This TIP describes a method to introspect the asynchronous connection process by an extension of the *fconfigure* interface in addition to *fconfigure -error*. This will enable better control over the asynchronous connection process, even in cases where the event loop is not in use. TIP #428: Produce Error Dictionary from 'fconfigure -error' Version: $Revision: 1.26 $ Authors: Harald Oehlmann Harald Oehlmann State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 16 Mar 2014 Keywords: socket, non-blocking, error reporting, option dictionary This TIP proposes a new method which allows to return the error message and the error code of a background socket error (as reported by *fconfigure -error*), similar to the option dictionaries produced by catch and try and consumed by return. TIP #429: A 'string' Subcommand for Concatenation Version: $Revision: 1.6 $ Authors: Andreas Leitgeb Alexandre Ferrieux State: Final Type: Project Tcl Version: 8.6.2 Vote: Done Created: 27 Jul 2014 Keywords: Tcl, cat, scriptlet result This TIP describes a new (sub)command *string cat* to concatenate an arbitrary number of strings. TIP #430: Add basic ZIP archive support to Tcl Version: $Revision: 1.6 $ Authors: Sean Woods Donal Fellows Poor Yorick Harald Oehlmann State: Draft Type: Project Tcl Version: 8.6.3 Vote: Pending Created: 03 Sep 2014 Keywords: virtual filesystem, zip, tclkit, boot, bootstrap This proposal will add basic support for mounting zip archive files as virtual filesystems to the Tcl core. TIP #431: Add 'tempdir' Subcommand to 'file' Version: $Revision: 1.2 $ Author: Kevin Pasko State: Draft Type: Project Tcl Version: 8.6.4 Vote: Pending Created: 10 Sep 2014 Keywords: Tcl, directory, file This TIP proposes adding a new *tempdir* subcommand to the *file* command, simplifying the effort required in creating uniquely named temporary directories at the scripting level. TIP #432: Support for New Windows File Dialogs in Vista and Later Version: $Revision: 1.4 $ Author: Ashok P. Nadkarni State: Final Type: Project Tcl Version: 8.6.3 Vote: Done Created: 20 Sep 2014 This TIP proposes changing the *tk_getOpenFile*, *tk_getSaveFile* and *tk_chooseDirectory* dialog box commands to display the new style file dialogs available on newer Windows versions. TIP #433: Add %M binding substitution Version: $Revision: 1.7 $ Authors: Joe Mistachkin Brian Griffin Don Porter State: Final Type: Project Tcl Version: 8.6.4 Vote: Done Created: 25 Feb 2015 This TIP proposes one new binding substitution, *%M*, to access the number of script-based binding patterns matched so far for the event. TIP #434: Specify Event Sources for 'vwait' Version: $Revision: 1.1 $ Author: Jos Decoster State: Draft Type: Project Tcl Version: 8.6 Vote: Pending Created: 26 Feb 2015 This TIP proposes to extend the *vwait* Tcl command so the event sources can be specified, as is possible with the *Tcl_DoOneEvent* C command. TIP #435: Safe Mutex Disposal API Version: $Revision: 1.7 $ Authors: Donal Fellows Joe Mistachkin State: Rejected Type: Project Tcl Version: 8.6.5 Vote: Done Created: 16 May 2015 This TIP proposes a new C API for improving mutex deletion. TIP #436: Improve TclOO isa Introspection Version: $Revision: 1.3 $ Author: Donal Fellows State: Final Type: Project Tcl Version: 8.6.5 Vote: Done Created: 30 Jun 2015 The various *info object isa* introspectors should not produce errors when given a non-object; the set membership tests should simply return boolean false in those cases. TIP #437: Tk panedwindow options for proxy window Version: $Revision: 1.5 $ Authors: Eric Boudaillier François Vogel State: Final Type: Project Tcl Version: 8.5.18 Vote: Done Created: 14 Jul 2015 Keywords: Tk The proxy window (i.e., the moving sash) of the Tk paned window widget is hard to see in some circumstances. This TIP adds three options allowing more control over the display of the proxy so that its visibility can be enhanced where required. TIP #438: Ensure Line Metrics are Up-to-Date Version: $Revision: 1.16 $ Authors: François Vogel Jan Nijtmans State: Final Type: Project Tcl Version: 8.6.5 Vote: Done Created: 01 Nov 2015 Keywords: Tk, text The text widget calculates line metrics asynchronously, for performance reasons. Because of this, some commands of the text widget may return wrong results if the asynchronous calculations are not over. This TIP is about providing the user with ways to ensure that line metrics are up-to-date. TIP #439: Semantic Versioning Version: $Revision: 1.8 $ Author: Jan Nijtmans State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 08 Dec 2015 The version schema used by Tcl and Tk has the form MAJOR.MINOR.PATCH, which is the same schema used by "Semantic Versioning" []. For alpha and beta releases the schema is MAJOR.MINORaPATCH resp MAJOR.MINORbPATCH, which is not following the "Semantic Versioning" rules, but it's close. This TIP proposes to start using "Semantic Versioning" for Tcl and Tk, starting with Tcl/Tk 8.7, without making it mandatory for extensions and Tcl modules: existing extensions and modules written for Tcl/Tk 8.6 or lower must cooperate unmodified with later 8.x versions as well. TIP #440: Add engine to tcl_platform Array Version: $Revision: 1.13 $ Authors: Joe Mistachkin Jan Nijtmans State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 14 Jan 2016 Keywords: language implementation, platform This TIP proposes a mechanism for determining the implementation of the Tcl language currently in use. TIP #441: Add -justify Configuration Option to the listbox Widget Version: $Revision: 1.3 $ Authors: François Vogel François Vogel State: Final Type: Project Tcl Version: 8.6.5 Vote: Done Created: 18 Jan 2016 Keywords: Tk, listbox Despite the *listbox* widget already having numerous configuration options, some users need more refinements and have requested the possibility to control the justification of the text displayed in the items of the listbox. This TIP proposes to add this option. TIP #442: Display text in progressbars Version: $Revision: 1.11 $ Authors: René Zaumseil Kevin B Kenny Andreas Leitgeb Kevin Kenny State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 17 Feb 2016 Keywords: Tk Horizontal progress bars should support the ability to display text inside the progress bar. Buttons should allow justification of multiline texts. TIP #443: More Tag Configuration Options for the Text Widget Version: $Revision: 1.9 $ Author: François Vogel State: Final Type: Project Tcl Version: 8.6.6 Vote: Done Created: 09 Feb 2016 Keywords: Tk Despite the *text* widget already has numerous configuration options, some users need more refinements and have requested new tag configuration options. This TIP proposes to add these options, when deemed relevant. TIP #444: Add "weekdays" unit in clock add Version: $Revision: 1.6 $ Author: Pietro Cerutti State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 23 Feb 2016 This TIP proposes an enhancement to the *clock add* command to support performing days arithmetic using weekdays only. TIP #445: Tcl_ObjType Utility Routines Version: $Revision: 1.7 $ Author: Don Porter State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 18 Mar 2016 Proposes additional public routines useful for extensions that implement custom *Tcl_ObjType/s. TIP #446: Introspect Undo/Redo Stack Depths Version: $Revision: 1.9 $ Author: François Vogel State: Final Type: Project Tcl Version: 8.6.6 Vote: Done Created: 05 Apr 2016 Keywords: Tk Tk features a generic undo/redo mechanism (see [TIP #104]). This is used in practice by the *text* widget, within the *edit* command. The present TIP proposes to add two new subcommands to the *edit* command allowing the user to know whether undo and redo is possible for a *text* widget. TIP #447: Execution Time Verbosity Levels in tcltest::configure Version: $Revision: 1.6 $ Author: Pietro Cerutti State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 20 Apr 2016 Keywords: Tcl, tcltest The *-verbose* option of the *tcltest::configure* command accepts a set of verbosity levels to specify what pieces of information about tests the user wants reported. This TIP proposes the addition of two new verbosity levels to report information about the execution time of tests. TIP #448: Update Tcl_SetNotifier to Reinitialize Event Loop Version: $Revision: 1.1 $ Author: Jeff Rogers State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 24 May 2016 Keywords: Tcl, C API Tcl_SetNotifier cannot be used in its current state to replace a notifier than has been initialized because pointers to the old initialized value are kept in the interp's private data. This TIP proposes a way to change that. TIP #449: [text] undo/redo to Return Range of Characters Version: $Revision: 1.12 $ Author: François Vogel State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 07 Jun 2016 Keywords: Tk Tk features an undo/redo mechanism for the *text* widget. This TIP proposes that the *edit undo* and *edit redo* commands of the text widget return the ranges of characters impacted by the undo or redo operation. TIP #450: Add [binary] subcommand "set" for in-place modification Version: $Revision: 1.1 $ Author: Arjen Markus State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 18 Jul 2016 Keywords: Tcl, binary data This TIP proposes a simpler extension of the [binary] command than the related [TIP #418], namely just a subcommand *set* that updates an existing byte array in a variable instead of creating a new one like *binary format*. It does not propose an extension of the various formatting codes. TIP #451: Modify [update] to Give Full Script Access to Tcl_DoOneEvent Version: $Revision: 1.2 $ Author: Colin McCormack State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 10 Aug 2016 Keywords: Tcl, event loop This TIP add flags to *update* to represent all the flag values available to the underlying API, /Tcl_DoOneEvent()/, exposing them to script access. TIP #452: Add "stubs" Package to or Along Side of TclTest Version: $Revision: 1.8 $ Authors: Gerald Lester Gerald W. Lester Gerald W. Lester State: Draft Type: Project Tcl Version: 8.6 Vote: Pending Created: 10 Aug 2016 This TIP proposes an enhancement to the *tcltest* package to add support for easy creation of test stubs, mocks and seams. TIP #453: Tcl Based Automation for tcl/pkgs Version: $Revision: 1.2 $ Author: Sean Woods State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 13 Sep 2016 Keywords: Build tooling This TIP proposes replacing the *make package* process currently employed by the core with a Tcl-based build automation tool. TIP #454: Automatically Resize Frames After Last Child Removed Version: $Revision: 1.19 $ Authors: Harald Oehlmann Harald Oehlmann Francois Vogel State: Draft Type: Project Tcl Version: 8.6.6 Vote: Pending Created: 21 Sep 2016 Keywords: Tk A *frame*-like widget has 1x1 required size if created. If children are added by pack/grid and the last children is unpacked/grid, the frame-like widget does not return to the 1x1 required size. Instead, it keeps the size of the last packed item. It should automatically or under control resize to the initial requested size of 1x1. TIP #455: Extensions to [vwait]: Variable Sets and Scripted Access to Tcl_DoOneEvent Version: $Revision: 1.2 $ Author: Christian Werner State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 07 Oct 2016 Keywords: Tcl, event loop This TIP generalizes the *vwait* command to allow waiting on zero, one, or more variable changes, on zero or more file events, to time-limit the wait, and to control on which kinds of events is to be waited by partially exposing the underlying API, namely /Tcl_DoOneEvent()/. TIP #456: Extend the C API to Support Passing Options to TCP Server Creation Version: $Revision: 1.6 $ Authors: LemonBoy lime boy State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 18 Nov 2016 Keywords: Tcl, socket, SO_REUSEPORT, SO_REUSEADDR The *Tcl_OpenTcpServer* interface doesn't provide enough flexibility as experienced during the implementation of the scaffolding necessary to support the *SO_REUSEPORT* flag for sockets. This TIP adds that capability through a new API function, *Tcl_OpenTcpServerEx*, that takes extra options. TIP #457: Add Support for Named Arguments Version: $Revision: 1.22 $ Authors: Mathieu Lafon Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 21 Nov 2016 Keywords: Tcl, procedure, argument handling This TIP proposes an enhancement of the Tcl language to support named arguments and additional features when calling a procedure. TIP #458: Add Support for epoll() and kqueue() in the Notifier Version: $Revision: 1.6 $ Authors: Lucio Andrés Illanes Albornoz Lucio Andrés Illanes Albornoz State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 24 Nov 2016 Keywords: event loop, scalability This TIP proposes to replace /select/(2) in the notifier implementation with /epoll/(7) and /kqueue/(2) on Linux and DragonFly-, Free-, Net-, and OpenBSD respectively. This is to remove a major bottleneck in the ability of Tcl to scale up to thousands and tens of thousands of sockets (aka *C10K*). Furthermore, this should also provide sufficient infrastructure in order to permit adding support for other platform-specific event mechanisms in the future, such as IOCPs on Solaris and Windows. TIP #459: Tcl Package Introspection Improvements Version: $Revision: 1.6 $ Author: Jan Nijtmans State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 08 Dec 2016 Keywords: Tcl, package This TIP proposes to improve package introspection by providing a new command *package files*. TIP #460: An Alternative to Upvar Version: $Revision: 1.5 $ Author: Don Hathway State: Draft Type: Project Tcl Version: 9.0 Vote: Pending Created: 08 Dec 2016 Keywords: Tcl, variable, link, upvar Variable linking with the /upvar/ command is not as intuitive or effecient as it should be. This TIP proposes an alternative through automatic variable linking. TIP #461: Separate Numeric and String Comparison Operators Version: $Revision: 1.6 $ Authors: Kevin B Kenny Kevin B Kenny Kevin Kenny State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 24 Jan 2017 Keywords: Tcl, expression This TIP proposes to complete the separation between string and numeric comparison operations in [expr] and related commands ([for], [if], [while], etc.). It introduces new comparison operators *ge*, *gt*, *le*, and *lt*, (along with the corresponding commands in the *::tcl::mathop* namespace), and encourages programmers to restrict the six operators *==*, *>=*, *>*, *<=*, *<* and *!=* to comparisons of numeric values. TIP #462: Add New [info ps] Ensemble for Subprocess Management Version: $Revision: 1.4 $ Author: Frédéric Bonnet State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 23 Jan 2017 This TIP proposes to improve Tcl's handling of subprocesses created by the *exec* and *open* commands by adding a new *::tcl::process* ensemble. TIP #463: Command-Driven Substitutions for regsub Version: $Revision: 1.6 $ Author: Donal Fellows State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 11 Feb 2017 Keywords: Tcl, regular expression The *regsub* command can only do substitutions of a limited complexity. This TIP adds an option to generate substitution text using another Tcl command, allowing a more complex range of substitutions to be performed easily and safely. TIP #464: Support for Multimedia Keys on Windows Version: $Revision: 1.6 $ Authors: Ralf Fassel Andreas Leitgeb State: Final Type: Project Tcl Version: 8.5 Vote: Done Created: 28 Jan 2017 Keywords: Tk, keyboard, keycode This TIP proposes adding support for the multimedia keys present on many modern keyboards. TIP #465: Change Rule 8 of the Dodekalogue to Cut Some Corner Cases Version: $Revision: 1.2 $ Author: Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 03 Mar 2017 This TIP proposes to make *$*-substitution more conforming to naive expectations and just rule out certain odd-ball uses that can safely be assumed to not appear in serious use, but only in crafted examples "serving" for confusion, or as accidentally legal interpretation of mistyped Tcl code. TIP #466: Revised Implementation of the Text Widget Version: $Revision: 1.11 $ Authors: François Vogel Gregor Cramer State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 10 Mar 2017 Keywords: Tk, text widget This TIP proposes the replacement of the current implementation of the text widget (the "legacy" text widget) by a revised implementation offering a large number of advantages. TIP #467: Move TIP Collection to Fossil Version: $Revision: 1.5 $ Author: Mark Janssen State: Draft Type: Process Vote: Pending Created: 14 Mar 2017 Keywords: migration The Tcl TIP collection shall be moved to Fossil and the process of managing TIPs shall use Fossil as much as possible. The TIP format will be changed from a TIP-specific form to Markdown. TIP #468: Support Passing TCP listen Backlog Size Option to TCP Socket Creation Version: $Revision: 1.1 $ Author: Shannon Noe State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 03 Apr 2017 Keywords: Tcl, socket, SOMAXCONN This TIP adds the ability to control the TCP backlog depth used by the /listen/ system call within the *socket* Command. The API function, *Tcl_OpenTcpServerEx*, will be extended to allow the passing of the backlog value. Currently, the SOMAXCONN macro is used as the default. Backlog values are hard coded to a minimum of 100. The backlog values of 1 and 0 are useful on the Linux platform. TIP #469: A Callback for Channel-Exception Conditions Version: $Revision: 1.3 $ Author: Andreas Leitgeb State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 16 Apr 2017 Keywords: Tcl, event handling This TIP proposes to extend the *fileevent* Tcl command to also accept the keyword *exception* for its second argument. This will allow to register a callback for the specific event that the OS reports an exception on the channel, while ignoring read- or writability. TIP #470: Reliable Access to OO Definition Context Object Version: $Revision: 1.4 $ Author: Donal Fellows State: Final Type: Project Tcl Version: 8.7 Vote: Done Created: 23 Apr 2017 Keywords: TclOO, metaprogramming This TIP makes it easier for people to write procedures to extend TclOO's definition sublanguage. TIP #471: Add [info linkedname] Introspection Command Version: $Revision: 1.1 $ Author: Mathieu Lafon State: Draft Type: Project Tcl Version: 8.7 Vote: Pending Created: 05 May 2017 This TIP proposes to improve link variable introspection by providing a new *info linkedname* command. TIP #472: Add Support for 0d Radix Prefix to Integer Literals Version: $Revision: 1.8 $ Authors: Venkat Iyer Brian Griffin State: Accepted Type: Project Tcl Version: 8.7 Vote: Done Created: 25 May 2017 This TIP proposes adding support for a *0d* decimal radix prefix to complement the existing *0x* hexidecimal, *0o* octal and *0b* binary radix prefixes. TIP #473: Allow a Defined Target Namespace in oo::copy Version: $Revision: 1.4 $ Author: Donal Fellows State: Final Type: Project Tcl Version: 8.6.7 Vote: Done Created: 06 Jun 2017 Keywords: Tcl, missing functionality, bugfix This TIP adds functionality to *oo::copy* to allow the created copy to have a defined namespace, much as *oo::class*'s *createWithNamespace* method allows such a namespace to be given on normal object creation. TIP #10000: Dummy Proposal for Testing Editing Interfaces Version: $Revision: 1.216 $ Authors: Don Porter Andreas Kupries Richard Suchenwirth Kevin B KENNY Jeff Hobbs Vince Darley Fabrice Pardo Joe Mistachkin Donal K. Fellows Mark Janssen Reinhard Max Andreas Leitgeb Andreas Kupries Francois Vogel KEVIN KENNY State: Draft Type: Informative Vote: Pending Created: 03 Dec 2000 This TIP proposes to complete the separation between string and numeric comparison operations in [expr] and related commands ([for], [if], [while], etc.). It introduces new comparison operators *ge*, *gt*, *le*, and *lt*, (along with the corresponding commands in the *::tcl::mathop* namespace), and to restrict the six operators *==*, *>=*, *>*, *<=*, *<* and *!=* to comparisons of numeric values. >>EXAMPLE IMAGE<< This is a test caption This is an example long TIP reference 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 URL in brackets - [] HTTPS URL - FTP URL - NEWS URL - MAILTO URL - Others (might not be valid links!) - , ------------------------------------------------------------------------- /Examples of sections and subsections/ ~Section Heading Section text ~~Subsection Heading Subsection text ~~~Subsubsection Heading Subsubsection text which renders as... SECTION HEADING ================= Section text SUBSECTION HEADING -------------------- Subsection text SUBSUBSECTION HEADING Subsubsection text ------------------------------------------------------------------------- COPYRIGHT =========== This document has been placed in the public domain. ------------------------------------------------------------------------- TIP AutoGenerator - written by Donal K. Fellows