Re: [R-pkg-devel] Request for assistance: error in installing on Debian (undefined symbol: omp_get_num_procs) and note in checking the HTML versions (no command 'tidy' found, package 'V8' unavailable
Dear Dirk, Thank you for your help ! On 21 March 2024 at 09:26, Annaig De-Walsche wrote: | Dear R-package-devel Community, | | I hope this email finds you well. I am reaching out to seek assistance regarding package development in R. | | Specifically, I am currently developing an R package for querying composite hypotheses using Rccp. My preferred typo. The package is actually called Rcpp (pp as in plus-plus). | Skipping checking HTML validation: no command 'tidy' found | Skipping checking math rendering: package 'V8' unavailable | | I have searched through the available documentation and resources, but I still need help understanding the error and note messages. Hence, I am turning to this community, hoping that some of you have encountered similar issues. | | Thank you very much for considering my request. I would be grateful if anyone could provide me with some help. | | Best regards, | Anna�g De Walsche | Quantitative Genetics and Evolution unit of INRAE | Gif-sur-Yvette, France | Could you share with us which actual Docker container you started? In fact, I obtain this error message when I am running the rhub::check_for_cran() function. Here is the complete message: https://builder.r-hub.io/status/original/qch_2.0.2.tar.gz-4a652faedad6484c9dcd1f44db057f72 | Installing package into �/home/docker/R� | (as �lib� is unspecified) | 'getOption("repos")' replaces Bioconductor standard repositories, see | 'help("repositories", package = "BiocManager")' for details. | Replacement repositories: | CRAN: https://cloud.r-project.org | * installing *source* package �qch� ... | ** using staged installation | ** libs | using C++ compiler: �g++ (Debian 13.2.0-7) 13.2.0� | using C++11 | g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -I"/usr/local/lib/R/include" -DNDEBUG -I'/home/docker/R/Rcpp/include' -I'/home/docker/R/RcppArmadillo/include' -I/usr/local/include-fpic -g -O2 -Wall -pedantic -mtune=native -c RcppExports.cpp -o RcppExports.o | g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -I"/usr/local/lib/R/include" -DNDEBUG -I'/home/docker/R/Rcpp/include' -I'/home/docker/R/RcppArmadillo/include' -I/usr/local/include-fpic -g -O2 -Wall -pedantic -mtune=native -c updatePrior_rcpp.cpp -o updatePrior_rcpp.o | updatePrior_rcpp.cpp:55: warning: ignoring �#pragma omp parallel� [-Wunknown-pragmas] |55 |#pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:65: warning: ignoring �#pragma omp for� [-Wunknown-pragmas] |65 | #pragma omp for | | | updatePrior_rcpp.cpp:92: warning: ignoring �#pragma omp critical� [-Wunknown-pragmas] |92 | #pragma omp critical | | | updatePrior_rcpp.cpp:178: warning: ignoring �#pragma omp parallel� [-Wunknown-pragmas] | 178 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:190: warning: ignoring �#pragma omp for� [-Wunknown-pragmas] | 190 | #pragma omp for | | | updatePrior_rcpp.cpp:289: warning: ignoring �#pragma omp parallel� [-Wunknown-pragmas] | 289 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:301: warning: ignoring �#pragma omp for� [-Wunknown-pragmas] | 301 | #pragma omp for | | | updatePrior_rcpp.cpp:341: warning: ignoring �#pragma omp critical� [-Wunknown-pragmas] | 341 | #pragma omp critical | | | updatePrior_rcpp.cpp:409: warning: ignoring �#pragma omp parallel� [-Wunknown-pragmas] | 409 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:423: warning: ignoring �#pragma omp for� [-Wunknown-pragmas] | 423 | #pragma omp for | | | updatePrior_rcpp.cpp:527: warning: ignoring �#pragma omp parallel� [-Wunknown-pragmas] | 527 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:539: warning: ignoring �#pragma omp for� [-Wunknown-pragmas] | 539 | #pragma omp for | | | updatePrior_rcpp.cpp:580: warning: ignoring �#pragma omp critical� [-Wunknown-pragmas] | 580 | #pragma omp critical | | You seem to be using a number of OpenMP directives. That is good and performant. But OpenMP cannot be assumed as given; some OSs more or less skip it alltogether, some platforms or compilers may not have it. I ran into the same issue earlier trying to test something with clang on Linux, it would not find the OpenMP library gcc happily finds. I moved on in that (local) use case. In short you probably want to condition your use. Thank you for the clarification. If ever I condition the use of OpenMD directives, users will indeed be capable of installing the package, but they wont access to a performant version of the code, as it necessitates the use of OpenMD. Is there a method to explicitly express that the use of OpenMD is highly encouraged? | g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -shared -L/usr/local/lib/R/lib -L/usr/local/li
Re: [R-pkg-devel] Request for assistance: error in installing on Debian (undefined symbol: omp_get_num_procs) and note in checking the HTML versions (no command 'tidy' found, package 'V8' unavailable
Salut Annaig, On 21 March 2024 at 09:26, Annaig De-Walsche wrote: | Dear R-package-devel Community, | | I hope this email finds you well. I am reaching out to seek assistance regarding package development in R. | | Specifically, I am currently developing an R package for querying composite hypotheses using Rccp. My preferred typo. The package is actually called Rcpp (pp as in plus-plus). | Skipping checking HTML validation: no command 'tidy' found | Skipping checking math rendering: package 'V8' unavailable | | I have searched through the available documentation and resources, but I still need help understanding the error and note messages. Hence, I am turning to this community, hoping that some of you have encountered similar issues. | | Thank you very much for considering my request. I would be grateful if anyone could provide me with some help. | | Best regards, | Annaïg De Walsche | Quantitative Genetics and Evolution unit of INRAE | Gif-sur-Yvette, France | Could you share with us which actual Docker container you started? | Installing package into ‘/home/docker/R’ | (as ‘lib’ is unspecified) | 'getOption("repos")' replaces Bioconductor standard repositories, see | 'help("repositories", package = "BiocManager")' for details. | Replacement repositories: | CRAN: https://cloud.r-project.org | * installing *source* package ‘qch’ ... | ** using staged installation | ** libs | using C++ compiler: ‘g++ (Debian 13.2.0-7) 13.2.0’ | using C++11 | g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -I"/usr/local/lib/R/include" -DNDEBUG -I'/home/docker/R/Rcpp/include' -I'/home/docker/R/RcppArmadillo/include' -I/usr/local/include-fpic -g -O2 -Wall -pedantic -mtune=native -c RcppExports.cpp -o RcppExports.o | g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -I"/usr/local/lib/R/include" -DNDEBUG -I'/home/docker/R/Rcpp/include' -I'/home/docker/R/RcppArmadillo/include' -I/usr/local/include-fpic -g -O2 -Wall -pedantic -mtune=native -c updatePrior_rcpp.cpp -o updatePrior_rcpp.o | updatePrior_rcpp.cpp:55: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas] |55 |#pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:65: warning: ignoring ‘#pragma omp for’ [-Wunknown-pragmas] |65 | #pragma omp for | | | updatePrior_rcpp.cpp:92: warning: ignoring ‘#pragma omp critical’ [-Wunknown-pragmas] |92 | #pragma omp critical | | | updatePrior_rcpp.cpp:178: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas] | 178 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:190: warning: ignoring ‘#pragma omp for’ [-Wunknown-pragmas] | 190 | #pragma omp for | | | updatePrior_rcpp.cpp:289: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas] | 289 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:301: warning: ignoring ‘#pragma omp for’ [-Wunknown-pragmas] | 301 | #pragma omp for | | | updatePrior_rcpp.cpp:341: warning: ignoring ‘#pragma omp critical’ [-Wunknown-pragmas] | 341 | #pragma omp critical | | | updatePrior_rcpp.cpp:409: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas] | 409 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:423: warning: ignoring ‘#pragma omp for’ [-Wunknown-pragmas] | 423 | #pragma omp for | | | updatePrior_rcpp.cpp:527: warning: ignoring ‘#pragma omp parallel’ [-Wunknown-pragmas] | 527 | #pragma omp parallel num_threads(threads_nb) | | | updatePrior_rcpp.cpp:539: warning: ignoring ‘#pragma omp for’ [-Wunknown-pragmas] | 539 | #pragma omp for | | | updatePrior_rcpp.cpp:580: warning: ignoring ‘#pragma omp critical’ [-Wunknown-pragmas] | 580 | #pragma omp critical | | You seem to be using a number of OpenMP directives. That is good and performant. But OpenMP cannot be assumed as given; some OSs more or less skip it alltogether, some platforms or compilers may not have it. I ran into the same issue earlier trying to test something with clang on Linux, it would not find the OpenMP library gcc happily finds. I moved on in that (local) use case. In short you probably want to condition your use. | g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -shared -L/usr/local/lib/R/lib -L/usr/local/lib -o qch.so RcppExports.o updatePrior_rcpp.o -L/usr/local/lib/R/lib -lRlapack -L/usr/local/lib/R/lib -lRblas -lgfortran -lm -lubsan -lquadmath -L/usr/local/lib/R/lib -lR | installing to /home/docker/R/00LOCK-qch/00new/qch/libs | ** R | ** data | *** moving datasets to lazyload DB | ** byte-compile and prepare package for lazy loading | 'getOption("repos")' replaces Bioconductor standard repositories, see | 'help("repositories", package = "BiocManager")' for details. | Replacement repositories: | CRAN: https://cloud.r-project.org | Note: wrong nu