[Rd] Incompatible change in R-devel
edd at debian.org
Tue Mar 21 18:30:58 CET 2017
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 at 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.
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the R-devel