Skip to content

Commit

Permalink
Try to address the rm() issue for CRAN
Browse files Browse the repository at this point in the history
  • Loading branch information
wlandau-lilly committed Mar 24, 2023
1 parent aa2fee4 commit 4b9948e
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 16 deletions.
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: drake
Title: A Pipeline Toolkit for Reproducible Computation at Scale
Version: 7.13.4
Version: 7.13.5
Authors@R: c(
person(
given = c("William", "Michael"),
Expand Down Expand Up @@ -153,4 +153,4 @@ Suggests:
Encoding: UTF-8
Language: en-US
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.1
RoxygenNote: 7.2.3
4 changes: 4 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Version 7.13.5

* Always pass a character vector to `rm()` and `remove()`.

# Version 7.13.4

* Fix HTML documentation files.
Expand Down
2 changes: 1 addition & 1 deletion R/cache.R
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ load_targets_impl.drake_dynamic <- function( # nolint
subtarget_list
) {
value <- get_subtargets(hashes, target, cache, subtargets, subtarget_list)
rm(list = target, envir = envir, inherits = FALSE)
rm(list = as.character(target), envir = envir, inherits = FALSE)
assign(target, value, envir = envir, inherits = FALSE)
}

Expand Down
2 changes: 1 addition & 1 deletion R/create_drake_spec.R
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ cds_unload_conflicts <- function(imports, targets, envir, logger) {
if (length(common)) {
logger$term("unloading", length(common), "targets from environment")
}
remove(list = common, envir = envir)
remove(list = as.character(common), envir = envir)
}

cds_analyze_imports <- function(args, imports) {
Expand Down
6 changes: 3 additions & 3 deletions R/deprecated.R
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,14 @@ configure_cache <- function(
}
short_exists <- cache$exists(key = "short_hash_algo", namespace = "config")
long_exists <- cache$exists(key = "long_hash_algo", namespace = "config")
if (overwrite_hash_algos | !short_exists) {
if (overwrite_hash_algos || !short_exists) {
cache$set(
key = "short_hash_algo",
value = short_hash_algo,
namespace = "config"
)
}
if (overwrite_hash_algos | !long_exists) {
if (overwrite_hash_algos || !long_exists) {
cache$set(
key = "long_hash_algo",
value = long_hash_algo,
Expand Down Expand Up @@ -564,7 +564,7 @@ load_main_example <- function(
local = TRUE
)$value
for (file in c("report.Rmd", "raw_data.xlsx")) {
if (file.exists(file) & overwrite) {
if (file.exists(file) && overwrite) {
warn0("Overwriting file ", file)
}
file.copy(
Expand Down
4 changes: 2 additions & 2 deletions R/hash_tables.R
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ ht_exists <- function(ht, x) {
}

ht_del <- function(ht, x) {
remove(list = x, envir = ht, inherits = FALSE)
remove(list = as.character(x), envir = ht, inherits = FALSE)
}

ht_list <- function(ht) {
names(ht)
}

ht_clear <- function(ht) {
rm(list = names(ht), envir = ht)
rm(list = as.character(names(ht)), envir = ht)
}

ht_clone <- function(ht) {
Expand Down
5 changes: 4 additions & 1 deletion R/make.R
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,10 @@ clear_make_memory <- function(config) {
"meta_old"
)
for (key in envirs) {
remove(list = names(config[[key]]), envir = config[[key]])
remove(
list = as.character(names(config[[key]])),
envir = config[[key]]
)
}
config$cache$flush_cache()
if (config$settings$garbage_collection) {
Expand Down
29 changes: 23 additions & 6 deletions R/manage_memory.R
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,11 @@ discard_targets <- function(discard_these, target, config) {
return()
}
config$logger$disk("unload", discard_these, target = target)
rm(list = discard_these, envir = config$envir_targets, inherits = FALSE)
rm(
list = as.character(discard_these),
envir = config$envir_targets,
inherits = FALSE
)
config$envir_loaded$targets <- setdiff(
config$envir_loaded$targets,
discard_these
Expand All @@ -108,22 +112,35 @@ discard_dynamic <- function(discard_these, config) {
inherits = FALSE
)
whole_dynamic <- discard_these[index]
rm(list = whole_dynamic, envir = config$envir_dynamic, inherits = FALSE)
rm(
list = as.character(whole_dynamic),
envir = config$envir_dynamic,
inherits = FALSE
)
config$envir_loaded$dynamic <- setdiff(
config$envir_loaded$dynamic,
whole_dynamic
)
}

clear_envir_subtargets <- function(target, config) {
rm(list = config$envir_loaded$subtargets, envir = config$envir_subtargets)
rm(
list = as.character(config$envir_loaded$subtargets),
envir = config$envir_subtargets
)
config$envir_loaded$subtargets <- character(0)
}

clear_envir_targets <- function(target, config) {
config$logger$disk("clear target envir", target = target)
rm(list = config$envir_loaded$targets, envir = config$envir_targets)
rm(list = config$envir_loaded$dynamic, envir = config$envir_dynamic)
rm(
list = as.character(config$envir_loaded$targets),
envir = config$envir_targets
)
rm(
list = as.character(config$envir_loaded$dynamic),
envir = config$envir_dynamic
)
config$envir_loaded$targets <- character(0)
config$envir_loaded$dynamic <- character(0)
}
Expand Down Expand Up @@ -209,7 +226,7 @@ load_target_impl.bind <- function(target, cache, namespace, envir, verbose) {
# Allow active bindings to overwrite existing variables.
if (exists(x = target, envir = envir, inherits = FALSE)) {
cli_msg("Replacing", target, "with an active binding.")
remove(list = target, envir = envir)
remove(list = as.character(target), envir = envir)
}
bindr::populate_env(
env = envir,
Expand Down

0 comments on commit 4b9948e

Please sign in to comment.