Hello, 

I'd like to study how the implementation is for a particular function in 
Base.  Is there an easy way of following the sequence of functions that are 
dispatched when I call the function with a particular type?

For instance, I want to see how `display(::Array{T,N})` is implemented for 
`N>2`, because I want to implement similar code for 
`display(::NamedArray{T,N})`.  

So I find myself going down the chain of calls

@less display(rand(2,3,4))
@less display(Base.Multimedia.displays[1], rand(2,3,4))
@less display(Base.Multimedia.displays[1], MIME"text/plain"(), rand(2,3,4))
@less writemime(Base.Multimedia.displays[1].io, MIME"text/plain"(), rand(2,3
,4))

etc.   Each time I peek into a function dispatch, there is another single 
line function, and I have to look one line deeper, change the types, etc, 
until I hope to get to the body where the code is that actually prints the 
3D array to the display.  Is there a more automated way of unrolling what 
is going on when you start form a single statement like `display(rand(2,3,4
))`?


Thanks, 


---david

Reply via email to