Hello, I'm developing a package (lazyvec) that makes full use of the ALTREP framework (R >= 3.6.0). One application of the package is to wrap existing ALTREP vectors in a new ALTREP vector and pass all calls from R to the contained object. The purpose of this is to provide a diagnostic framework for working with ALTREP vectors and show information about internal calls.
The package builds on Windows and OSX but fails to build on Linux as can be seen from the link to the Travis build: https://travis-ci.org/fstpackage/lazyvec/jobs/539442806 The reason of build failure is that many ALTREP methods generate 'undefined symbol' errors upon building the package (on Linux). I've checked the R source code and the undefined symbols seems to be related to the 'attribute_hidden' before the function definition. For example, the method 'ALTVEC_EXTRACT_SUBSET' is defined as: SEXP attribute_hidden ALTVEC_EXTRACT_SUBSET(SEXP x, SEXP indx, SEXP call) My question is why these differences between Windows / OSX and Linux exist and if they are intentional? Do I need special build parameters to make sure my package builds correctly on Linux? thanks for all the hard work! best, Mark PS: some additional info: package github repository: https://github.com/fstpackage/lazyvec AppVeyor package build logs: https://ci.appveyor.com/project/fstpackage/lazyvec Travis package build logs: https://travis-ci.org/fstpackage/lazyvec/builds [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel