CAR0 vs. EXTPTR_PTR

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

CAR0 vs. EXTPTR_PTR

R devel mailing list
I know that binary packages are R-version specific, but it was a bit
surprising that Rcpp 1.0.5 built with R-4.0.2 cannot be loaded into
R-4.0.0.

% R-4.0.0 --quiet
> library(Rcpp, lib="lib-4.0.2")
Error: package or namespace load failed for ‘Rcpp’ in dyn.load(file,
DLLpath = DLLpath, ...):
 unable to load shared object '/tmp/bill/lib-4.0.2/Rcpp/libs/Rcpp.so':
  /tmp/bill/lib-4.0.2/Rcpp/libs/Rcpp.so: undefined symbol: EXTPTR_PTR
In addition: Warning message:
package ‘Rcpp’ was built under R version 4.0.2

It looks like R's include/Rinternals.h was rejiggered so the function
EXTPTR_PTR is called when CAR0 used to be.   (I think they do the same
thing.)

Bill Dunlap
TIBCO Software
wdunlap tibco.com

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: CAR0 vs. EXTPTR_PTR

Dirk Eddelbuettel

On 22 July 2020 at 16:29, William Dunlap via R-devel wrote:
| I know that binary packages are R-version specific, but it was a bit
| surprising that Rcpp 1.0.5 built with R-4.0.2 cannot be loaded into
| R-4.0.0.
|
| % R-4.0.0 --quiet
| > library(Rcpp, lib="lib-4.0.2")
| Error: package or namespace load failed for ‘Rcpp’ in dyn.load(file,
| DLLpath = DLLpath, ...):
|  unable to load shared object '/tmp/bill/lib-4.0.2/Rcpp/libs/Rcpp.so':
|   /tmp/bill/lib-4.0.2/Rcpp/libs/Rcpp.so: undefined symbol: EXTPTR_PTR
| In addition: Warning message:
| package ‘Rcpp’ was built under R version 4.0.2
|
| It looks like R's include/Rinternals.h was rejiggered so the function
| EXTPTR_PTR is called when CAR0 used to be.   (I think they do the same
| thing.)

AFAIK it is not so much that you cannot take a 4.0.2 binary "back" to an
older R version, it is more that 4.0.0/4.0.1 had an inadvertent change that
broke things.

This came up a few times already on a few of the lists and on stackoverflow.

And simply running R 4.0.2 and building on R 4.0.2 is the safest bet.

Dirk

--
https://dirk.eddelbuettel.com | @eddelbuettel | [hidden email]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel