[JH]: This page documents items intended for 8.5. It's not meant to be a wishlist (please create another page for that, like [Tcl Wishlists]), but a practical roadmap for 8.5. Please restrict commentary on this page to reduce clutter. [JH] reserves the right to clean this page up to keep it easy to review. Do not add items to the list without approval, as this is meant to be a semi-official list. These lists are known to be incomplete, but I'd like to control what goes in so it all makes sense and, more importantly, is practically possible. ---- '''TIMING''' * 8.5a2 mid-November 2004 * 8.5a3 June 2005 * 8.5a4 ?? * 8.5.b1 October 2005 (Tcl conference: beta means feature complete) - [[whoops - this milestone was missed. What specific features are to stabilize before moving into beta?]] * 8.5.0 following, based on testing, testing, testing of 8.5 betas Remember that alphas are the feature creep releases. Beta is essentially release candidate, when we hope more people will pound on it. Fall 2005 is a liberal timing for 8.5, depending on volunteer effort and coordinating the work that people would like to see in 8.5. ---- [Changes In Tcl/Tk 8.5] will document the [TIP]s that have been approved and integrated into the [Tcl]/[Tk] [core]. ---- '''OPEN UN-TIPPED ITEMS''' 8.5 is focused more on Tk, although Tcl changes will be notable as well. Tk will be most notable, because the whole look will be revamped. These items focus more on those not listed as tips [http://tip.tcl.tk/] already. * [Tile], theming for Tk, is targetted for 8.5. This requires corrections to the TIP #48 Style Engine. This will introduce a ''::ttk'' namespace (Themed Tk) as a sibling to ''::tk'', with C APIs as well. A new set of themed widgets with similar capabilities to the existing widgets will be placed in the ''::ttk'' namespace. The existing widgets will be moved to the ''::tk'' namespace, with the toplevel commands pointing at the classic widgets by default. This will make it easy for users to switch to themed widgets, while allowing for both to coexist in the same application. [Tile] includes new widgets as well (currently tabnotebook, combobox, progressbar and separator). * ''exec -bgexec'', some sort of [BLT] [bgexec] equivalent for Tcl. This should be possible to shoehorn into the existing [exec] implementation because it already accepts switches. New switches would interpret the exec command differently (not in the current brittle way). * ''encoding directory ?dir?'', this just exposes the Tcl encoding directory at the Tcl level. * ''font fallback ...'', font fallbacks are currently hardcoded, which causes problems in some applications (perhaps also font alias control) * ''font create ... -command''. Named fonts need a callback command for when they are changed (like the WorldChangedProc for C widgets) for those who use them in megawidgets. * ''pid '', revive TIP #88 [http://tip.tcl.tk/88.html] * ''more wm attributes'', across platforms, but especially OS X and X * ''option clear -noreload'', a way to prevent the xrdb from getting in the way of a Tk app * ''More core Tk modules''. There are several worth consideration as standard Tk modules, with tkdnd (drag and drop) being a key one, as well as tooltips. * ''[tktable]'' - time to go into the core, with some option fix-ups * ''megawidgets'' - come on, you know you want it * ''tree'' - a tree widget ([treectrl]?, something else?) * ''Improved accessibility support''. Tk currently doesn't handle screen readers, tablet input, or some other newer accessibility things. It does handle stuff like the magnifier and carets correctly, but that's only a partial solution to full accessibility support. * ''Bidi support'' (see [bidi rendering]). Any volunteers? * ''Thread-enabled by default''. Sure, it's a bit slower, but it may just be time to do it. This would include adding the '''Thread''' extension into the Tcl core. * ''Fix Tk bindings''. Many of the Tk bindings are out of date with current standards. This includes things like many widgets not taking focus on <1>, which they should, and some key bindings. * Updates to make full use of [[source -encoding]]. * Revisions to support access to Unicode command lines. See [http://sf.net/support/tracker.php?aid=491789]. * Bundled TEA-compliant packages * Support for alpha/beta package version numbers. * Internal filesystem. * More direct control over exceptional return code generation during evaluation. * Enhance 'load' to support function calling * 'min' and 'max' as expr functions ''(TIP #232: Creating New Math Functions for the 'expr' Command [http://tip.tcl.tk/232.html] makes this near trivial)'' ---- '''ITEMS REQUIRING WORK''' * ''named colors'', TIP #154 [http://tip.tcl.tk/154.html]. * ''lambda in Tcl'', several open tips, needs agreement. * ''Documentation and demos''. We need people willing to improve the Tcl/Tk docs and add more (and fancier) demos. ''([DKF] notes that anyone wanting to work on this should concentrate on the content and let me handle how to encode it in nroff (or [tmml]/[doctools] if we switch to that). For demos, and especially the widget demo, we are particularly looking for demos that cover animation and, when they are added, any new widgets; other demos are welcome too though, especially of the "more complete worked app" variety.)'' * ''Language bindings''. I have rewritten the one for Perl ([Tcl::Tk]). It has some [Perl/Tk] compatability, but could use some more (probably as a separate module). The other languages (Python, Ruby, ...) could all use better bindings. For example, in redoing the Perl one, I made one that was faster and leaner than the original, as well as much more flexible (allowing any Tcl/Tk extension to be used, across more platforms). * See other tips [http://tip.tcl.tk/] for open items that need an implementation or just a push. [DKF]: Open TIPs (targetting 8.5, ''italics'' indicating likely to make 8.5a2): * 86 '''Improved Debugger Support'''' * 89 '''Try/Catch Exception Handling in the Core''' * 97 '''Moving Vertices of Canvas Items''' * 106 '''Add Encoding Abilities to the [[dde]] Command''' * 119 '''Angled Text on a Canvas''' * 122 '''Use tcl_{non,}wordchars Throughout Tcl/Tk''' * 125 '''Adding [[wm toplevel]] Subcommand''' * 128 '''Ability to Install a Custom Memory Allocator''' * 133 '''Extending [[expr]] Operators''' * 154 '''Add Named Colors to Tk''' * 160 '''Improvements to Terminal and Serial Channel Handling''' * 162 '''IPv6 Sockets for Tcl''' * 164 '''Add Rotate Subcommand to the Canvas Widget''' * 166 '''Reading and Writing the Photo Image Alpha Channel''' * 167 '''Add a New Option for Context Help for Windows''' * 170 '''Better Support for Nested Lists''' * 171 '''Change Default Bindings Behavior''' * 172 '''Improve UNIX Tk Look and Feel''' * 174 '''Math Operators as Commands''' * 178 '''[[info pid]] and [[info tid]] Subcommands''' * 180 '''Add a Megawidget Support Core Package''' * 181 '''Add a [[namespace unknown]] Command''' * 185 '''Null Handling''' * 186 '''Expose the Type and Modified-State of Widget Options''' * 187 '''Procedures as Values''' * 193 '''Simple Syntax Help System''' * 194 '''Procedures as Values via [[apply]]''' * 195 '''Script Access to Tcl_GetIndexFromObj''' * 197 '''Text Widget Persistant Cursor''' * 198 '''Image Command XPM Extension''' * 199 '''Specification of Alternatives to .wishrc/.tclshrc''' * 210 '''Add 'tempname' Subcommand to [[file]]''' * 211 '''Add Full Stack Trace Capability''' * 213 '''A Standard Dialog for Font Selection''' * 214 '''Add New Object Introspection Command''' * 215 '''Make [[incr]] Auto-Initialize Undefined Variables''' * 216 '''Handling Command-Line Options in Tclsh and Wish''' * 220 '''Escalate Privileges in VFS Close Callback''' * 224 '''Add New [[array]] Subcommands 'incr' and 'value' ''' * 225 '''Arithmetic Series with Optimized Space Complexity''' * 228 '''Tcl Filesystem Reflection API''' * 230 '''Tcl Channel Transformation Reflection API''' ---- [DKF]: Additional notes on documentation that includes pictures: If we are going to do this, we ''must'' move to [doctools] or [tmml] first, though it will still be possible to support inclusion of pictures within *roff format documentation using the .PSPIC macro [http://lists.gnu.org/archive/html/groff/2004-09/msg00093.html] provided we convert the pictures to postscript. It is not possible to support pictures in nroff output (how most Unix users use manual pages); ideally we'd provide a manual browser ourselves (with the demos?) that avoids this problem. ---- 03-Feb-2006: Given that it's still at 8.5.a3, what's the current prediction for 8.5.0? I'm not complaining, mind you. Just curious. ---- 04-Feb-2006 Paul Walton: What about something like [Tcl3D]? Are there plans for something like that in the core, or is that better off left as an extension? ---- [Category Documentation]