Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are compiled R packages backward compatible?

The new R 3.0.0 requires that all contributed packages are reinstalled. Two questions:

  • Does this also mean that software that calls R, e.g. rapache, need to be recompiled after R has been upgraded?
  • Are the new builds backward compatible? E.g. if an r-cran-xxx package has been compiled using r-base-dev 3.0.0, can this package be loaded in R 2.15? Or do we need to distribute separate binary packages for R 2.15 and R 3.0.0?
like image 359
Jeroen Ooms Avatar asked Apr 04 '13 04:04

Jeroen Ooms


1 Answers

This is really a question for r-devel, or as you use our Debian / Ubuntu package terminology, r-sig-debian.

In short:

  • Question 1 is AFAICT a no. The R C API did not change. The design of Rapache heavily influenced our much smaller littler r, and r runs just fine on my Ubuntu box after installing R 3.0.0 from Michael's builds based on my packages. Even though littler (see r --version) was built against R 2.15.2.

  • Question 2 is a no, and that is no change. R always moves "forward in time", not backwards. Just how we need package rebuilds when NAMESPACES were added, and when the help format changed. So if you have N different R versions with M different ABIs for packages, you may need M trees and manage your libPaths. Nothing new here.

like image 120
Dirk Eddelbuettel Avatar answered Oct 10 '22 19:10

Dirk Eddelbuettel