I understand there is no use trying to keep tcllib up to date with a moving target. I just wanted to bring this up so that someone could be thinking about it.
Tcl 8.6 cvs head (as of yesterday)
tcllib cvs head
==== assign-4.4 assign method FAILED
==== Contents of test case:
catch {assign {foo bar}} msg ; set msg
---- Result was:
foo bar
---- Result should have been (exact matching):
wrong # args: should be "::struct::list::Lassign list varName ?varName ...?"
==== assign-4.4 FAILED
==== repeat-4.2 repeat command FAILED
==== Contents of test case:
catch {repeat a} msg
set msg
---- Result was:
expected integer but got "a"
---- Result should have been (exact matching):
wrong # args: should be "::struct::list::Lrepeat positiveCount value ?value ...?
"
==== repeat-4.2 FAILED
==== repeat-4.4 repeat command FAILED
==== Contents of test case:
catch {repeat 0 b} msg
set msg
---- Result was:
---- Result should have been (exact matching):
must have a count of at least 1
==== repeat-4.4 FAILED
---- repeat-4.5 start
==== repeat-4.5 repeat command FAILED
==== Contents of test case:
catch {repeat -1 b} msg
set msg
---- Result was:
bad count "-1": must be integer >= 0
---- Result should have been (exact matching):
must have a count of at least 1
==== repeat-4.5 FAILED
Looking this over it seems that this is caused by the latest changes to the semantics of lassign/lrepeat in 8.6 ... TIP 323 (Do Nothing Gracefully) - http://tip.tcl.tk/323
Background: Tcllib provides its own implementations if and only if the commands are not provided by the core. This means that for 8.5 and 8.6 these test check the behaviour of the core command, and not Tcllib's implementation.
A question is, should Tcllib's implementation follow 8.6's lead ?
Right now we have Tcllib code behaving identical for 8.4/8.5, but not 8.6
If we follow 8.6's lead it would behave identical for 8.4/8.6, but not 8.5.
IMHO we should stay with 8.5 behaviour. That way transition is easier. If you use 8.6isms do not expect it to work for 8.5 or 8.4+tcllib.
So, the main alternative would be to disable these tests for 8.6, knowing that they test the core command and not Tcllib. With that reasoning disabling testing for 8.5 might make sense as well, despite currently behaving identical.