Last updated on 2026-02-15 13:53:03 CET.
| Package | ERROR | NOTE | OK |
|---|---|---|---|
| checkglobals | 14 | ||
| gslnls | 14 | ||
| pdSpecEst | 1 | 2 | 11 |
| rrapply | 14 |
Current CRAN status: OK: 14
Current CRAN status: OK: 14
Current CRAN status: ERROR: 1, NOTE: 2, OK: 11
Version: 1.2.6
Check: examples
Result: ERROR
Running examples in ‘pdSpecEst-Ex.R’ failed
The error most likely occurred in:
> ### Name: Expm
> ### Title: Riemannian HPD exponential map
> ### Aliases: Expm
>
> ### ** Examples
>
> ## Generate random Hermitian matrix
> H <- matrix(complex(real = rnorm(9), imaginary = rnorm(9)), nrow = 3)
> diag(H) <- rnorm(3)
> H[lower.tri(H)] <- t(Conj(H))[lower.tri(H)]
> ## Generate random HPD matrix
> p <- matrix(complex(real = rnorm(9), imaginary = rnorm(9)), nrow = 3)
> P <- t(Conj(p)) %*% p
> ## Compute exponential map
> Expm(P, H)
Error: sqrtmat_sympd(): transformation failed
Execution halted
Flavor: r-devel-macos-arm64
Version: 1.2.6
Check: tests
Result: ERROR
Running ‘testthat.R’ [0s/0s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(pdSpecEst)
>
> test_check("pdSpecEst")
*** caught segfault ***
address 0x0, cause 'invalid permissions'
Traceback:
1: Expm(diag(2, 2), H.coeff(v0/sqrt(2 * pi) * exp(-((t - 0.5)/0.3)^2/2), inverse = TRUE))
2: FUN(X[[i]], ...)
3: lapply(X = X, FUN = FUN, ...)
4: sapply(x, function(t) { Expm(diag(2, 2), H.coeff(v0/sqrt(2 * pi) * exp(-((t - 0.5)/0.3)^2/2), inverse = TRUE))}, simplify = "array")
5: rExamples1D(n, 2, "gaussian", return.ts = T, noise = "periodogram")
6: eval(code, test_env)
7: eval(code, test_env)
8: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt)
9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal)
13: doWithOneRestart(return(expr), restart)
14: withOneRestart(expr, restarts[[1L]])
15: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { })
16: test_code(code, parent.frame())
17: test_that("Correctly working 1D spectral estimation and clustering", { n <- 2^7 d <- 2 S <- 5 example <- rExamples1D(n, 2, "gaussian", return.ts = T, noise = "periodogram") expect_equal(dim(example$f), c(d, d, n)) expect_equal(dim(example$P), c(d, d, n)) expect_equal(dim(example$ts), c(2 * n, d)) ts.sim <- rARMA(n, d, array(0, c(d, d, 2)), array(0, c(d, d, 2)), diag(d)) expect_type(ts.sim$X, "double") expect_equal(dim(ts.sim$X), c(n, d)) pgram <- pdPgram(example$ts) expect_equal(dim(pgram$P), c(d, d, n)) expect_equal(length(pgram$freq), n) expect_equal(pgram$P, example$P) wt1 <- WavTransf1D(example$P, periodic = T) wt2 <- WavTransf1D(example$P, metric = "logEuclidean") expect_equal(length(unlist(wt1$D)), length(unlist(wt1$D.white))) expect_equal(length(unlist(wt2$D)), length(unlist(wt2$D.white))) expect_equal(InvWavTransf1D(wt1$D, wt1$M0, periodic = T), example$P) expect_equal(InvWavTransf1D(wt2$D, wt2$M0, metric = "logEuclidean"), example$P) wt1_den <- pdCART(wt1$D, wt1$D.white, order = 5, periodic = T) wt2_den <- pdCART(wt2$D, wt2$D.white, order = 5) expect_length(unlist(wt1_den$w), length(unlist(wt2_den$w))) expect_length(unlist(wt1_den$D_w), length(unlist(wt1$D))) expect_length(unlist(wt2_den$D_w), length(unlist(wt2$D))) f1 <- pdSpecEst1D(example$P) f2 <- pdSpecEst1D(example$P, metric = "logEuclidean") expect_is(f1$f, is(example$P)) expect_equal(dim(f1$f), dim(example$P)) expect_type(f1$D[[1]], "complex") expect_type(f2$D[[1]], "complex") expect_length(unlist(f1$D), 300) expect_length(unlist(f2$D), 300) expect_length(c(f1$M0), 20) expect_length(c(f2$M0), 20) expect_type(f1$tree.weights[[1]], "logical") expect_type(f2$tree.weights[[1]], "logical") expect_length(unlist(f1$tree.weights), 62) expect_length(unlist(f2$tree.weights), 62) cl <- pdkMeans(example$P[, , 1:10], K = 2) expect_true(all(cl$cl.assignments %in% c(0, 1))) expect_equal(sum(cl$cl.assignments), 10) expect_equal(dim(cl$cl.assignments), c(10, 2)) expect_equal(dim(cl$cl.centroids), c(2, 2, 2)) P_s <- rExamples1D(n, 2, "gaussian", replicates = S)$P cl <- pdSpecClust1D(P_s, K = 2, metric = "logEuclidean") expect_equal(sum(cl$cl.prob), S) expect_length(cl$cl.centers.D, 2) expect_length(unlist(cl$cl.centers.D[[1]]), 300) expect_length(unlist(cl$cl.centers.D[[2]]), 300) expect_equal(dim(cl$cl.centers.M0[[1]]), dim(wt1$M0)) expect_equal(dim(cl$cl.centers.M0[[2]]), dim(wt1$M0)) expect_type(cl$cl.jmax, "double") f3 <- pdSplineReg(example$f, example$f, lam = 0.1, Nd = 10, max.iter = 10) expect_equal(dim(f3$f), c(d, d, 10)) expect_type(f3$cost, "double") expect_type(f3$total_iter, "double") })
18: eval(code, test_env)
19: eval(code, test_env)
20: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt)
21: doTryCatch(return(expr), name, parentenv, handler)
22: tryCatchOne(expr, names, parentenv, handlers[[1L]])
23: tryCatchList(expr, classes, parentenv, handlers)
24: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal)
25: doWithOneRestart(return(expr), restart)
26: withOneRestart(expr, restarts[[1L]])
27: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { })
28: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new())
29: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call)
30: FUN(X[[i]], ...)
31: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call)
32: doTryCatch(return(expr), name, parentenv, handler)
33: tryCatchOne(expr, names, parentenv, handlers[[1L]])
34: tryCatchList(expr, classes, parentenv, handlers)
35: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
36: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, error_call = error_call))
37: test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, desc = desc, load_package = load_package, shuffle = shuffle, error_call = error_call)
38: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel, shuffle = shuffle)
39: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed")
40: test_check("pdSpecEst")
An irrecoverable exception occurred. R is aborting now ...
Flavor: r-devel-macos-arm64
Version: 1.2.6
Check: re-building of vignette outputs
Result: ERROR
Error(s) in re-building vignettes:
sh: line 1: 32217 Segmentation fault: 11 '/Library/Frameworks/R.framework/Resources/bin/R' --vanilla --no-echo > '/Volumes/Temp/tmp/RtmpKxkCFE/file7d2141fc18ae' 2>&1 < '/Volumes/Temp/tmp/RtmpKxkCFE/file7d21db8695a'
--- re-building ‘depth_ranktests.Rmd’ using rmarkdown
*** caught segfault ***
address 0x0, cause 'invalid permissions'
Traceback:
1: Expm(diag(2), H.coeff(0.5 * rnorm(4), inverse = T))
2: FUN(X[[i]], ...)
3: lapply(X = X, FUN = FUN, ...)
4: sapply(integer(n), eval.parent(substitute(function(...) expr)), simplify = simplify)
5: replicate(50, Expm(diag(2), H.coeff(0.5 * rnorm(4), inverse = T)))
6: eval(expr, envir)
7: eval(expr, envir)
8: withVisible(eval(expr, envir))
9: withCallingHandlers(code, error = function (e) rlang::entrace(e), message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)})
10: eval(call)
11: eval(call)
12: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers)
13: doWithOneRestart(return(expr), restart)
14: withOneRestart(expr, restarts[[1L]])
15: withRestartList(expr, restarts[-nr])
16: doWithOneRestart(return(expr), restart)
17: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
18: withRestartList(expr, restarts)
19: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)
20: evaluate::evaluate(...)
21: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))
22: in_dir(input_dir(), expr)
23: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)))
24: eng_r(options)
25: block_exec(params)
26: call_block(x)
27: process_group(group)
28: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) })
29: with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global()))
30: xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
31: process_file(text, output)
32: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
33: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...)
34: vweave_rmarkdown(...)
35: engine$weave(file, quiet = quiet, encoding = enc)
36: doTryCatch(return(expr), name, parentenv, handler)
37: tryCatchOne(expr, names, parentenv, handlers[[1L]])
38: tryCatchList(expr, classes, parentenv, handlers)
39: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
40: tools:::.buildOneVignette("depth_ranktests.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/pdSpecEst.Rcheck/vign_test/pdSpecEst", TRUE, FALSE, "depth_ranktests", "UTF-8", "/Volumes/Temp/tmp/RtmpKxkCFE/file7d212c2734cf.rds")
An irrecoverable exception occurred. R is aborting now ...
sh: line 1: 32399 Segmentation fault: 11 '/Library/Frameworks/R.framework/Resources/bin/R' --vanilla --no-echo > '/Volumes/Temp/tmp/RtmpKxkCFE/file7d2165839586' 2>&1 < '/Volumes/Temp/tmp/RtmpKxkCFE/file7d2121cdc47b'
--- re-building ‘wavelet_est_clust.Rmd’ using rmarkdown
*** caught segfault ***
address 0xfe000000786564, cause 'invalid permissions'
Traceback:
1: Expm(diag(3), (1 - 0.4 * t) * H.coeff(sqrt(t * (1 - t) + 1) * sin(pi/(0.4 * t + 0.1)) * (1 + Bumps), inverse = TRUE))
2: FUN(X[[i]], ...)
3: lapply(X = X, FUN = FUN, ...)
4: sapply(x, function(t) { Expm(diag(3), (1 - 0.4 * t) * H.coeff(sqrt(t * (1 - t) + 1) * sin(pi/(0.4 * t + 0.1)) * (1 + Bumps), inverse = TRUE))}, simplify = "array")
5: rExamples1D(n, example = "bumps", return.ts = T, noise = "periodogram")
6: eval(expr, envir)
7: eval(expr, envir)
8: withVisible(eval(expr, envir))
9: withCallingHandlers(code, error = function (e) rlang::entrace(e), message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)})
10: eval(call)
11: eval(call)
12: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers)
13: doWithOneRestart(return(expr), restart)
14: withOneRestart(expr, restarts[[1L]])
15: withRestartList(expr, restarts[-nr])
16: doWithOneRestart(return(expr), restart)
17: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
18: withRestartList(expr, restarts)
19: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)
20: evaluate::evaluate(...)
21: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))
22: in_dir(input_dir(), expr)
23: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)))
24: eng_r(options)
25: block_exec(params)
26: call_block(x)
27: process_group(group)
28: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) })
29: with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global()))
30: xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
31: process_file(text, output)
32: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
33: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...)
34: vweave_rmarkdown(...)
35: engine$weave(file, quiet = quiet, encoding = enc)
36: doTryCatch(return(expr), name, parentenv, handler)
37: tryCatchOne(expr, names, parentenv, handlers[[1L]])
38: tryCatchList(expr, classes, parentenv, handlers)
39: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
40: tools:::.buildOneVignette("wavelet_est_clust.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/pdSpecEst.Rcheck/vign_test/pdSpecEst", TRUE, FALSE, "wavelet_est_clust", "UTF-8", "/Volumes/Temp/tmp/RtmpKxkCFE/file7d21460c9abf.rds")
An irrecoverable exception occurred. R is aborting now ...
SUMMARY: processing the following files failed:
‘depth_ranktests.Rmd’ ‘wavelet_est_clust.Rmd’
Error: Vignette re-building failed.
Execution halted
Flavor: r-devel-macos-arm64
Version: 1.2.6
Check: installed package size
Result: NOTE
installed size is 7.3Mb
sub-directories of 1Mb or more:
libs 6.4Mb
Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64
Current CRAN status: OK: 14
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.