MS every now and then I trip on some things in the core that I'd like to change and can't. This page is meant to keep a list, additions welcome.
The first batch concerns command invocation:
Lars H: Is the Tcl9-ishness of this purely a matter for extensions calling the Tcl_Eval* functions, or are there also script level implications? (I've noticed that the interp bgerror mechanisms are prepared to handle arbitrary exceptions, but since asynchronous scripts tend to be evaluated without TCL_ALLOW_EXCEPTIONS, the exceptions never get as far as ::tcl::Bgerror — something I'd like to see changed soon.)
Other things
Do you mean
proc foo {x y} {expr {2*$x}} foo 3 [proc foo {x y} {return 2$x}]
should return 6 rather than 23 as it currently does?
Precisely! Maybe a better illustration: look at this currently unsolvable (at reasonable cost) bug [give reference]:
mig@oli:~$ tclsh % set x 1[proc set args {puts AHA!}] 1 mig@oli:~$ tclsh % eval {set x 1[proc set args {puts AHA!}]} AHA!
(Note that that's 8.5, 8.6 may require a different example to show the effect)
ferrieux If you allow my $.02, an old dream of mine: ease polymorphism of Tcl_ObjType's. Currently plenty of code checks pointer equality with &someObjType: that's a braindead version of OO programming; this is all the more surprising that the spirit of the implementation is otherwise adequately OO (function pointers). One corollary would be to rip off the List object type's special status (under performance constraints though), so that it becomes easily sub-classable. Maybe a more important one: make it possible for an extension to subclass predefined types.
MS Ah yes ... that reminds me:
(TBC)