- file truncate file for tclx's ftruncate
- file lock file for tclx's flock
- file unlock file for tclx's funlock
- file dup fd for tclx's dup
- file set fd fd ... not part of tclx, but would be nice ...
file set stderr [open /tmp/log a+]
- file pipe ?var_r ?var_w for tclx's pipe command.
- file pty ?var_r ?var_w to create a pseudo-tty with some of the facilities expect provides.
- file isatty fd predicate returning true if fd is a tty.
- The addition of -fileid semantics may be a fair bit of work
- Interactions with things like Trf
- Should file be made into an actual ensemble command? Perhaps we're not far enough along with that technology yet.
- Can/Should file be moved off as a distinct module within tcl itself?
- Are the things named by fds refcounted? They'd have to be, if [file dup] and [file set] were to be implemented. It follows, then, that since TclX has dup, they are :)
DKF: Some of these things are actually there if you know what to look for. In particular, 8.5 includes chan truncate and (since 8.4) tty-connected channels can be distinguished by the options returned when you introspect on them using fconfigure/chan configure.EG: chan pipe is specified in TIP #304  and available since 8.6b1 at least.
DKF: Going through the set to produce a smaller one:
- chan truncate is done.
- lock/unlock are tools that I'm not really all that keen on
- dup/set can be worked around (in particular, you can set standard channels with trickery).
- chan pipe is done.
- I'd rather leave pty handling to expect.
- A channel refers to a tty if (and only if) it has the serial options. Really.