crashing conditional masking when built with Rtools4.2 and later
The conditional masking in evalhyd-cpp
is based on regular expressions parsed using std::regex
.
When moving from R-4.1 to R-4.2, Rtools
has seen some significant changes. In particular, it switched to UCRT:
Rtools42 consists of Msys2 build tools, GCC 10/MinGW-w64 compiler toolchain and libraries and QPDF. Rtools42 supports 64-bit Windows and UCRT as the C runtime. The code compiled by earlier versions of Rtools is incompatible and has to be recompiled with Rtools42 for use in R packages. Switching to UCRT allows to use UTF-8 as the native encoding on Windows.
https://cran.r-project.org/bin/windows/Rtools/rtools42/rtools.html
With the switch to UTF-8 encoding, there seems to be other packages seeing problems with std::regex
:
It is known that std::regex, a C++ interface to regular expressions, is not reliable with multi-byte encodings, and this has been the case on other platforms. With the switch to UTF-8, some R packages using C++ have ran into this problem also on Windows.
For evalhyd-r
, this makes the masking functionality simply unusable on Windows running a version built with Rtools4.2 and later.