On 21 March 2017 at 17:18, Prof Brian Ripley wrote: | On 21/03/2017 16:38, Dirk Eddelbuettel wrote: | > On 21 March 2017 at 07:29, Prof Brian Ripley wrote: | > | As of today's commit r72375 all packages with native-routine | > | registration of C or Fortran routines need to be reinstalled in R-devel | > | (and that include some of the recommended packages in R itself which | > | will not be reinstalled via make dependencies, so we advise a clean | > | rebuild of R). | > | > I am confused by this. | > | > So in order to test this, I just triggered rebuild of the smaller drd ("daily | > r-devel") and r-devel Docker images for R. | > | > Using drd, I used R 3.3.3 to install digest and anytime (also installing Rcpp | > and BH). I then launch the R-devel build freshly created, and reported as | > | > root@b00daf469882:/# RD --version | > R Under development (unstable) (2017-03-21 r72380) -- "Unsuffered Consequences" | > | > yet both digest and anytime loaded fine by R-devel. Despite the fact that | > they were installed by R 3.3.3. | | None register C/Fortran routines for .C or .Fortran.
Thanks for the prompt follow-up. Between your email and corresponding entry in NEWS tagged over at the 'daily r-devel changes' RSS feed, I was also thinking this might be limited to .C and .Fortran, but _not_ the .Call so much more common in my world. | My belief is that packages which register more than one .C or more than | one .Fortran native routine are affected, but that may not be exhaustive | (and might depend on the compiler). Ok, thanks for the clarification. | > As I understand your email, that should not have worked. So I must be | > missing something -- can you help set me straight? | | All packages should load ... the issue is finding (all of the) | registered symbols. Here's an example of what can go wrong, x86_64 Linux; | | > library(mgcv, lib = "/usr/local/lib64/R/library") # R 3.3.3 | Loading required package: nlme | This is mgcv 1.8-17. For overview type 'help("mgcv-package")'. | > mgcv:::in.out | ... | um <- .C(C_in_out, bx = as.double(bnd[, 1]), by = as.double(bnd[, | ... | > mgcv:::C_in_out | Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : | object 'C_in_out' not found | | (the last message being found in testing a package which called mgcv). Thanks also for the illustration. Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel