Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile failure of BH as a dependency of https://github.com/steven-shuken/permFDP #91

Closed
edammer opened this issue Feb 9, 2023 · 4 comments

Comments

@edammer
Copy link

edammer commented Feb 9, 2023

Dirk (and team), thanks for your attention to this request from both me and Steve Shuken @Stanford, who is using the BH libraries for his R package/function permFDP [published in Shuken and McNerney, Anal Chem (2023)]: https://pubs.acs.org/doi/abs/10.1021/acs.analchem.2c03719

The function has important scientific use cases in the field of proteomics analysis and research, and is now published with a generally non-working route to installation for new users like me.

Please see my opened issue (2 weeks ago) on the permFDP GitHub: steven-shuken/permFDP#1
With the specific Rcpp compile errors thrown on 2 separate OSes (Windows and Linux/CentOS) and R versions (v4.0.2 and v4.2.0).

Eric Dammer
Emory University

@eddelbuettel
Copy link
Owner

eddelbuettel commented Feb 9, 2023

Sorry to hear it is not building for you.

Over the years both StackOverflow and GitHub have developed a bit of a 'style' of how to effectively communicate an issue. Drilling down to an exact minimal issue helps a lot, and including such a minimally complete verifiable example helps us help you. Also state which version of g++ (or clang) you use, which version of Rcpp, which version of BH, which OS. All of that is essentially missing. It also helps to add compilation flags to suppress noisy warning (not errors!) as CRAN forces us to have the warnings show -- but they obstruct issues in the logs by adding 'noise'.

We upgrade BH once a year, and we take it seriously. Reverse-dependencies are run against all CRAN packages (over 300 by now). This time less than a handful were affected, they were identified and contact. As you can see in #88, all of them are now working at CRAN. We will get your package up and running too, but you have to help us help you. Thanks for your consideration.

@edammer
Copy link
Author

edammer commented Feb 9, 2023

I will work with Steve Shuken to get you the example needed. Thank you for the prompt response, and ownership of this important resource, Dirk!

@eddelbuettel
Copy link
Owner

I will send you a pull request clearning a number of issues up. This was a fairly simple local setup issue on your end.

@eddelbuettel
Copy link
Owner

Please see steven-shuken/permFDP#3 after which the package installs just fine. Remaining micro-warts at your end:

  • Boost is noisy to you may want to add compiler flags -Wno-sign-compare -Wno-parentheses to ~/.R/Makevars
  • You can address the 'signed comparison' in your code (I usually do), the -Wno-parentheses is sadly a 'tax' from Boost
  • Your package still lacks help pages.

Demo installation (I use a helper script that is a wrapper around R CMD INSTALL ...):

edd@rob:~/git/permfdp(master)$ install2.r -l /tmp/rcpp/lib/ permFDP_0.1.0.tar.gz 
* installing *source* package ‘permFDP’ ...
** using staged installation
** libs
ccache g++ -I"/usr/share/R/include" -DNDEBUG  -I'/usr/local/lib/R/site-library/Rcpp/include' -I'/usr/local/lib/R/site-library/BH/include'    -fpic  -g -O3 -Wall -pipe -pedantic -Wno-sign-compare -Wno-parentheses   -c RcppExports.cpp -o RcppExports.o
ccache g++ -I"/usr/share/R/include" -DNDEBUG  -I'/usr/local/lib/R/site-library/Rcpp/include' -I'/usr/local/lib/R/site-library/BH/include'    -fpic  -g -O3 -Wall -pipe -pedantic -Wno-sign-compare -Wno-parentheses   -c permFDP.cpp -o permFDP.o
ccache g++ -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -o permFDP.so RcppExports.o permFDP.o -L/usr/lib/R/lib -lR
installing to /tmp/rcpp/lib/00LOCK-permFDP/00new/permFDP/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (permFDP)
edd@rob:~/git/permfdp(master)$ 

The remaining nag from R CMD check (also via a wrapper calling rcmdcheck::rcmdcheck() with options) is

checking Rd cross-references ...
W  checking for missing documentation entries ...
   Undocumented code objects:designTTest’ ‘permFDRAdjust’ ‘permFDRAdjustCppAll user-level objects in a package should have documentation entries.
   See chapterWriting R documentation filesin theWriting R
   Extensionsmanual.checking for code/documentation mismatches (619ms)

Otherwise you are good to go. There is no, and never was, an issue with BH so I will close this now. Hope this helped!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants