Usenix 1996 - Tcl Bof Jan 24

These are the notes I took at the Tcl Bof at the Usenix Technical Conference 22-29 Jan 1996 in San Diego.

At best they paraphrase my understanding of what was said and its likely that I got some of it wrong...

John Ousterhout chaired the Bof with both Brent Welch and Stephen Uhler helping. We had a quite small room and filled it up 30-50 people..

Usenix had two tutorial sessions on Tcl - John did his Tcl Introductionon Monday, Brent and Stephen did an Advanced Tcl/Tk Tutorial on Tuesday.

New Features ( Tcl 7.5)

PC Implementations of Tcl/Tk - MS-Windows and Mac

The Win 3.1 implementation also requires the Win32s library (DLL)

Currently Tk has Motif Look and Feel on all platforms - this is obviously unacceptable for the long term and they will support the Native Look and Feel in the next Release (Tk4.2).

John encouraged those who are interested in the PC ports to use them and report any stability and robustness Problems ASAP. He's been impressed with the current level of stability ( expected a whole lot more problem reports) and hoped that wasn't a reflection of the lack of people thrashing on it..

Shared Library Support

Package Command

    package provide Foo 3.1 ;# describe a package (module + ver )
    package require Foo ?3.1? ;# load package
    pkg_mkindex ~/tcllib *.so *.tcl ;# make index of DLLs and
    src files in given dir
    export TCLLIBPATH=~/tcllib # say where to search for DLLs

Tk as a DLL

Tk will be built/provided as a dynamically loadable package. Johns still debating whether there should be a separate wish interp or just allow tclsh to act as the Tk interp.

Tk Event Loop

The Tk Event Loop and associated commands will move from Tk into the Tcl core

New I/O subsystem internal to Tcl

Done mainly for portability - no use of stdio - Provides :

Socket Support

	socket -server callbackProc ?port? 	;# server
	socket hostname ?port? 		;# client
	socket -server newConnCallBack 4040
	proc newConnCallback { fd host } { ... }
	socket foo.bar.com 4040

Portable Pathnames

Safe-tcl

Time support

Extended foreach command

    foreach i $list1 { j k l } $list2 { ... }
    foreach {name age ssn phone salary } $record { }

Exit Handlers

Simple File operations

Tk New Features (4.1)

New Geometry Manager

Text Widget Improved

SpecTcl GUI Builder

Java

Characterised by the Question - Whats the relationship between JAVA and Tcl ?

"Siblings in a family of networking solutions"
- John said hes learnt marketSpeak since hes been at Sun

Tcl/Tk is for

Java is for system Programming

Interesting logical next step is to reimplement Tcl in JAVA (assuming can get Java and Tcl together and Java can be compiled to native Machine code ).

Beauty of Visual Basic

Wrong with Visual Basic

Tcl/Tk as VBasic for the Internet

Current Projects

The Current team is 8 people including John ( which is about the max it should get and still be a single team ).

The books should be updated with info for the PC+Mac ports but eventually forthcoming compiler will change or augment the C API's which will need some more writing up - Don't know when is right time to create a new version of the books.

Long term Projects (6-18 Months )

I seem to remember we got into feature requests from the floor that he hadn't covered

Want to defer large API changes until a central time and then do all at once. Probably 'break' everything with the compiler - hope there will be no API incompatibilities but there may be some due to changes that no longer

Existing C code should continue to work with compiler but will probably want to reimplement the extensions to get full performance benefit.

The compiler will be extensible - Use of dual ported objects internally ( string and whatever ) and will extend the object support in some fashion

Probably modify the regexp parser to understand \n \t itself rather than rely on the tcl parser for translation - perhaps also some other syntax sugar similar to the perl regexp parser - should alleviate some backslash quoting hell.

Mentioned in passing that If you want to provide contrib code and maximise your chances of getting it into the core :


Hops (hops@sco.com) $ Last Modified: $Date: 1996/02/05 17:57:45 $: