[R-pkg-devel] SystemRequirements & configure check for FFTW with single precision support

Ivan Krylov |kry|ov @end|ng |rom d|@root@org
Sat Jan 11 20:09:57 CET 2025


В Sat, 11 Jan 2025 10:37:20 +0100
Lukas Schneiderbauer <lukas.schneiderbauer using gmail.com> пишет:

> I was told to add "fftw-s" since I require the fftw-s package on
> MacOS.

> * Can someone explain the reason behind this request to me?

While the SystemRequirements: field currently contains free-form text,
eventually we might be able to evolve it into something
machine-readable to install the system-level dependencies
automatically. Since the macOS packages are built using the recipes
system to provide the dependencies, it makes certain sense to list the
name of the recipe for their sake, in addition to the name of the
shared library.

> * How exactly should I add "fftw-s" to pass the submission process?

I've tried looking for examples using

db <- tools::CRAN_package_db()
subset(db, grepl('recipe|mac', SystemRequirements, ignore.case=TRUE))

...but found nothing relevant. How about something like the following?

SystemRequirements:
 fftw3 (including single precision support fftw3f; 'fftw-s' macOS
 recipe), fftw3f_omp (optional), OpenMP (optional)

> I tried to explain now for the second time in the submission notes,
> that a check is already in place (see the AC_SEARCH_LIBS paragraph
> above). But my explanation gets ignored.

I'm sorry for asking this admittedly thick question, but are you sure
it's not just R CMD check --as-cran repeating the X-CRAN-Comment: field
(which includes the phrase about not testing for single-precision
FFTW)? Does the rejection e-mail say "please fix and resubmit", list
specific problems, or ask for specific actions?

> * What additional configure checks do I need to add to the package?

The configure test for -lfftwf seems fine to me.

I wouldn't test for OpenMP's omp.h because testing for a working OpenMP
installation is fraught with peril and corner cases [*], but you pick
up R's OpenMP flags correctly and have appropriate #ifdef _OPENMP
sections in the source code, so that shouldn't cause you any real
problems.

-- 
Best regards,
Ivan

[*] https://github.com/Rdatatable/data.table/pull/6642



More information about the R-package-devel mailing list