What does it mean for a language to be called “Tcl”? It surely cannot just mean that it is built from C via libtcl; there must be something deeper than that. Well, the Endecalogue/Dodekalogue must have something to do with it of course, but is that all? I suspect not; you can't do anything without more than that. So on this page, I'm going to try to identify what additional things have to be there to make up something that we'd recognize as Tcl. In particular, I'm going to identify “profiles” that comprise a particular language core, related semantics and minimal associated set of commands; these profiles will build on top of each other of course.
This profile approximates the language that was there in Tcl 7.*
Everything in 7, but also with after, open, close, gets, read, fconfigure, fileevent, eof, fblocked, update and vwait. (i.e., the event and core IO system). Also supporting socket is recommended, but not required. Note that it is up to implementations to define the meaning of "filenames" used by open.