Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Planning to potentially (re)move some legacy internal header files #400

Closed
4 tasks done
eddelbuettel opened this issue Dec 1, 2022 · 0 comments
Closed
4 tasks done

Comments

@eddelbuettel
Copy link
Member

eddelbuettel commented Dec 1, 2022

RcppArmadillo always had a bit of an ad-hoc laying in its (user facing) header files. This was not of great importance as the only file users would typically include was RcppArmadillo.h so what was in the (top level of) inst/include was not that important.

Somewhat recently, Rcpp generalized away from (essentially only) Rcpp.h by allowing a set of headers to be included:

// in the following you would pick _one_ of these
#include <Rcpp/Rcpp>         // as before: everyhing
#include <Rcpp/Light>        // no Modules, which many packages can skip
#include <Rcpp/Lighter>    // no RTTI (and that implies no Modules too)
#include <Rcpp/Lightest>   // no Sugar (which most will want to keep)

We now support this in RcppArmadillo to with matching choices RppArmadillo, Light, Lighter, and Lightest.

At the same time, it may also make sense to move some internal header files around. We now have

edd@rob:~/git/rcpparmadillo/inst/include(master)$ ls -1
armadillo
armadillo_bits
RcppArmadillo
RcppArmadilloAs.h             # replaced by RcppArmadillo/interface/RcppArmadilloAs.h
RcppArmadilloConfig.h         # replaced by RcppArmadillo/config/RcppArmadilloConfig.h
RcppArmadilloExtensions
RcppArmadilloForward.h        # replaced by RcppArmadillo/interface/RcppArmadilloForward.h
RcppArmadillo.h
RcppArmadilloSugar.h          # replaced by RcppArmadillo/interface/RcppArmadilloSugar.h
RcppArmadilloWrap.h           # replaced by RcppArmadillo/interface/RcppArmadilloWrap.h
README
edd@rob:~/git/rcpparmadillo/inst/include(master)$ 

where the five highlighted files are internal in nature and should not be called directly by end-user packages. The actual files have been moved as indicated, and the 'legacy' locations just act as redirectors including them. A few weeks ago we ran a full reverse depends check and identified four packages that need adjustments we plan to make in PR in the next few weeks.

It is our hope that with a bit of coordination we should be able to remove these legacy files. Time will tell, and we may find that what we have now is the best we can do as there may always be 'unidentified packages' using them.

The packages needing change as of 30 Nov 2022 are

  • mlpack (includes RcppArmadillo/Alt_R_RNG.h now in RcppArmadillo/rng/Alt_R_RNG.h) (PR 3328 made 2022-12-01) (merged 2022-12-04) (new version 4.0.1 on CRAN 2023-01-13)
  • msgl (via sglOptim includes RcppArmadilloConfig.h) (addressed via sglOptim PR below) (no longer on CRAN as of 2024-01-12)
  • pense (includes RcppArmadilloForward.h) (PR 7 made 2022-11-30) (merged 2022-12-07) (version 2.2.0 on CRAN 2023-01-07)
  • sglOptim (includes RcppArmadilloConfig.h) (PR 3 made 2022-11-30) (no longer on CRAN as of 2024-01-12)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant