Closed glm729 closed 1 year ago
You may need to bring that up with either Boost or the R Core team. There is nothing I turn on or off here -- if the code doesn't work on you (still somewhat exotic and by choice smaller and limited system) you may have to live without it.
The package is a priori released to CRAN and in good standing on all their systems per this snapshot image of the summary at https://cloud.r-project.org/web/checks/check_results_BH.html
Looking for closely at the fail for auto_ptr
that may just be a bug in bigmemory
. It is an optional feature that is mostly deprecated. Maybe try definining BOOST_NO_AUTO_PTR
. In any event not a bug in BH
either.
See also: https://github.com/kaneplusplus/bigmemory/issues/113
Attempting to compile bigmemory in an Alpine Linux-based Apptainer image fails with BH version 1.78 (default from CRAN). Installing BH version 1.75 from CRAN results in successfully compiling and installing bigmemory. Below is some system and R info and the console output when attempting to install the bigmemory package.
OS info:
R info:
Console output
``` > install.packages("bigmemory", dependencies = TRUE, Ncpus = 3L); trying URL 'https://mirror.aarnet.edu.au/pub/CRAN/src/contrib/bigmemory_4.6.1.tar.gz' Content type 'application/x-gzip' length 72353 bytes (70 KB) ================================================== downloaded 70 KB * installing *source* package ‘bigmemory’ ... ** package ‘bigmemory’ successfully unpacked and MD5 sums checked ** using staged installation checking for Sun Studio compiler... no checking for OS... Linux ** libs g++ -std=gnu++14 -I"/usr/include/R" -DNDEBUG -I../inst/include -DLINUX -I'/usr/lib/R/library/BH/include' -I'/usr/lib/R/library/uuid/include' -I'/usr/lib/R/library/Rcpp/include' -I/usr/local/include -D__MUSL__ -fpic -g -O2 -D__MUSL__ -c BigMatrix.cpp -o BigMatrix.o In file included from /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:25, from /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp:29, from BigMatrix.cpp:13: /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:73:14: error: 'mode_t' in namespace '::' does not name a type 73 | typedef ::mode_t os_permissions_type; | ^~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:75:4: error: 'os_permissions_type' does not name a type 75 | os_permissions_type m_perm; | ^~~~~~~~~~~~~~~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:82:35: error: expected ')' before 'type' 82 | permissions(os_permissions_type type) BOOST_NOEXCEPT | ~ ^~~~~ | ) /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:117:25: error: 'os_permissions_type' has not been declared 117 | void set_permissions(os_permissions_type perm) BOOST_NOEXCEPT | ^~~~~~~~~~~~~~~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:122:4: error: 'os_permissions_type' does not name a type 122 | os_permissions_type get_permissions() const BOOST_NOEXCEPT | ^~~~~~~~~~~~~~~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp: In member function 'void boost::interprocess::permissions::set_default()': /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:100:7: error: 'm_perm' was not declared in this scope 100 | m_perm = 0644; | ^~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp: In member function 'void boost::interprocess::permissions::set_unrestricted()': /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:111:7: error: 'm_perm' was not declared in this scope 111 | m_perm = 0666; | ^~~~~~ /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp: In member function 'void boost::interprocess::permissions::set_permissions(int)': /usr/lib/R/library/BH/include/boost/interprocess/permissions.hpp:118:7: error: 'm_perm' was not declared in this scope; did you mean 'perm'? 118 | { m_perm = perm; } | ^~~~~~ | perm In file included from /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp:29, from BigMatrix.cpp:13: /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp: In function 'boost::interprocess::file_handle_t boost::interprocess::ipcdetail::create_new_file(const char*, boost::interprocess::mode_t, const boost::interprocess::permissions&, bool)': /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:547:64: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 547 | int ret = ::open(name, ((int)mode) | O_EXCL | O_CREAT, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:549:26: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 549 | ::fchmod(ret, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp: In function 'boost::interprocess::file_handle_t boost::interprocess::ipcdetail::create_or_open_file(const char*, boost::interprocess::mode_t, const boost::interprocess::permissions&, bool)': /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:562:63: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 562 | ret = ::open(name, ((int)mode) | O_EXCL | O_CREAT, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions /usr/lib/R/library/BH/include/boost/interprocess/detail/os_file_functions.hpp:564:29: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 564 | ::fchmod(ret, perm.get_permissions()); | ^~~~~~~~~~~~~~~ | set_permissions In file included from BigMatrix.cpp:13: /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp: In member function 'bool boost::interprocess::shared_memory_object::priv_open_or_create(boost::interprocess::ipcdetail::create_enum_t, const CharT*, boost::interprocess::mode_t, const boost::interprocess::permissions&)': /usr/lib/R/library/BH/include/boost/interprocess/shared_memory_object.hpp:371:30: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 371 | ::mode_t unix_perm = perm.get_permissions(); | ^~~~~~~~~~~~~~~ | set_permissions In file included from /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/named_semaphore.hpp:25, from /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/named_mutex.hpp:29, from /usr/lib/R/library/BH/include/boost/interprocess/sync/named_mutex.hpp:30, from BigMatrix.cpp:20: /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/semaphore_wrapper.hpp: In function 'bool boost::interprocess::ipcdetail::semaphore_open(sem_t*&, boost::interprocess::ipcdetail::create_enum_t, const char*, unsigned int, const boost::interprocess::permissions&)': /usr/lib/R/library/BH/include/boost/interprocess/sync/posix/semaphore_wrapper.hpp:81:59: error: 'const class boost::interprocess::permissions' has no member named 'get_permissions'; did you mean 'set_permissions'? 81 | handle = ::sem_open(name.c_str(), oflag, perm.get_permissions(), count); | ^~~~~~~~~~~~~~~ | set_permissions In file included from /usr/lib/R/library/BH/include/boost/smart_ptr/shared_ptr.hpp:17, from /usr/lib/R/library/BH/include/boost/shared_ptr.hpp:17, from ../inst/include/bigmemory/BigMatrix.h:10, from BigMatrix.cpp:22: /usr/lib/R/library/BH/include/boost/smart_ptr/detail/shared_count.hpp: At global scope: /usr/lib/R/library/BH/include/boost/smart_ptr/detail/shared_count.hpp:361:33: warning: 'template