[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