[R-pkg-devel] Using parallel:::sendMaster &c. despite warnings

Sebastian Meyer @eb@meyer @end|ng |rom |@u@de
Fri Jul 23 14:05:32 CEST 2021


Am 23.07.21 um 13:19 schrieb David Norris:
> Because parallelized progress reporting in the futureverse.org incurs latencies too great for my application (https://github.com/HenrikBengtsson/progressr/issues/118), I have found it necessary to implement my own progress reporting using some of the non-exported functionality from `parallel`. (I do appreciate that Windows lacks the fork() system call, and will not support this. But am willing to make this an OS_type: unix-only package.)
> 
> Of course, I get a WARNING for this:
> 
> ── R CMD check results ──────────────────────────────── precautionary 0.2.6 ────
> Duration: 6m 41.8s
> 
> ❯ checking dependencies in R code ... WARNING
>    Unexported objects imported by ':::' calls:
>      ‘parallel:::readChild’ ‘parallel:::selectChildren’
>      ‘parallel:::sendMaster’
>      See the note in ?`:::` about the use of this operator.
>      Including base/recommended package(s):
>      ‘parallel’
> 
> Is this warning an absolute deal-killer on CRAN? Is there a 'correct' way to do `:::` that avoids the warning altogether?

The 'parallel' functions your package intends to access seem to be 
intentionally unexported. Their help page says: "They are not available 
on Windows, and not exported from the namespace", and "This is a very 
low-level interface for expert use only: it not regarded as part of the 
R API and subject to change without notice."

Correspondingly, the CRAN Repository Policy says

> Also, ::: should not be used to access undocumented/internal objects in base packages (nor should other means of access be employed). Such usages can cause packages to break at any time, even in patched versions of R.

which kind of answers both of your questions. The policy thus implicitly 
advises against using getFromNamespace().

Best regards,

	Sebastian Meyer

> 
> Kind regards,
> David Norris
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>



More information about the R-package-devel mailing list