Ticket UUID: | 651271 | |||
Title: | trace add command doesn't qualify names | |||
Type: | Bug | Version: | obsolete: 8.4.1 | |
Submitter: | nobody | Created on: | 2002-12-10 04:37:56 | |
Subsystem: | 18. Commands M-Z | Assigned To: | kennykb | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2003-02-04 03:26:11 | |
Resolution: | Fixed | Closed By: | kennykb | |
Closed on: | 2003-02-03 20:26:11 | |||
Description: |
The new "trace add command" either has a bug or isn't very useful, one or the other. Consider this example: proc foo {} {puts "Foo!"} proc tracer {old new op} { puts "traced $old $new $op" } trace add command foo rename tracer namespace eval my_ns { rename foo bar } This outputs traced foo bar rename Now, in fact, command ::foo is being renamed ::my_ns::bar. If I'm really using this trace for anything but debugging, I need to know that. So how do I find out? My first thought was this, using "namespace which": proc tracer {old new op} { set uold [uplevel namespace which -command $old] set unew [uplevel namespace which -command $new] puts "traced $old=$uold $new=$unew" } I was hoping that running the same case as above, I'd get this output: traced foo=::foo bar=::my_ns::bar Instead, I got trace foo=::my_ns::bar bar=::my_ns::bar This isn't entirely unreasonable; it simply means that that the command has already been renamed when "tracer" is called. In a way, it's surprising that I get a result for "foo" at all. I finally found a workaround...but gosh, I shouldn't have to do that much work. The "rename" command obviously has to qualify the proc names to do its job; it seems completely unreasonable that it doesn't pass that information along to the callback. Will Duquette | |||
User Comments: |
kennykb added on 2003-02-04 03:26:11:
Logged In: YES user_id=99768 After talking things over with Jeff, Don, and Donal, the consensus was that the risk of breaking anything dependent on the existing behavior is less than that of leaving the bug unfixed. So I committed the changes. kennykb added on 2003-02-02 09:36:35: File Added - 41281: 651271.patch Logged In: YES user_id=99768 I *do* wish we'd found this in beta. I personally think that this is a small (and beneficial) enough change that we can put it in a patch release, but I want to talk this over with a couple of other TCT members before I commit. In the meantime, the attached patch fixes the problem, and updates the test suite to (a) conform with the new results, and (b) test for your problem case. Thanks for pointing this one out. |
Attachments:
- 651271.patch [download] added by kennykb on 2003-02-02 09:36:35. [details]