On May 21, 2018, at 5:32 AM, Ryan Schmidt <[email protected]> wrote:
> 
> Yes I'm talking about $xcodeversion, and I'm wondering why we don't have a 
> corresponding $macports_version. Why do we have to call a procedure to get 
> the MacPorts version, when we don't have to call a procedure to get the Xcode 
> version?

I could hazard a guess at how that came to be, but I’ll  assume that you’re 
wondering why it can’t be otherwise.  The answer, of course, is that it could.

The cleanest way of defining a global const variable that I’ve come across is 
with trace, tying the variable to a write command with an explicit error 
message <http://wiki.tcl.tk/398>.

But the Tcl wiki page that I linked to previously notes that "command names are 
the natural choice for constants:
they live in a separate namespace to variables;
they are rarely redefined, and few commands do so;
global commands are available everywhere without importing;
they offer the possibility of byte-code optimization, i.e. inlining (no idea if 
this is or could be done).”
-AM

Reply via email to