I for one understood that B.jl and A.jl aren’t packages that are importing each other, but your post is legitimately confusing because it keeps mentioning packages and how you’re using
them. You don’t describe the change to A.jl or what automatic changes you’d expect in B.jl, and it’s not apparent where compilation and benchmarks factor into this. Some phrasings are unintelligible: we include
a .jl file, not a function; we can’t call .jl files; methods are compiled and packages are precompiled, .jl files are not.
If you don’t describe your problem as clearly as sijo’s step-by-step example does, then nobody can attempt to explain it. Here are some guidelines to help your readers follow along: