Open jmhewitt opened 3 months ago
Note from Perry: Given that the --preclean fixed a bug we only ever saw during testing, we could decide that when nimbleExternalCall has been used, it will always turn off the --preclean option. Or we could at least add a note to its roxygen.
Both sound like fine options since I agree that at the moment it mostly feels like two corner cases bumping into each other, thanks!
For now I am just adding a note to the roxygen for nimbleExternalCall
. On quick glance I didn't see an easy way to "partially" preclean.
I noticed nimble's new
precleanCompilation
option #1393 in version 1.1.0, introduced to fix #1368, caused some of my project code to break on OSX (M2, Ventura 13.1) and Linux (Rocky Linux 8.6). I can keep my project code running by settingnimble::nimbleOptions(precleanCompilation=FALSE)
, but wanted to document the issue in case others run into the same. I also wanted to ask if you thought it might be possible to re-implement theprecleanCompilation
option to be more precise in which files it deletes? Or, can you recommend another fix? I recognize this is probably a low-priority need. An MWE to reproduce and resolve the issue is below.I use
Rcpp::sourceCpp
(Rcpp version 1.0.11) to manage C++ include paths while compiling cpp files with dependencies on the RcppEigen and BH packages, for example, so I can call Boost's differential equation solver from nimble models. TheprecleanCompilation
option deletes object filesRcpp::sourceCpp
creates, which prevents nimble models withnimbleExternalCall
functions from compiling. The MWE does only depends on Rcpp andnimbleExternalCall
, though.Thanks!