When trying to install diffuStats, the following error pops up:
make: *** [diffuse_parallel.o] Error 1
ERROR: compilation failed for package ‘diffuStats’
This happened using Bioconductor version 3.10
, which tried to install diffuStats 1.6.0
with BiocManager::install("diffuStats")
The full error report is below.
> BiocManager::install("diffuStats")
Bioconductor version 3.10 (BiocManager 1.30.10), R 3.6.3 (2020-02-29)
Installing package(s) 'diffuStats'
trying URL 'https://bioconductor.org/packages/3.10/bioc/src/contrib/diffuStats_1.6.0.tar.gz'
Content type 'application/x-gzip' length 1300728 bytes (1.2 MB)
==================================================
downloaded 1.2 MB
* installing *source* package ‘diffuStats’ ...
** using staged installation
** libs
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.6/Rcpp/include" -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.6/RcppArmadillo/include" -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.6/RcppParallel/include" -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RcppExports.cpp -o RcppExports.o
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.6/Rcpp/include" -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.6/RcppArmadillo/include" -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.6/RcppParallel/include" -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c diffuse_parallel.cpp -o diffuse_parallel.o
diffuse_parallel.cpp: In function ‘arma::sp_mat convertSparse(Rcpp::S4)’:
diffuse_parallel.cpp:28:34: error: ‘acquire_chunked’ is not a member of ‘arma::memory’
arma::access::rw(res.values) = arma::memory::acquire_chunked<double>(x.size() + 1);
^
diffuse_parallel.cpp:28:64: error: expected primary-expression before ‘double’
arma::access::rw(res.values) = arma::memory::acquire_chunked<double>(x.size() + 1);
^
diffuse_parallel.cpp:32:39: error: ‘acquire_chunked’ is not a member of ‘arma::memory’
arma::access::rw(res.row_indices) = arma::memory::acquire_chunked<arma::uword>(i.size() + 1);
^
diffuse_parallel.cpp:32:80: error: expected primary-expression before ‘>’ token
arma::access::rw(res.row_indices) = arma::memory::acquire_chunked<arma::uword>(i.size() + 1);
^
/usr/lib/R/etc/Makeconf:177: recipe for target 'diffuse_parallel.o' failed
make: *** [diffuse_parallel.o] Error 1
ERROR: compilation failed for package ‘diffuStats’
What is a way around this?
PS: I am posting this question as diffuStats' current maintainer and providing the answer below.