tidyverse / purrr

A functional programming toolkit for R
https://purrr.tidyverse.org/
Other
1.28k stars 272 forks source link

Set `Biarch: true` for old R versions on Windows #1017

Closed DavisVaughan closed 1 year ago

DavisVaughan commented 1 year ago

Now that we have a configure.win script, we are forced to also set Biarch: true so that when purrr is installed from source on R < 4.2, it installs for both 32 and 64 bit Windows.

Otherwise, we get failures like this one in tidyr on our Windows 3.6 builds if we request purrr (>= 1.0.0): https://github.com/tidyverse/tidyr/actions/runs/3743952288/jobs/6356732834

*** arch - i386
Error: Error: package or namespace load failed for 'tidyr' in library.dynam(lib, package, package.lib):
 DLL 'purrr' not found: maybe not installed for this architecture?

This doesn't happen on newer versions of R because R 4.2 dropped support for 32 bit Windows. This is why windows-latest passes on tidyr.

See 6.3.4 of https://cran.r-project.org/doc/manuals/r-patched/R-admin.html for more details.

Windows
where there is a non-empty configure.win script, or a file src/Makefile.win (with some exceptions where the package is known to have an architecture-independent configure.win, or if --force-biarch or field ‘Biarch’ in the DESCRIPTION file is used to assert so).

In those cases only the current architecture is installed.

This might be important enough for a patch purrr release.

hadley commented 1 year ago

I'm slightly tempted to leave this for a bit to see if anyone complains about it.

DavisVaughan commented 1 year ago

Me and my Windows 3.6 tidyr builds will complain loudly 🤣

More seriously I imagine there are some corporate businesses stuck on older versions of R that are also stuck on 32-bit R that might come out and complain. I remember 32 bit R was needed to connect to an Access database (all too common)

lorenzwalthert commented 1 year ago

CRAN checks of packages that use {purrr} also complain. And CI/CD for those.

dieghernan commented 1 year ago

Hi, I think this is related with a bunch of errors on CRAN:

A quick search on GitHub: https://github.com/search?q=%22DLL+purrr+not+found%3A+maybe+not+installed+for+this+architecture%3F%22&type=issues

hadley commented 1 year ago

We will submit a patch to CRAN in early January when we are all back at work.