Hi,

As R CMD check is more pedantic about the registration of native routines since version 3.4, I wanted to update my CRAN packages accordingly. While this worked nicely for my 'apcluster' packages (and, some time ago, for my Bioconductor packages), I am having problems with my 'rococo' package. The problem is that I use string variables for some of the .NAME arguments of the calls to the .Call() function. In other word, the R function calling .Call() uses paste() to put together the function name into a string and then calls .Call() with the .NAME argument being this string variable. This is the simplest and most efficient approach under the given circumstances (I omit a detailed justification at this point, but I can provide it if wanted). Any other approach would require a lot more coding. It is also safe, since the variable part of the name is secured against invalid names using match.arg() with a fixed list of options.

In more detail, here is a (slightly simplified) example: suppose there are three C functions rcor_matrix_min, rcor_matrix_prod, and rcor_matrix_lukasiewicz ...

    dummy <- function(x, y, sim=c("min", "prod", "lukasiewicz"))
    {
        sim <- match.arg(sim)

        ...

        funcName <- paste0("rcor_matrix_", sim)
        result <- .Call(funcName, x, y)

        ...
    }


The approach described above worked perfectly before I registered the native routines rcor_matrix_min, rcor_matrix_prod, and rcor_matrix_lukasiewicz. And it still works now with registered native routines. The whole package also passes 'R CMD check' without errors, warnings, or notes. However, if I add the option '--as-cran', I get a bunch of notes saying that the symbol 'funcName' that I use as .NAME argument is not registered. Can anybody comment on that please? Can I simply ignore this? Is it imperative to fix this? Or is it an issue in the 'R CMD check *** --as-cran' that this special case is simply overlooked?

Thanks in advance and best regards,
Ulrich

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to