From: SourceForge.net <no...@so...> - 2013-04-09 18:05:53
|
Bugs item #3610400, was opened at 2013-04-09 11:05 Message generated for change (Tracker Item Submitted) made by dgp You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3610400&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 60. NRE and coroutines Group: current: 8.6.0 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Don Porter (dgp) Assigned to: miguel sofer (msofer) Summary: tailcall clashes with execution traces Initial Comment: working on 3610393, I constructed this script to see how ensemble redirections play with execution traces, and found an issue with [tailcall]: namespace eval foo { namespace export * proc target {} {puts Hit!} proc bar {} {tailcall target} namespace ensemble create } proc harness {} { foo target foo bar } proc handle {cmd args} { puts "Command [lindex $cmd 0] resolves to:" puts "\t'[uplevel 1 [list ::namespace which -command [lindex $cmd 0]]]'" puts "\t\tResolved at level [uplevel 1 {info level}]" } trace add execution harness enterstep handle harness Output: Command foo resolves to: '::foo' Resolved at level 1 Command ::foo::target resolves to: '::foo::target' Resolved at level 1 Command puts resolves to: '::puts' Resolved at level 2 Hit! Command foo resolves to: '::foo' Resolved at level 1 Command ::foo::bar resolves to: '::foo::bar' Resolved at level 1 Command tailcall resolves to: '::tailcall' Resolved at level 2 Command target resolves to: '' Resolved at level 1 Command puts resolves to: '::puts' Resolved at level 2 Hit! The commonality with oo forwards is that tailcall also causes command name resolution to be done early, in a context that may/does not appear in a stack frame at the time the command execution (and its execution traces) fire. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3610400&group_id=10894 |