Skip to content

Commit 6233cdc

Browse files
More debug improvements; hook onto the debug stack in the future package
1 parent 90ea1aa commit 6233cdc

File tree

3 files changed

+11
-29
lines changed

3 files changed

+11
-29
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: future.mirai
2-
Version: 0.2.2-9223
2+
Version: 0.2.2-9224
33
Depends:
44
future (>= 1.40.0)
55
Imports:

R/001.import_future_functions.R

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ getFutureData <- NULL
1010
getFutureBackendConfigs <- NULL
1111
cancel <- NULL
1212
sQuoteLabel <- NULL
13+
.debug <- NULL
1314

1415
## Import private functions from 'future'
1516
import_future_functions <- function() {
@@ -45,4 +46,6 @@ import_future_functions <- function() {
4546
sQuote(label)
4647
}
4748
})
49+
50+
.debug <<- import_future(".debug", mode = "environment", default = new.env(parent = emptyenv()))
4851
}

R/utils-debug.R

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,47 +4,28 @@ now <- function(x = Sys.time(), format = "[%H:%M:%OS3] ") {
44
}
55

66
debug_indent <- local({
7-
prefix <- ""
8-
depth <- 0L
97
symbols <- rep(c("|", ":", ".", "'", ",", ";", "`"), times = 10L)
10-
11-
function(delta = 0L) {
12-
if (delta == 0) return(prefix)
13-
if (delta > 0) {
14-
depth <<- depth + 1L
15-
} else if (delta < 0) {
16-
depth <<- depth - 1L
17-
if (depth < 0L) {
18-
calls <- paste(vapply(sys.calls(), FUN = deparse, FUN.VALUE = NA_character_), collapse = " -> ")
19-
warning(sprintf("[INTERNAL WARNING]: There appears to be one mdebug_pop() too many: %s", calls), call. = TRUE, immediate. = TRUE)
20-
depth <- 0L
21-
}
22-
}
23-
prefix <<- if (depth == 0) {
24-
""
25-
} else {
26-
27-
indent <- getOption("future.debug.indent", " ")
28-
paste(paste(symbols[seq_len(depth)], indent, sep = ""), collapse = "")
29-
}
8+
function() {
9+
depth <- length(.debug[["stack"]])
10+
if (depth == 0) return("")
11+
indent <- getOption("future.debug.indent", " ")
12+
paste(paste(symbols[seq_len(depth)], indent, sep = ""), collapse = "")
3013
}
3114
})
3215

33-
.debug <- new.env(parent = emptyenv())
34-
.debug$stack <- list()
16+
if (!exists(".debug", inherits = FALSE)) .debug <- new.env(parent = emptyenv())
17+
if (!"stack" %in% names(".debug")) .debug$stack <- list()
3518

3619
mdebug_push <- function(..., debug = isTRUE(getOption("future.debug"))) {
3720
if (!debug) return()
3821
msg <- mdebug(..., debug = debug)
39-
debug_indent(+1)
4022
.debug$stack <- c(.debug$stack, msg)
4123
invisible(msg)
4224
}
4325

4426
mdebugf_push <- function(..., debug = isTRUE(getOption("future.debug"))) {
4527
if (!debug) return()
4628
msg <- mdebugf(..., debug = debug)
47-
debug_indent(+1)
4829
.debug$stack <- c(.debug$stack, msg)
4930
invisible(msg)
5031
}
@@ -54,7 +35,6 @@ mdebug_pop <- function(..., debug = isTRUE(getOption("future.debug"))) {
5435
n <- length(.debug$stack)
5536
msg <- .debug$stack[n]
5637
.debug$stack <- .debug$stack[-n]
57-
debug_indent(-1)
5838
mdebug(sprintf("%s done", msg), debug = debug)
5939
}
6040

@@ -63,7 +43,6 @@ mdebugf_pop <- function(..., debug = isTRUE(getOption("future.debug"))) {
6343
n <- length(.debug$stack)
6444
msg <- .debug$stack[n]
6545
.debug$stack <- .debug$stack[-n]
66-
debug_indent(-1)
6746
mdebug(sprintf("%s done", msg), debug = debug)
6847
}
6948

0 commit comments

Comments
 (0)