On Apr 14, 2007, at 7:58 PM, Elias Pipping wrote:

I'll begin with a story - scroll down to the part
with exclamation marks in front if you're in a hurry

I think there are three answers to your question (well, two answers to your specific question and an answer to a question you did not ask :-)

1. As Kevin has already pointed out, MacPorts is still stuck supporting Panther for now, so relying on the full feature set of the "Batteries Included Tcl" we started shipping with Tiger isn't going to work, as much as it would be nice.

2. Once Leopard is released, unless MacPorts is completely rewritten in Ruby or ${NewLanguageHotness}, I think leveraging more of the Batteries Included distribution would be a fine idea, and not because I'm trying to get Tcl even more deeply entrenched but because, let's face it, BI Tcl includes a lot of really nice functions that would make MacPorts code more powerful and concise if leveraged, so why not leverage it?  If people don't, then I have to say that there was little point in including a more functional Tcl distribution by default.  Other platforms, should they ever become truly significant targets for MacPorts, also support TclX so that's no barrier to entry either.

So, I guess to answer your question directly:  Yes, great idea, just not yet.

To answer the question you didn't ask, namely: "What's the best way to implement something like a recursive glob function if other constraints keep me from using Tcl?"

Write it in C and stick it in Pextlib.  Sorry, I know that's an annoying answer, but it's how I'd do it.  Including great big chunks of TclX instead (since, as Kevin also pointed out, it's fairly interdependent) would be a far less palatable alternative and far less self-contained than a simple C function added to base.

- Jordan