Thank you, but I still think the Writing R Extensions manual needs to be
updated. The manual lists a large number of remapped function names.
These names cannot be used in any package in the current R version
(4.4.1) because R_NO_REMAP is defined in the Debian build script
(intentionally or not?).
- Agner
On 25/06/2024 14.57, Tomas Kalibera wrote:
On 6/24/24 09:45, Agner Fog wrote:
On 24/06/2024 08.56, Tomas Kalibera wrote:
In principle it is the NEWS file that gives hints about important
changes and then one can find the details in Writing R Extensions.
The NEWS file as of mid-April says that "R CMD check --as-cran" will
compile C++ code with -DR_NO_REMAP. And then in Writing R
Extensions, one can read about what is R_NO_REMAP and that this has
been planned to become the default in the future. It is an important
thing to do for the maintainability of the package space: the
situation with name clashes with system headers (typically appearing
just on some platforms) has only been getting worse.
Thanks, but I couldn't find it when I searched for help, and I still
can't find the news you are mentioning. The "Writing R Extensions"
guide does not list the required Rf_ function names. This manual
definitely has to be changed.
The NEWS file is part of the source tree, e.g.
https://svn.r-project.org/R/trunk/doc/NEWS.Rd
You can find a rendered version here:
https://cran.r-project.org/doc/manuals/r-release/NEWS.html
https://cran.r-project.org/doc/manuals/r-devel/NEWS.html
I predict chaos when you add R_NO_REMAP to the Windows compilation: A
large number of old packages containing C++ code will fail. Mails
will be sent to the maintainers. Some maintainers will be
uncontactable. Some packages are maintained by somebody less
competent than the original programmers. Some maintainers will be too
busy to react, or they have forgotten how to submit a package. You
will be bombarded with help requests. In the end, somebody will have
to help update the packages when the maintainers fail to do so.
I am not the one working specifically on these changes, so I don't
have the exact details, but in principle, what you describe is daily
business of maintaining R and CRAN. All of what you describe has been
considered and changes like this are carefully tuned and planned based
on actually running checks of all CRAN packages on patched versions of
R-devel, usually outside the master repository. There is a lot of
effort behind such changes that may not be immediately visible.
This mess is a consequence of a bad decision many years ago when
somebody used non-unique function names like "error" and "warning".
But the world looked very different back then, and now we are facing
the consequences.
It would be useful to do a test to see how many packages need to be
changed.
As above, this is something being done routinely. And it is a moving
target, too, in this case, as many packages run into naming conflicts
and are being fixed. Often the package authors receive patches or
hints how to fix from R Core or the CRAN team.
Tomas
- Agner
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel