stan-dev / cmdstanr

CmdStanR: the R interface to CmdStan
https://mc-stan.org/cmdstanr/
Other
144 stars 63 forks source link

Loading `cmdstanr` takes a very long time (over 30 seconds) on macOS #889

Closed mattocci27 closed 9 months ago

mattocci27 commented 10 months ago

Describe the bug Loading cmdstanr takes a very long time (over 30 seconds) on macOS. This duration is much longer compared to the loading times on Linux machines, where the package typically loads within just a few seconds.

Operating system macOS Sonoma 14.2

CmdStanR version number 0.7.0

To Reproduce

r$> system.time(library(cmdstanr))
This is cmdstanr version 0.7.0
- CmdStanR documentation and vignettes: mc-stan.org/cmdstanr
- CmdStan path: /Users/xxxxx/.cmdstan/cmdstan-2.33.1
- CmdStan version: 2.33.1
   user  system elapsed
  0.416   0.050  34.963

Additional context

r$> devtools::session_info()
─ Session info ─────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.3.2 (2023-10-31)
 os       macOS Sonoma 14.2
 system   aarch64, darwin20
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Asia/Shanghai
 date     2023-12-21
 pandoc   3.1.11 @ /opt/homebrew/bin/pandoc

─ Packages ─────────────────────────────────────────────────────────────────────────────────────────────────────
 package        * version date (UTC) lib source
 abind            1.4-5   2016-07-21 [1] CRAN (R 4.3.0)
 backports        1.4.1   2021-12-13 [1] CRAN (R 4.3.0)
 cachem           1.0.8   2023-05-01 [1] CRAN (R 4.3.0)
 callr            3.7.3   2022-11-02 [1] CRAN (R 4.3.0)
 checkmate        2.2.0   2023-04-27 [1] CRAN (R 4.3.0)
 cli              3.6.1   2023-03-23 [1] CRAN (R 4.3.0)
 cmdstanr       * 0.7.0   2023-12-21 [1] local
 colorspace       2.1-0   2023-01-23 [1] CRAN (R 4.3.0)
 crayon           1.5.2   2022-09-29 [1] CRAN (R 4.3.0)
 devtools         2.4.5   2022-10-11 [1] CRAN (R 4.3.0)
 digest           0.6.31  2022-12-11 [1] CRAN (R 4.3.0)
 distributional   0.3.2   2023-03-22 [1] CRAN (R 4.3.0)
 dplyr            1.1.2   2023-04-20 [1] CRAN (R 4.3.0)
 ellipsis         0.3.2   2021-04-29 [1] CRAN (R 4.3.0)
 fansi            1.0.4   2023-01-22 [1] CRAN (R 4.3.0)
 farver           2.1.1   2022-07-06 [1] CRAN (R 4.3.0)
 fastmap          1.1.1   2023-02-24 [1] CRAN (R 4.3.0)
 fs               1.6.2   2023-04-25 [1] CRAN (R 4.3.0)
 generics         0.1.3   2022-07-05 [1] CRAN (R 4.3.0)
 ggplot2          3.4.2   2023-04-03 [1] CRAN (R 4.3.0)
 glue             1.6.2   2022-02-24 [1] CRAN (R 4.3.0)
 gtable           0.3.3   2023-03-21 [1] CRAN (R 4.3.0)
 htmltools        0.5.7   2023-11-03 [1] CRAN (R 4.3.1)
 htmlwidgets      1.6.4   2023-12-06 [1] CRAN (R 4.3.1)
 httpuv           1.6.13  2023-12-06 [1] CRAN (R 4.3.1)
 knitr            1.43    2023-05-25 [1] CRAN (R 4.3.0)
 later            1.3.2   2023-12-06 [1] CRAN (R 4.3.1)
 lifecycle        1.0.3   2022-10-07 [1] CRAN (R 4.3.0)
 magrittr         2.0.3   2022-03-30 [1] CRAN (R 4.3.0)
 memoise          2.0.1   2021-11-26 [1] CRAN (R 4.3.0)
 mime             0.12    2021-09-28 [1] CRAN (R 4.3.0)
 miniUI           0.1.1.1 2018-05-18 [1] CRAN (R 4.3.0)
 munsell          0.5.0   2018-06-12 [1] CRAN (R 4.3.0)
 pillar           1.9.0   2023-03-22 [1] CRAN (R 4.3.0)
 pkgbuild         1.4.2   2023-06-26 [1] CRAN (R 4.3.0)
 pkgconfig        2.0.3   2019-09-22 [1] CRAN (R 4.3.0)
 pkgload          1.3.2   2022-11-16 [1] CRAN (R 4.3.0)
 posterior        1.4.1   2023-03-14 [1] CRAN (R 4.3.0)
 prettyunits      1.1.1   2020-01-24 [1] CRAN (R 4.3.0)
 processx         3.8.2   2023-06-30 [1] CRAN (R 4.3.0)
 profvis          0.3.8   2023-05-02 [1] CRAN (R 4.3.0)
 promises         1.2.1   2023-08-10 [1] CRAN (R 4.3.0)
 ps               1.7.5   2023-04-18 [1] CRAN (R 4.3.0)
 purrr            1.0.1   2023-01-10 [1] CRAN (R 4.3.0)
 R6               2.5.1   2021-08-19 [1] CRAN (R 4.3.0)
 Rcpp             1.0.10  2023-01-22 [1] CRAN (R 4.3.0)
 remotes          2.4.2   2021-11-30 [1] CRAN (R 4.3.0)
 rlang            1.1.1   2023-04-28 [1] CRAN (R 4.3.0)
 scales           1.2.1   2022-08-20 [1] CRAN (R 4.3.0)
 sessioninfo      1.2.2   2021-12-06 [1] CRAN (R 4.3.0)
 shiny            1.8.0   2023-11-17 [1] CRAN (R 4.3.1)
 stringi          1.7.12  2023-01-11 [1] CRAN (R 4.3.0)
 stringr          1.5.0   2022-12-02 [1] CRAN (R 4.3.0)
 tensorA          0.36.2  2020-11-19 [1] CRAN (R 4.3.0)
 tibble           3.2.1   2023-03-20 [1] CRAN (R 4.3.0)
 tidyselect       1.2.0   2022-10-10 [1] CRAN (R 4.3.0)
 urlchecker       1.0.1   2021-11-30 [1] CRAN (R 4.3.0)
 usethis          2.2.2   2023-07-06 [1] CRAN (R 4.3.0)
 utf8             1.2.3   2023-01-31 [1] CRAN (R 4.3.0)
 vctrs            0.6.3   2023-06-14 [1] CRAN (R 4.3.0)
 xfun             0.39    2023-04-20 [1] CRAN (R 4.3.0)
 xtable           1.8-4   2019-04-21 [1] CRAN (R 4.3.0)

 [1] /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library
andrjohns commented 10 months ago

It looks like this can happen when cmdstanr is checking whether the current CmdStan installation is the latest version and you don't have internet access, or if you're on a corporate network or similar which blocks some GitHub requests.

To confirm whether this is the case for you, can you try running options("CMDSTANR_NO_VER_CHECK"=TRUE) before loading cmdstanr?

I'll open a PR to mitigate this now

mattocci27 commented 10 months ago

It works, and thank you for the quick PR!