gesistsa / rio

🐟 A Swiss-Army Knife for Data I/O
http://gesistsa.github.io/rio/
599 stars 76 forks source link

Move `stringi` to `Suggests` #378

Closed chainsawriot closed 11 months ago

chainsawriot commented 11 months ago

stringi takes quite some time to compile on blank state Rocker. Currently, it's only used mostly for (speedier) XML escaping. XML/HTML are in the Suggested tier. (I will open another about this)

Other uses within the package can be replaced by base functions.

chainsawriot commented 11 months ago

379

chainsawriot commented 11 months ago

https://github.com/gesistsa/rio/blob/e85f12de2296fd65b9817bf5ad23838bdb7277a1/R/extensions.R#L15

These usage can be replaced by "precalculating" them during the internal data update.

https://github.com/gesistsa/rio/blob/e85f12de2296fd65b9817bf5ad23838bdb7277a1/data-raw/convert.R#L1-L6

chainsawriot commented 11 months ago

Current CRAN version 2.0.1 on blank state Rocker: docker run --rm -it rocker/r-ver:latest

system("apt-get update; apt-get install libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev -y"); system.time(install.packages("rio", repo = "https://cloud.r-project.org"))

272s (if libicu-dev is installed)

chainsawriot commented 11 months ago
system("apt-get update; apt-get install zlib1g-dev libcurl4-openssl-dev libssl-dev -y"); system.time(install.packages("rio", repo = "https://cloud.r-project.org"))

without libicu-dev: 454s

chainsawriot commented 11 months ago
system("apt-get update; apt-get install libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev -y"); install.packages("remotes"); system.time(remotes::install_github("gesistsa/rio", repos = "https://cloud.r-project.org"))

278s

system("apt-get update; apt-get install libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev -y"); install.packages("remotes"); system.time(remotes::install_github("gesistsa/rio@stringi", repos = "https://cloud.r-project.org"))

231s