julia
79dee239 - Refactor the way that Base.include() stack frames are hidden

Commit
32 days ago
Refactor the way that Base.include() stack frames are hidden The matching in _backtrace_simplify_include_frames felt unweildy when there's several different entry points into the internal frames - include(), include_string(), eval() and exits from the internal frames - fl_parse(), simple_eval, and simple_eval internal helper functions. This change attacks that problem by repurposing debug info for macro expansions to insert synthetic stack frames with known "file names" as stack boundaries between user frames and internal compiler frames. The boundaries are added to the debug info with macros @_hidestack, @_hidestack_begin and @_hidestack_end. As part of this, move Core.EvalInto into Base alongside Base.IncludeInto to make this slightly more natural to mark with @_hidestack. This movement doesn't seem essential but both these helper structs seem quite similar and I couldn't see a reason why EvalInto needs to be in Core more than IncludeInto.
Author
Committer
Parents
Loading