R Under development (unstable) (2024-10-28 r87274 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > source("incl/start.R") > > message("handlers() ...") handlers() ... > > hs <- handlers() > print(hs) [[1]] function (char = "=", style = 3L, file = stderr(), intrusiveness = getOption("progressr.intrusiveness.terminal", 1), target = "terminal", ...) { backend_args <- handler_backend_args(char = char, style = style, ...) reporter <- local({ pb <- NULL make_pb <- function(max, ...) { if (!is.null(pb)) return(pb) args <- c(list(max = max, ...), backend_args) pb <<- do.call(txtProgressBar2, args = args) pb } list(reset = function(...) { pb <<- NULL }, hide = function(...) { if (is.null(pb)) return() eraseTxtProgressBar(pb) }, unhide = function(...) { if (is.null(pb)) return() redrawTxtProgressBar(pb) }, interrupt = function(config, state, progression, ...) { if (is.null(pb)) return() eraseTxtProgressBar(pb) redrawTxtProgressBar(pb) msg <- conditionMessage(progression) msg <- paste(c("", msg, ""), collapse = "\n") cat(msg, file = file) }, initiate = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() stop_if_not(is.null(pb)) make_pb(max = config$max_steps, file = file) }, update = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() make_pb(max = config$max_steps, file = file) if (inherits(progression, "sticky")) { eraseTxtProgressBar(pb) message(paste0(state$message, "")) redrawTxtProgressBar(pb) } if (progression$amount == 0) return() setTxtProgressBar(pb, value = state$step) }, finish = function(config, state, progression, ...) { if (is.null(pb)) return() if (!state$enabled) return() if (config$clear) { eraseTxtProgressBar(pb) pb_env <- environment(pb$getVal) file <- pb_env$file pb_env$file <- tempfile() on.exit({ if (file_test("-f", pb_env$file)) file.remove(pb_env$file) pb_env$file <- file }) } else { setTxtProgressBar(pb, value = config$max_steps) } close(pb) pb <<- NULL }) }) make_progression_handler("txtprogressbar", reporter, intrusiveness = intrusiveness, target = target, ...) } > > for (kk in seq_along(hs)) { + h <- hs[[kk]] + print(h) + handler <- h() + print(handler) + } function (char = "=", style = 3L, file = stderr(), intrusiveness = getOption("progressr.intrusiveness.terminal", 1), target = "terminal", ...) { backend_args <- handler_backend_args(char = char, style = style, ...) reporter <- local({ pb <- NULL make_pb <- function(max, ...) { if (!is.null(pb)) return(pb) args <- c(list(max = max, ...), backend_args) pb <<- do.call(txtProgressBar2, args = args) pb } list(reset = function(...) { pb <<- NULL }, hide = function(...) { if (is.null(pb)) return() eraseTxtProgressBar(pb) }, unhide = function(...) { if (is.null(pb)) return() redrawTxtProgressBar(pb) }, interrupt = function(config, state, progression, ...) { if (is.null(pb)) return() eraseTxtProgressBar(pb) redrawTxtProgressBar(pb) msg <- conditionMessage(progression) msg <- paste(c("", msg, ""), collapse = "\n") cat(msg, file = file) }, initiate = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() stop_if_not(is.null(pb)) make_pb(max = config$max_steps, file = file) }, update = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() make_pb(max = config$max_steps, file = file) if (inherits(progression, "sticky")) { eraseTxtProgressBar(pb) message(paste0(state$message, "")) redrawTxtProgressBar(pb) } if (progression$amount == 0) return() setTxtProgressBar(pb, value = state$step) }, finish = function(config, state, progression, ...) { if (is.null(pb)) return() if (!state$enabled) return() if (config$clear) { eraseTxtProgressBar(pb) pb_env <- environment(pb$getVal) file <- pb_env$file pb_env$file <- tempfile() on.exit({ if (file_test("-f", pb_env$file)) file.remove(pb_env$file) pb_env$file <- file }) } else { setTxtProgressBar(pb, value = config$max_steps) } close(pb) pb <<- NULL }) }) make_progression_handler("txtprogressbar", reporter, intrusiveness = intrusiveness, target = target, ...) } [[1]] print(handler) [[2]] print.progression_handler(handler) Progression calling handler of class 'txtprogressbar_progression_handler': * configuration: - name: 'txtprogressbar' - max_steps: - enable: TRUE - enable_after: 0 seconds - times: Inf - interval: 0.1 seconds - intrusiveness: 1 - auto_finish: TRUE - clear: TRUE - target: 'terminal' - milestones: - owner: * state: - enabled: FALSE - finished: FALSE - step: - message: - prev_milestone: - timestamps: > > > hs <- handlers("txtprogressbar") > print(hs) list() > > for (kk in seq_along(hs)) { + h <- hs[[kk]] + print(h) + handler <- h() + print(handler) + } > > hs <- handlers("handler_txtprogressbar") > print(hs) $txtprogressbar function (char = "=", style = 3L, file = stderr(), intrusiveness = getOption("progressr.intrusiveness.terminal", 1), target = "terminal", ...) { backend_args <- handler_backend_args(char = char, style = style, ...) reporter <- local({ pb <- NULL make_pb <- function(max, ...) { if (!is.null(pb)) return(pb) args <- c(list(max = max, ...), backend_args) pb <<- do.call(txtProgressBar2, args = args) pb } list(reset = function(...) { pb <<- NULL }, hide = function(...) { if (is.null(pb)) return() eraseTxtProgressBar(pb) }, unhide = function(...) { if (is.null(pb)) return() redrawTxtProgressBar(pb) }, interrupt = function(config, state, progression, ...) { if (is.null(pb)) return() eraseTxtProgressBar(pb) redrawTxtProgressBar(pb) msg <- conditionMessage(progression) msg <- paste(c("", msg, ""), collapse = "\n") cat(msg, file = file) }, initiate = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() stop_if_not(is.null(pb)) make_pb(max = config$max_steps, file = file) }, update = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() make_pb(max = config$max_steps, file = file) if (inherits(progression, "sticky")) { eraseTxtProgressBar(pb) message(paste0(state$message, "")) redrawTxtProgressBar(pb) } if (progression$amount == 0) return() setTxtProgressBar(pb, value = state$step) }, finish = function(config, state, progression, ...) { if (is.null(pb)) return() if (!state$enabled) return() if (config$clear) { eraseTxtProgressBar(pb) pb_env <- environment(pb$getVal) file <- pb_env$file pb_env$file <- tempfile() on.exit({ if (file_test("-f", pb_env$file)) file.remove(pb_env$file) pb_env$file <- file }) } else { setTxtProgressBar(pb, value = config$max_steps) } close(pb) pb <<- NULL }) }) make_progression_handler("txtprogressbar", reporter, intrusiveness = intrusiveness, target = target, ...) } > > message("handlers() - exceptions ...") handlers() - exceptions ... > > ## Will as a side-effect set an empty list of handlers() > res <- handlers("non-existing-handler", on_missing = "ignore") > res <- handlers() > stopifnot(is.list(res), length(res) == 0L) > > res <- tryCatch({ + handlers("non-existing-handler", on_missing = "warning") + }, warning = identity) > stopifnot(inherits(res, "warning")) > > res <- tryCatch({ + handlers("non-existing-handler", on_missing = "error") + }, error = identity) > stopifnot(inherits(res, "error")) > > > message("handlers() - exceptions ... DONE") handlers() - exceptions ... DONE > > message("handlers() ... DONE") handlers() ... DONE > > source("incl/end.R") Failed to undo environment variables: - Expected environment variables: [n=201] '!ExitCode', 'ALLUSERSPROFILE', 'APPDATA', 'BIBINPUTS', 'BINDIR', 'BSTINPUTS', 'COMMONPROGRAMFILES', 'COMPUTERNAME', 'COMSPEC', 'CURL_CA_BUNDLE', 'CYGWIN', 'CommonProgramFiles(x86)', 'CommonProgramW6432', 'DriverData', 'HOME', 'HOMEDRIVE', 'HOMEPATH', 'JAGS_ROOT', 'JAVA_HOME', 'LANGUAGE', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME', 'LOCALAPPDATA', 'LOGONSERVER', 'LS_HOME', 'LS_LICENSE_PATH', 'MAKE', 'MAKEFLAGS', 'MAKELEVEL', 'MFLAGS', 'MSMPI_BENCHMARKS', 'MSMPI_BIN', 'MSYS2_ENV_CONV_EXCL', 'NUMBER_OF_PROCESSORS', 'OCL', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', 'RTOOLS43_HOME', 'RTOOLS44_HOME', 'R_ARCH', 'R_BROWSER', 'R_BZIPCMD', 'R_CMD', 'R_COMPILED_BY', 'R_CRAN_WEB', 'R_CUSTOM_TOOLS_PATH', 'R_CUSTOM_TOOLS_SOFT', 'R_DOC_DIR', 'R_ENVIRON_USER', 'R_GSCMD', 'R_GZIPCMD', 'R_HOME', 'R_INCLUDE_DIR', 'R_INSTALL_TAR', 'R_LIBS', 'R_LIBS_SITE', 'R_LIBS_USER', 'R_MAX_NUM_DLLS', 'R_OSTYPE', 'R_PAPERSIZE', 'R_PAPERSIZE_USER', 'R_PARALLEL_PORT', 'R_RD4PDF', 'R_RTOOLS44_PATH', 'R_SCRIPT_LEGACY', 'R_SHARE_DIR', 'R_TESTS', 'R_UNZIPCMD', 'R_USER', 'R_VERSION', 'R_ZIPCMD', 'SED', 'SHLVL', 'SYSTEMDRIVE', 'SYSTEMROOT', 'TAR', 'TAR_OPTIONS', 'TEMP', 'TERM', 'TEXINPUTS', 'TMP', 'TMPDIR', 'USERDOMAIN', 'USERDOMAIN_ROAMINGPROFILE', 'USERNAME', 'USERPROFILE', 'WINDIR', '_', '_R_CHECK_AUTOCONF_', '_R_CHECK_BOGUS_RETURN_', '_R_CHECK_BROWSER_NONINTERACTIVE_', '_R_CHECK_BUILD_VIGNETTES_SEPARATELY_', '_R_CHECK_CODETOOLS_PROFILE_', '_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_', '_R_CHECK_CODE_ATTACH_', '_R_CHECK_CODE_CLASS_IS_STRING_', '_R_CHECK_CODE_DATA_INTO_GLOBALENV_', '_R_CHECK_CODE_USAGE_VIA_NAMESPACES_', '_R_CHECK_CODE_USAGE_WITHOUT_LOADING_', '_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_', '_R_CHECK_CODOC_VARIABLES_IN_USAGES_', '_R_CHECK_COMPACT_DATA2_', '_R_CHECK_COMPILATION_FLAGS_', '_R_CHECK_CONNECTIONS_LEFT_OPEN_', '_R_CHECK_CRAN_INCOMING_', '_R_CHECK_CRAN_INCOMING_CHECK_FILE_URIS_', '_R_CHECK_CRAN_INCOMING_CHECK_URLS_IN_PARALLEL_', '_R_CHECK_CRAN_INCOMING_NOTE_GNU_MAKE_', '_R_CHECK_CRAN_INCOMING_REMOTE_', '_R_CHECK_CRAN_INCOMING_USE_ASPELL_', '_R_CHECK_DATALIST_', '_R_CHECK_DEPRECATED_DEFUNCT_', '_R_CHECK_DOC_SIZES2_', '_R_CHECK_DOT_FIRSTLIB_', '_R_CHECK_DOT_INTERNAL_', '_R_CHECK_EXAMPLE_TIMING_THRESHOLD_', '_R_CHECK_EXECUTABLES_', '_R_CHECK_EXECUTABLES_EXCLUSIONS_', '_R_CHECK_FF_CALLS_', '_R_CHECK_FF_DUP_', '_R_CHECK_FORCE_SUGGESTS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_LEEWAY_', '_R_CHECK_HAVE_MYSQL_', '_R_CHECK_HAVE_ODBC_', '_R_CHECK_HAVE_PERL_', '_R_CHECK_HAVE_POSTGRES_', '_R_CHECK_INSTALL_DEPENDS_', '_R_CHECK_INTERNALS2_', '_R_CHECK_LENGTH_1_CONDITION_', '_R_CHECK_LICENSE_', '_R_CHECK_LIMIT_CORES_', '_R_CHECK_LOG_USE_INFO_', '_R_CHECK_MATRIX_DATA_', '_R_CHECK_MBCS_CONVERSION_FAILURE_', '_R_CHECK_NATIVE_ROUTINE_REGISTRATION_', '_R_CHECK_NEWS_IN_PLAIN_TEXT_', '_R_CHECK_NO_RECOMMENDED_', '_R_CHECK_NO_STOP_ON_TEST_ERROR_', '_R_CHECK_ORPHANED_', '_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_', '_R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_', '_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_', '_R_CHECK_PACKAGE_DATASETS_SUPPRESS_NOTES_', '_R_CHECK_PACKAGE_NAME_', '_R_CHECK_PKG_SIZES_', '_R_CHECK_PKG_SIZES_THRESHOLD_', '_R_CHECK_PRAGMAS_', '_R_CHECK_RD_EXAMPLES_T_AND_F_', '_R_CHECK_RD_LINE_WIDTHS_', '_R_CHECK_RD_MATH_RENDERING_', '_R_CHECK_RD_NOTE_LOST_BRACES_', '_R_CHECK_RD_VALIDATE_RD2HTML_', '_R_CHECK_REPLACING_IMPORTS_', '_R_CHECK_R_DEPENDS_', '_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_', '_R_CHECK_SCREEN_DEVICE_', '_R_CHECK_SERIALIZATION_', '_R_CHECK_SHLIB_OPENMP_FLAGS_', '_R_CHECK_SRC_MINUS_W_IMPLICIT_', '_R_CHECK_SUBDIRS_NOCASE_', '_R_CHECK_SUGGESTS_ONLY_', '_R_CHECK_SYSTEM_CLOCK_', '_R_CHECK_TESTS_NLINES_', '_R_CHECK_TEST_TIMING_', '_R_CHECK_TIMINGS_', '_R_CHECK_TOPLEVEL_FILES_', '_R_CHECK_UNDOC_USE_ALL_NAMES_', '_R_CHECK_UNSAFE_CALLS_', '_R_CHECK_URLS_SHOW_301_STATUS_', '_R_CHECK_VC_DIRS_', '_R_CHECK_VIGNETTES_NLINES_', '_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_', '_R_CHECK_VIGNETTE_TIMING_', '_R_CHECK_VIGNETTE_TITLES_', '_R_CHECK_WINDOWS_DEVICE_', '_R_CHECK_XREFS_NOTE_MISSING_PACKAGE_ANCHORS_', '_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_', '_R_CLASS_MATRIX_ARRAY_', '_R_DEPRECATED_IS_R_', '_R_S3_METHOD_LOOKUP_BASEENV_AFTER_GLOBALENV_', '_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_', '_R_USE_STRICT_R_HEADERS_', '__R_CHECK_DOC_FILES_NOTE_IF_ALL_SPECIAL__', 'maj.version', 'nextArg--timingsnextArg--install' - Environment variables still there: [n=0] - Environment variables missing: [n=1] 'MAKEFLAGS' Differences environment variable by environment variable: List of 3 $ name : chr "MAKEFLAGS" $ expected: 'Dlist' chr "" $ actual : 'Dlist' chr NA > > proc.time() user system elapsed 0.92 0.21 1.12