Posted to tcl by dgp at Thu Aug 08 14:45:03 GMT 2013view pretty

% proc report args {
    set frame [info frame]
    set i 1
    while {$i <= $frame} {
        puts "FRAME $i: [info frame $i]"
        incr i
    }
}
% proc demo {} {uplevel 1 report}
% demo
FRAME 1: type eval line 1 cmd demo level 1
FRAME 2: type proc line 1 cmd {uplevel 1 report} proc ::demo
FRAME 3: type eval line 1 cmd report proc ::demo
FRAME 4: type proc line 5 cmd {info frame $i} proc ::report level 0
% namespace unknown report
report
% nosuch
FRAME 1: type eval line 1 cmd nosuch level 1
FRAME 2: type proc line 5 cmd {info frame $i} proc ::report level 0

The history of CmdFrames is different.  Is it clear why?
Is this difference documented?  Must it remain unchanged?