-
-
Notifications
You must be signed in to change notification settings - Fork 219
Description
@edzer had CCed me on a reply to CRAN after he received a gentle nudge from the CRAN team:
Dear maintainer,
Please see the problems shown on
<https://cran.r-project.org/web/checks/check_results_sf.html>.
The "DLL requires the use of native symbols" errors in the
r-devel-linux-x86_64-debian-gcc check results are from
r83985 | luke | 2023-03-16 02:31:57 +0100 (Thu, 16 Mar 2023) | 3 lines
Enforce R_forceSymbols for namespaces, but for now only if an
environment variable is set.
which makes R_forceSymbols work correctly, for now provided that env var
R_REALLY_FORCE_SYMBOLS is set.
You can conveniently extract the non-symbols in your package's foreign
function calls via tools:::package_native_routine_registration_db(),
e.g.,
R> tools:::package_native_routine_registration_db("/data/rsync/PKGS/tibble")
cname s n
1 .Call tibble_need_coerce 1
but please note that there may be several such calls in your code.
Please correct before 2023-04-02 to safely retain your package on CRAN.
I took me a moment of head-scratching among several of my packages. I have some which produces a single when tools:::package_native_routine_registration_db()
was called. With a bit more digging, and a quick helpful email exchange with @edzer I noticed that our compileAttributes()
write one remaining .Call()
with straight apostrophes rather than backticks. In the package in which I traced that it is (currently) this line:
I have a simple two-char patch to src/attributes.cpp
which correct this to
diff --git a/R/RcppExports.R b/R/RcppExports.R
index 4c7f878..5ec15ee 100644
--- a/R/RcppExports.R
+++ b/R/RcppExports.R
@@ -191,5 +191,5 @@ format_stopwatch <- function(sw) {
# Register entry points for exported C++ functions
methods::setLoadAction(function(ns) {
- .Call('_RcppSpdlog_RcppExport_registerCCallable', PACKAGE = 'RcppSpdlog')
+ .Call(`_RcppSpdlog_RcppExport_registerCCallable`, PACKAGE = 'RcppSpdlog')
})
We should probably doube-check if we have other remaining uses of '
and/or discuss if we should just turn off the non-registration mode of compileAttributes()
. We should also check if we do something garly with R_forceSymbols()
but as best as I can tell me do not use it.