Here's an idea: we go all the way to logical predicates on stack frames.
Location specifiers:
in-module <module> True if specified module is topmost on the stack (excepting FloatTracker frames of course)
dyn-in-module <module> True if the specified module is anywhere on the stack (dynamic extent of module)
in-file <file> (Same)
dyn-in-file <file> (Same)
in-func <funcname + filename> (Same)
dyn-in-func <funcname + filename> (Same)
Then we can combine them with and, or, and not. Top level might be an implicit and or or, depending on if we want the semantics to be inclusive/exclusive by default. (i.e. If we name and use the parameter as inject= or no_inject=.)
Here's an idea: we go all the way to logical predicates on stack frames.
Location specifiers:
in-module <module>
True if specified module is topmost on the stack (excepting FloatTracker frames of course)dyn-in-module <module>
True if the specified module is anywhere on the stack (dynamic extent of module)in-file <file>
(Same)dyn-in-file <file>
(Same)in-func <funcname + filename>
(Same)dyn-in-func <funcname + filename>
(Same)Then we can combine them with
and
,or
, andnot
. Top level might be an implicitand
oror
, depending on if we want the semantics to be inclusive/exclusive by default. (i.e. If we name and use the parameter asinject=
orno_inject=
.)Originally posted by @ashton314 in https://github.com/utahplt/FloatTracker.jl/issues/13#issuecomment-1535047681