The eval_ and call_ families of functions provide a replacement
for the base R functions prefixed with sys. (which are all about
the context stack), as well as for parent.frame() (which is the
only base R function for querying the call stack). The context
stack includes all R-level evaluation contexts. It is linear in
terms of execution history but due to lazy evaluation it is
potentially nonlinear in terms of call history. The call stack
history, on the other hand, is homogenous.
global_frame() current_frame() ctxt_frame(n = 1) call_frame(n = 1, clean = TRUE) ctxt_depth() call_depth() ctxt_stack(n = NULL, trim = 0) call_stack(n = NULL, clean = TRUE)
| n | The number of frames to go back in the stack. |
|---|---|
| clean | Whether to post-process the call stack to clean
non-standard frames. If |
| trim | The number of layers of intervening frames to trim off
the stack. See |
ctxt_frame() and call_frame() return a frame object
containing the following fields: expr and env (call expression
and evaluation environment), pos and caller_pos (position of
current frame in the context stack and position of the caller), and
fun (function of the current frame). ctxt_stack() and
call_stack() return a list of all context or call frames on the
stack. Finally, ctxt_depth() and call_depth() report the
current context position or the number of calling frames on the
stack.
The base R functions take two sorts of arguments to indicate which
frame to query: which and n. The n argument is
straightforward: it's the number of frames to go down the stack,
with n = 1 referring to the current context. The which argument
is more complicated and changes meaning for values lower than 1.
For the sake of consistency, the rlang functions all take the
same kind of argument n. This argument has a single meaning (the
number of frames to go down the stack) and cannot be lower than 1.
Note finally that parent.frame(1) corresponds to
call_frame(2)$env, as n = 1 always refers to the current
frame. This makes the _frame() and _stack() functions
consistent: ctxt_frame(2) is the same as ctxt_stack()[[2]].
Also, ctxt_depth() returns one more frame than
base::sys.nframe() because it counts the global frame. That is
consistent with the _stack() functions which return the global
frame as well. This way, call_stack(call_depth()) is the same as
global_frame().
These functions are soft-deprecated and replaced by trace_back().
#> Warning: `ctxt_depth()` is deprecated as of rlang 0.3.0. #> This warning is displayed once per session.#> [1] 36# But they are not part of the call stack because arguments are # evaluated within the calling function (or the global environment # if called at top level) identity(identity(call_depth())) # returns 0#> Warning: `call_depth()` is deprecated as of rlang 0.3.0. #> This warning is displayed once per session.#> [1] 13# The context stacks includes all intervening execution frames. The # call stack doesn't: f <- function(x) identity(x) f(f(ctxt_stack()))#> [[1]] #> <frame 37> (36) #> expr: identity(x) #> env: [local 0x55b50b509628] #> #> [[2]] #> <frame 36> (33) #> expr: f(ctxt_stack()) #> env: [local 0x55b50b509510] #> #> [[3]] #> <frame 35> (34) #> expr: identity(x) #> env: [local 0x55b50b5093f8] #> #> [[4]] #> <frame 34> (33) #> expr: f(f(ctxt_stack())) #> env: [local 0x55b50b5092e0] #> #> [[5]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[6]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b50b509078] #> #> [[7]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b50b508e48] #> #> [[8]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b50b5087b8] #> #> [[9]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b50b508160] #> #> [[10]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b50b578578] #> #> [[11]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b50b5781c0] #> #> [[12]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b50b5777b0] #> #> [[13]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b50b577510] #> #> [[14]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b50b577388] #> #> [[15]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b50b577270] #> #> [[16]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b50bc50c88] #> #> [[17]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[18]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[19]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[20]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[21]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[22]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[23]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[24]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[25]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[26]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[27]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[28]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[29]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[30]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[31]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[32]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[33]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[34]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[35]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[36]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[37]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[38]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"f(f(call_stack()))#> Warning: `call_stack()` is deprecated as of rlang 0.3.0. #> This warning is displayed once per session.#> [[1]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[2]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b50368b738] #> #> [[3]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[4]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[5]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[6]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[7]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[8]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[9]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[10]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[11]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[12]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[13]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "call_stack" "stack"g <- function(cmd) cmd() f(g(ctxt_stack))#> [[1]] #> <frame 36> (33) #> expr: g(ctxt_stack) #> env: [local 0x55b5030d41d0] #> #> [[2]] #> <frame 35> (34) #> expr: identity(x) #> env: [local 0x55b5030d3f30] #> #> [[3]] #> <frame 34> (33) #> expr: f(g(ctxt_stack)) #> env: [local 0x55b5030d3de0] #> #> [[4]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[5]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b5030d34e8] #> #> [[6]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b5030d3248] #> #> [[7]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b5030d6748] #> #> [[8]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b5030d56a8] #> #> [[9]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b5030d8ef0] #> #> [[10]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b5030d8ac8] #> #> [[11]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b5030d81d0] #> #> [[12]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b5030d72f0] #> #> [[13]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b5030d7168] #> #> [[14]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b5030d7018] #> #> [[15]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b5030f62f8] #> #> [[16]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[17]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[18]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[19]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[20]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[21]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[22]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[23]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[24]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[25]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[26]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[27]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[28]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[29]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[30]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[31]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[32]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[33]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[34]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[35]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[36]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[37]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"f(g(call_stack))#> [[1]] #> <frame 36> (32) #> expr: g(call_stack) #> env: [local 0x55b5026345b8] #> #> [[2]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[3]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b502656558] #> #> [[4]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[5]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[6]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[7]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[8]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[9]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[10]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[11]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[12]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[13]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[14]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "call_stack" "stack"# The rlang _stack() functions return a list of frame # objects. Use purrr::transpose() or index a field with # purrr::map()'s to extract a particular field from a stack: # stack <- f(f(call_stack())) # purrr::map(stack, "env") # purrr::transpose(stack)$expr # current_frame() is an alias for ctxt_frame(1) fn <- function() list(current = current_frame(), first = ctxt_frame(1)) fn()#> Warning: `current_frame()` is deprecated as of rlang 0.3.0. #> This warning is displayed once per session.#> $current #> <frame 34> (33) #> expr: fn() #> env: [local 0x55b502285db0] #> #> $first #> <frame 34> (33) #> expr: fn() #> env: [local 0x55b502285db0] #># While current_frame() is the top of the stack, global_frame() is # the bottom: fn <- function() { n <- ctxt_depth() ctxt_frame(n) } identical(fn(), global_frame())#> [1] TRUE# ctxt_stack() returns a stack with all intervening frames. You can # trim layers of intervening frames with the trim argument: identity(identity(ctxt_stack()))#> [[1]] #> <frame 35> (33) #> expr: identity(ctxt_stack()) #> env: [local 0x55b501f7f6e0] #> #> [[2]] #> <frame 34> (33) #> expr: identity(identity(ctxt_stack())) #> env: [local 0x55b501f7f520] #> #> [[3]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[4]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b501f83040] #> #> [[5]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b501f82d68] #> #> [[6]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b501f82390] #> #> [[7]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b501f819b8] #> #> [[8]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b501f84da0] #> #> [[9]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b501f84710] #> #> [[10]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b501f83830] #> #> [[11]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b501f83590] #> #> [[12]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b501f83408] #> #> [[13]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b501f87008] #> #> [[14]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b501fa3280] #> #> [[15]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[16]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[17]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[18]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[19]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[20]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[21]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[22]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[23]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[24]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[25]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[26]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[27]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[28]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[29]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[30]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[31]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[32]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[33]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[34]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[35]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[36]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"#> [[1]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[2]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b500cc3880] #> #> [[3]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b500cc3650] #> #> [[4]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b500cc6450] #> #> [[5]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b500cc5928] #> #> [[6]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b500cc5490] #> #> [[7]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b500cc4e38] #> #> [[8]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b500cc75e0] #> #> [[9]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b500cc6ff8] #> #> [[10]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b500cc6d58] #> #> [[11]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b500cc6ab8] #> #> [[12]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b500cea070] #> #> [[13]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[14]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[15]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[16]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[17]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[18]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[19]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[20]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[21]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[22]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[23]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[24]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[25]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[26]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[27]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[28]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[29]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[30]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[31]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[32]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[33]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[34]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"# ctxt_stack() is called within fn() with intervening frames: fn <- function(trim) identity(identity(ctxt_stack(trim = trim))) fn(0)#> [[1]] #> <frame 36> (34) #> expr: identity(ctxt_stack(trim = trim)) #> env: [local 0x55b5002bfce8] #> #> [[2]] #> <frame 35> (34) #> expr: identity(identity(ctxt_stack(trim = trim))) #> env: [local 0x55b5002bfbd0] #> #> [[3]] #> <frame 34> (33) #> expr: fn(0) #> env: [local 0x55b5002bfab8] #> #> [[4]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[5]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b5002bf8c0] #> #> [[6]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b5002bf498] #> #> [[7]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b5002bedd0] #> #> [[8]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b5002c25a8] #> #> [[9]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b5002c2228] #> #> [[10]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b5002c1d20] #> #> [[11]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b5002c0d28] #> #> [[12]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b5002c0ac0] #> #> [[13]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b5002c0900] #> #> [[14]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b5002c0820] #> #> [[15]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b5002f74e0] #> #> [[16]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[17]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[18]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[19]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[20]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[21]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[22]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[23]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[24]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[25]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[26]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[27]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[28]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[29]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[30]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[31]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[32]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[33]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[34]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[35]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[36]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[37]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"# We can trim the first layer of those: fn(1)#> [[1]] #> <frame 34> (33) #> expr: fn(1) #> env: [local 0x55b506240c98] #> #> [[2]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[3]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b506240ad8] #> #> [[4]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b506240838] #> #> [[5]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b506240218] #> #> [[6]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b50623fca0] #> #> [[7]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b50623f958] #> #> [[8]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b50623f610] #> #> [[9]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b50623ef10] #> #> [[10]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b506242b10] #> #> [[11]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b506242988] #> #> [[12]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b5062428a8] #> #> [[13]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b5062521e0] #> #> [[14]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[15]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[16]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[17]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[18]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[19]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[20]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[21]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[22]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[23]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[24]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[25]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[26]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[27]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[28]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[29]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[30]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[31]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[32]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[33]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[34]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[35]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"# The outside intervening frames (at the fn() call site) are still # returned, but can be trimmed as well: identity(identity(fn(1)))#> [[1]] #> <frame 36> (33) #> expr: fn(1) #> env: [local 0x55b50c299430] #> #> [[2]] #> <frame 35> (33) #> expr: identity(fn(1)) #> env: [local 0x55b50c299318] #> #> [[3]] #> <frame 34> (33) #> expr: identity(identity(fn(1))) #> env: [local 0x55b50c299200] #> #> [[4]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[5]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b50c299040] #> #> [[6]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b50c298e10] #> #> [[7]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b50c298860] #> #> [[8]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b50c2982e8] #> #> [[9]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b50c297fa0] #> #> [[10]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b508dbcfd8] #> #> [[11]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b508dbc910] #> #> [[12]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b508dbc6e0] #> #> [[13]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b508dbc558] #> #> [[14]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b508dbc478] #> #> [[15]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b508dcbe90] #> #> [[16]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[17]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[18]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[19]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[20]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[21]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[22]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[23]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[24]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[25]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[26]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[27]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[28]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[29]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[30]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[31]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[32]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[33]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[34]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[35]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[36]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[37]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"#> [[1]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[2]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b50c9bfcb0] #> #> [[3]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b50c9bfa80] #> #> [[4]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b50c9bf4d0] #> #> [[5]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b50c9c2d88] #> #> [[6]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b50c9c2a40] #> #> [[7]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b50c9c26f8] #> #> [[8]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b50c9c2030] #> #> [[9]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b50c9c1e00] #> #> [[10]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b50c9c1c78] #> #> [[11]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b50c9c1b98] #> #> [[12]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b505516150] #> #> [[13]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[14]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[15]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[16]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[17]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[18]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[19]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[20]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[21]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[22]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[23]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[24]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[25]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[26]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[27]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[28]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[29]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[30]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[31]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[32]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[33]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[34]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"#> [[1]] #> <frame 34> (33) #> expr: g(2) #> env: [local 0x55b509df1828] #> #> [[2]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[3]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509df5498] #> #> [[4]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b509df5268] #> #> [[5]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b509df4cb8] #> #> [[6]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b509df4740] #> #> [[7]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b509df43f8] #> #> [[8]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b509df40b0] #> #> [[9]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b509df39e8] #> #> [[10]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b509df37b8] #> #> [[11]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b509df3630] #> #> [[12]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b509df7380] #> #> [[13]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b509e02ef8] #> #> [[14]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[15]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[16]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[17]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[18]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[19]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[20]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[21]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[22]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[23]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[24]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[25]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[26]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[27]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[28]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[29]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[30]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[31]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[32]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[33]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[34]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[35]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"g(3)#> [[1]] #> <frame 33> (32) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b509bc69d0] #> #> [[2]] #> <frame 32> (22) #> expr: eval(expr, envir, enclos) #> env: [local 0x55b504c21280] #> #> [[3]] #> <frame 31> (22) #> expr: withVisible(eval(expr, envir, enclos)) #> env: [local 0x55b504c21050] #> #> [[4]] #> <frame 30> (22) #> expr: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler, <...> #> env: [local 0x55b504c20aa0] #> #> [[5]] #> <frame 29> (28) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [local 0x55b504c20528] #> #> [[6]] #> <frame 28> (27) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [local 0x55b504c201e0] #> #> [[7]] #> <frame 27> (26) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [local 0x55b504c1fe98] #> #> [[8]] #> <frame 26> (25) #> expr: tryCatch(expr, error = function(e) { <...> #> env: [local 0x55b504c23600] #> #> [[9]] #> <frame 25> (24) #> expr: try(f, silent = TRUE) #> env: [local 0x55b504c233d0] #> #> [[10]] #> <frame 24> (22) #> expr: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir, <...> #> env: [local 0x55b504c23248] #> #> [[11]] #> <frame 23> (22) #> expr: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr, <...> #> env: [local 0x55b504c23168] #> #> [[12]] #> <frame 22> (21) #> expr: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, <...> #> env: [frame 0x55b50658ed48] #> #> [[13]] #> <frame 21> (20) #> expr: evaluate::evaluate(x, child_env(env), new_device = TRUE) #> env: [frame 0x55b50cb7a178] #> #> [[14]] #> <frame 20> (19) #> expr: highlight_examples(code, topic, env = env) #> env: [frame 0x55b50bc39e20] #> #> [[15]] #> <frame 19> (18) #> expr: run_examples(tags$tag_examples[[1]], env = new.env(parent = globalenv()), <...> #> env: [frame 0x55b50e765490] #> #> [[16]] #> <frame 18> (17) #> expr: data_reference_topic(topic, pkg, examples = examples, run_dont_run = run_dont_run) #> env: [frame 0x55b50c906290] #> #> [[17]] #> <frame 17> (16) #> expr: .f(.x[[i]], ...) #> env: [frame 0x55b50bce13e0] #> #> [[18]] #> <frame 16> (15) #> expr: purrr::map(topics, build_reference_topic, pkg = pkg, lazy = lazy, <...> #> env: [frame 0x55b50043f718] #> #> [[19]] #> <frame 15> (14) #> expr: build_reference(pkg, lazy = lazy, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b501caf378] #> #> [[20]] #> <frame 14> (13) #> expr: build_site_local(pkg = pkg, examples = examples, run_dont_run = run_dont_run, <...> #> env: [frame 0x55b4feecce58] #> #> [[21]] #> <frame 13> (12) #> expr: pkgdown::build_site(...) #> env: [frame 0x55b4ff1089b0] #> #> [[22]] #> <frame 12> (0) #> expr: (function (..., crayon_enabled, crayon_colors, pkgdown_internet) <...> #> env: [frame 0x55b4ffc68298] #> #> [[23]] #> <frame 11> (0) #> expr: (function (what, args, quote = FALSE, envir = parent.frame()) <...> #> env: [frame 0x55b4ffc66bd8] #> #> [[24]] #> <frame 10> (0) #> expr: do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc64650] #> #> [[25]] #> <frame 9> (0) #> expr: saveRDS(do.call(do.call, c(readRDS("/tmp/Rtmp7yGmwI/callr-fun-7bcd6bbce04b"), <...> #> env: [frame 0x55b4ffc60ba0] #> #> [[26]] #> <frame 8> (0) #> expr: withCallingHandlers({ <...> #> env: [frame 0x55b4ffc613f0] #> #> [[27]] #> <frame 7> (6) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc61a80] #> #> [[28]] #> <frame 6> (5) #> expr: tryCatchOne(expr, names, parentenv, handlers[[1L]]) #> env: [frame 0x55b4ffc61dc8] #> #> [[29]] #> <frame 5> (2) #> expr: tryCatchList(expr, names[-nh], parentenv, handlers[-nh]) #> env: [frame 0x55b4ffc62180] #> #> [[30]] #> <frame 4> (3) #> expr: doTryCatch(return(expr), name, parentenv, handler) #> env: [frame 0x55b4ffc62730] #> #> [[31]] #> <frame 3> (2) #> expr: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), <...> #> env: [frame 0x55b4ffc5cd28] #> #> [[32]] #> <frame 2> (1) #> expr: tryCatchList(expr, classes, parentenv, handlers) #> env: [frame 0x55b4ffc5d070] #> #> [[33]] #> <frame 1> (0) #> expr: tryCatch(withCallingHandlers({ <...> #> env: [frame 0x55b4ffc5d7a8] #> #> [[34]] #> <frame 0> [global] #> expr: NULL #> env: [global] #> #> attr(,"class") #> [1] "ctxt_stack" "stack"