Tcl Source Code

View Ticket
Ticket UUID: 786509
Title: TIP#112 Implementation
Type: Support Version: None
Submitter: dkf Created on: 2003-08-11 09:11:19
Subsystem: None Assigned To: dkf
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2009-07-29 19:59:49
Resolution: Closed By: dkf
    Closed on: 2003-09-29 14:44:11
This patch implements TIP #112: Ensembles
See for details

Apply with 'patch -p0 <ensemble.patch'
User Comments: dkf added on 2009-07-29 19:59:49:

IP - Comment Removed:

dkf added on 2008-11-02 18:31:35:

data_type - 210894

dkf added on 2003-09-29 21:44:11:
Logged In: YES 

Patch (plus docs) applied to HEAD

dkf added on 2003-09-16 05:02:37:

File Deleted - 60189: 

File Added - 61598: ensemble.patch

dkf added on 2003-09-16 05:02:36:
Logged In: YES 

Patch that implements API Revision 2.23

dkf added on 2003-08-30 04:33:39:

File Deleted - 59429: 

File Added - 60189: ensemble.patch

Logged In: YES 

Patch that implements API Revision 2.17

dkf added on 2003-08-22 06:48:35:

File Deleted - 59327: 

File Added - 59429: ensemble.patch

Logged In: YES 

Patch that implements API Revision 2.14

dkf added on 2003-08-21 06:00:44:

File Deleted - 59320: 

File Added - 59327: ensemble.patch

Logged In: YES 

Patch that implements API Revision 2.9

dkf added on 2003-08-21 04:50:26:

File Deleted - 59187:

dkf added on 2003-08-21 04:50:25:

File Added - 59320: ensemble.patch

Logged In: YES 

Another improvement.  API Revision 2.8

dkf added on 2003-08-20 03:41:18:

File Deleted - 59014: 

File Added - 59187: ensemble.patch

Logged In: YES 

New patch time.  This one is supposed to implement Revision 2.5

dkf added on 2003-08-19 04:53:01:
Logged In: YES 

Current code (patchfile 59014) corresponds to Revision 2.2
of the TIP.

Since I don't understand exactly what I'd do to make use of
the TIP90 mechanisms in this context, I'll let someone
explain that stuff a bit more first.  :^)

I'm still not yet 100% sure about the -command handling.  I
want to write some more tests before committing to a final

I'm not sure yet about what to do about loops.  Or whether a
command prefix is really preferable to a script prefix for

jenglish added on 2003-08-19 03:21:07:
Logged In: YES 

Couple notes on the API --

namespace ensemble create ?cmdName? ?-option value ...?

could be replaced with

namespace ensemble create ?-command cmdName? ?-option value

since currently [namespace ensemble create -command foo] is
an error ("-command is read-only").

The -unknown handler could (should?) use the TIP 90
-returncode / -returnlevel mechanism; that way the ensemble
command can distinguish a TCL_CONTINUE meaning "reparse"
from a TCL_CONTINUE that the resolved command returns. I'd
also suggest treating anything other than a TCL_OK,
TCL_CONTINUE, or TCL_RETURN return code as an "unexpected
return code error".

Beware infinite loops in the -unknown handler:

namespace eval foo { 
namespace create -unknown "continue;#"

I'd  prefer that the -unknown handler be a command prefix,
not a script prefix.

dkf added on 2003-08-18 21:21:48:
Logged In: YES 

Here's a version with a better API

dkf added on 2003-08-18 21:21:01:

File Deleted - 58365: 

File Added - 59014: ensemble.patch

dkf added on 2003-08-11 16:11:19:

File Added - 58365: ensemble.patch