[Rd] rscproxy version conflict
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Dec 23 19:40:44 CET 2008
On Tue, 23 Dec 2008, Thomas Baier wrote:
> Simon Urbanek wrote:
>> FWIW: technically, you don't have to match the patch level version.
>> Although default DLL checks usually require perfect match, it should
>> be safe to require that R version lies in [x.y.z, x.y+1.0) where
>> x.y.z is the R version that the interfacing DLL was compiled against.
>> (And hence it is safe to use R x.y.0 as the base for compilation until
>> R x.y+1.0 is released).
>
> The check that has been implemented works as:
>
> snprintf(Rversion, 25, "%s.%s", R_MAJOR, R_MINOR);
> if(strncmp(getDLLVersion(), Rversion, 25) != 0) {
> ... check failed
> }
> ... check ok
>
> Quoting from http://cran.r-project.org/doc/manuals/R-exts.html
>
> int main (int argc, char **argv)
> {
> structRstart rp;
> Rstart Rp = &rp;
> char Rversion[25], *RHome;
>
> sprintf(Rversion, "%s.%s", R_MAJOR, R_MINOR);
> if(strcmp(getDLLVersion(), Rversion) != 0) {
> fprintf(stderr, "Error: R.DLL version does not match\n");
> exit(1);
> }
> ...
>
> this looks very similar. According to your message, full binary
> compatibility is given for same R (major.minor) versions, e.g. 2.8.0 is
> fully compatible with 2.8.1, but may not be fully compatible with 2.9.0.
>
> Is there a "compatible DLL version" that can be queried or is using
> getDLLVersion() the recommended approach and ignoring everything after the
> second '.'?
The latter. It is expected that the C-level API is compatible
throughout 2.8.x, but people do use non-API entry points, hence the more
rigid check in this example.
> And if 2.8.0 and 2.8.1 are fully compatible, why is a warning issued, if a
> package built with R 2.8.1 is loaded in R 2.8.0?
They may not be compatible at R function level: new features are allowed,
as well as bug fixes which code may rely on.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list