[Rcpp-devel] question re: LdFlags, RcppLdFlags
Romain Francois
romain at r-enthusiasts.com
Thu Oct 10 00:05:26 CEST 2013
Le 09/10/13 23:43, Dirk Eddelbuettel a écrit :
>
> On 9 October 2013 at 23:13, Romain Francois wrote:
> | Le 09/10/13 03:41, Dirk Eddelbuettel a écrit :
> | >
> | > On 8 October 2013 at 16:53, Dirk Eddelbuettel wrote:
> | > | | This is also what's done in e.g. Rcpp.package.skeleton. However, following the
> | > | | new guidelines from CRAN, RcppLdFlags was exported, but not LdFlags. I wonder
> | > |
> | > | Darn. Error on my part. It should have been LdFlags. That was the intent.
> | > | Oh well.
> | >
> | > Minor correction: Seems we need both. So back to export RcppLdFlags(), but
> | > thanks to Kevin also exporting LdFlags(). Done in svn rev4566.
> | >
> | > Dirk
> |
> | One good thing about the previous system was that other packages could
> | follow the same convention and also have a hidden LdFlags function
> | giving information about what is required to link against it.
> |
> | I do it, e.g. on the dplyrRcpp package.
> |
> | Now that it is exported, I get this when I load dplyrRcpp which is
> | annoying:
> |
> |
> | L'objet suivant est masqué from ‘package:Rcpp’:
> |
> | LdFlags
>
> Gosh, that sucks. It'll bite a few of mine too.
>
> | What would be the recommendation for such third party packages that also
> | ship a library.
>
> Don't know, and am open for suggestions.
>
> Maybe the local packages need to rename their version?
That will then quickly become a mess. Having the convention
package:::LdFlags() was fine.
Or perhaps we could centralize within Rcpp, i.e. have something like:
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp::LdFlags('foo')"`
and we would just have to leverage the inline plugin for package "foo'
there.
> Or maybe I got it all wrong and we get by with fewer exports? I am (as
> usual) open for all sorts of changes at the Rcpp level (provided they don't
> break anything).
>
> | Was it really a problem that we called LdFlags with :::, did R CMD check
> | look for it in Makevars and Makevars.win ?
>
> CRAN / R Core thought so and told everybody who ran 'R CMD check' with a new
> version of R(-devel). That has been going on for a few weeks. Not sure if
> you regularly build r-devel or run R CMD check, but it's been there for a
> good while (and check R's NEWS commit log if you need to know more).
>
> I think R 3.0.2 may now do it too; see NEWS.
>
> And see Kevin's email from yesterday. I had also gotten private email from
> another maintainer who apparently had CRAN yell at him over this. <Sigh>
>
> So from the Rcpp side we have little choice but to export LdFlags() as others are
> calling it, and R CMD check now complains about the use -- unless it is exported.
Sure.
> | It is not really a problem for me, I can eliminate the need for a
> | library in dplyrRcpp.
> |
> | Would it perhaps make sense to think about standard ways for R packages
> | to register what they need. We have a system like this for inline
> | plugins, maybe it would be interesting to move this up in R and let
> | packages communicate in some way (perhaps in DESCRIPTION) what they need.
>
> Sounds good, make a proposal, get buy-in from R Core and I'll gladly adapt my
> other packages once that is implemented.
>
> Dirk
I just meant to start a discussion. I'll adapt my package so that it
does not need to build a library.
--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
More information about the Rcpp-devel
mailing list