Article 4726 of comp.lang.tcl: Path: chemabs!malgudi.oar.net!caen!nigel.msen.com!sdd.hp.com!ux1.cso.uiuc.edu!howland.reston.ans.net!agate!agate!msilva From: msilva@mercenary.CS.Berkeley.EDU (Mario J. Silva) Newsgroups: comp.lang.tcl Subject: notes on tcl/tk's wkshop 1st session on future directions Date: 11 Jun 93 09:16:13 Organization: UC Berkeley, CS Division Lines: 232 Message-ID: NNTP-Posting-Host: mercenary.cs.berkeley.edu [Below are my notes of the 1st session on "Future directions for Tcl/Tk" that took place yesterday. Other UC Berkeley students will submit their notes for the other 3 sessions in subsequent postings. I hope these notes will stimulate the continuation of the very productive discussions we had during the wkshop. For those who didn't come, don't miss it next year! These sessions were conducted by Prof. John Ousterhout. Part of the text is taken from John Ousterhout's slides, part are my annotations of what was being discussed. I've typed this in the emacs outline mode. If you look only at the headers, you'll see in most cases the text that was being discussesd at the moment on John's viewgraphs. The text inside are my annotations. Mario ] -*- outline -*- * Tcl/Tk wkshop; summary of "future directions" sessions ====================================================== First session was an introduction by J.O. of topics for discussion. Idea was to identify the most important areas for improvement (what are the biggest current problems?) and later discuss possible solutions. * This was the initial list of topics and reactions: ** 1. Managing extentions how to make it easy to mix & match various extensions to Tcl & Tk (both C code and Tcl Scripts) Very Important! ** 2. Restricting scripts (security, etc.) goal is to have a live discussion of what has been going on the secure-tcl mailing list Important! ** 3. Generalized Tk Bindings we all know that bindings don't extend well, discuss possible solns. Important! ** 4. Better object management facilities We already had 1 hour of presentations of religious beliefs about this issue in the morning. Everybody was too tired to react to the proposal of the topic. ** 5. Internationalization John briefly described recent wk by Rob Pike presented at Usenix. From the description, it seemed that his extension would be incompatible w/ iso8859. Tk now almost completely supports 8-bit characters, ie, the European char sets. Audience in general didn't seem to be willing to discuss of I18n issues; no experts present. ** 6. Procedure library for Tk Building a library of commonly used widgets, continuing the long discussion has been going on the newsgroup. * Additional topics The purpose of this session was not to discuss the topics above but to enumerate the topics for discussion in the following sessions. Below is my understanding of what addtional topics were proposed by the audience. ** 7. Events *** managing event loops problem is that every app wants other apps to use their event loop. Few can be easily plugged into other event loops. *** threads how to incoporate tcl/tk in a thread package? according to J.O. most of Tcl/Tk is ready to be used within a thread package. However, he acknowledged that there are still a few globals. *** event priorities requested possibility of prioritizing execution of pending events *** user-extensible event types so far TkDoOneEvent has flags to indicate request for processing of timer events, file events, X events. A finer grain is required. *** portability of the event model to other platforms? *** support for other input devices tablets, etc. currently people open the device of the serial line where the device is and process the raw input. Higher-level support for these devices is required. *** file handlers buffering ** 8. send *** multiple transport mechanisms people want to use send w/o caring which transport mechanism (tk_send, tclTCP, tclDP, ...) is being used do deliver messages to remote applications. *** asynchronous sends Current send is synchronous. Problem w/ asynch is how to handle errors, ie, how to notify the user of a client program of an execution error on a command sent to a remote server. *** service protocol (oo binding) Session management facilities should be available. An application should be able to send messages to a service (e.g, the DEBUGGER) and have the session manager 1. decide which app to invoke for the service (e.g, a tcl-based dbx) 2. automatically activate the app, if not started *** security this was not the right time to discuss it, but a small brainstorm took place here. summary of discussion: 1. better wait for what security mech will become widely available for X and use it (kerberos seems to be the current direction) 2. there are additional issues that have to be addressed, like restricting access to low-level commands. For example, a system may have a tcl i/f where low level commands are used to perform individual operations that are potentially dangerous when executed in a particular order. Users should be able to invoke only high-level commands that execute pre-defined sequences of the low-level commands that are known to be safe. ** 9. Binary data issue is converting binary data as it arrives from a connection into strings that can be manipulated by Tcl. This looks like a simple problem, but there is the issue of at what point is the conversion done. ** 10. Canvases There was a long wish list for canvas. I'm not sure if I catched them all. *** partial fills of objects suggestion: the canvas widget has an internal, undocumented, protocol. That common protocol is used to control the various types of objects within the canvas. An extension could be made by adding new types repecting that protocol *** C access to internals people want to manipulate the canvas w/o going through Tcl_Eval *** unmapping window mappings YESSS! *** geometry manager YESSS! *** adjusting coordinates *** indirect points hard to understand *** transformations associated with individual canvas items *** 3D canvas There were requests for a PHIGS canvas or a PEX canvas or simply a canvas w/ 3 coordinates. J.O. guaranteed he would not do it. *** support for multiple resolutions don't need to draw all the points in a low-resolution display. *** writable bitmaps *** active Foregroud & Background for canvases *** multiple windows for displaying the same canvas would like to show different viewports on the same canvas on different windows. people want that for the text widget too. Mario Jorge Silva msilva@cs.Berkeley.EDU University of California Berkeley Ph: +1(510)642-8248 Computer Science Division, 571 Evans Hall Fax: +1(510)642-5775 Berkeley CA 94720