Method.roots no longer contains callees' MethodInstance in 1.12.0-beta versions
              
              #58693
            
            
                  
                    
                      kylincaster
                    
                  
                
                  started this conversation in
                General
              
            Replies: 1 comment 2 replies
-
| Accessing the  | 
Beta Was this translation helpful? Give feedback.
                  
                    2 replies
                  
                
            
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
        
    
Uh oh!
There was an error while loading. Please reload this page.
-
Hi, and thank you for your amazing work on Julia!
I'm currently developing a static compilation tool called
StaticLLVM, which aims to compile Julia code ahead-of-time. A key part of this is statically analyzing the callees of each method.Previously, this was possible via the
rootsfield of aCore.Methodobject, which stored a list of objects, including theMethodInstancecorresponding to all callees.Here's a minimal example that used to work:
In earlier versions (e.g., 1.11.x), the above code would output something like:
Thus, it allowed us to obtain the callee
MethodInstanceforadd, enabling us to build the call graph starting from a top-level function (likemain).Thus, the callee of
addis obtained, which allowing us to build the call graph from some top function (main)However, in 1.12.0-beta4, the
mt.rootsno longer contains these calleesMethodInstance.My questions are:
MethodInstanceorCore.Method?rootsfield (even as an internal API) or expose a similar mechanism?This functionality is crucial for static compilation analysis, and I'd love to align with the direction Julia is taking. Any advice or alternatives would be greatly appreciated.
Thanks again for your time and for all the work on Julia!
Beta Was this translation helpful? Give feedback.
All reactions