This blog is updated daily.
A general description is here.
‘grep(perl = TRUE)’ and friends can now make use of PCRE's Just-In-Time mechanism, for PCRE >= 8.20 on platforms where JIT is supported. It is used by default whenever the ‘pattern’ is studied (see the previous item). (Based on a patch from Mikko Korpela.)
This is controlled by a new option ‘PCRE_use_JIT’.
Note that in general this makes little difference to the speed, and may take a little longer: its benefits are most evident on strings of thousands of characters. As a side effect it reduces the chances of C stack overflow in the PCRE library on very long strings (millions of characters, but see next item).
Warning: segfaults were seen using PCRE with JIT enabled on 64-bit Sparc builds.
There was an exception for the native Solaris C++ compiler to the dropping (in R 3.3.0) of legacy C++ headers from headers such as ‘R.h’ and ‘Rmath.h’ - this has now been removed. That compiler has strict C++98 compliance hence does not include extensions in its (non-legacy) C++ headers: some packages will need to request C++11 or replace non-C++98 calls such as ‘lgamma’: see §1.6.4 of ‘Writing R Extensions’.
Because it is needed by about 70 CRAN packages, headers ‘R.h’ and ‘Rmath.h’ still declare
use namespace std;
when included on Solaris.
‘configure’ tests for a C++17-compliant compiler. The tests are experimental and subject to change in the future.
There is support for compiling C++14 or C++17 code in packages on suitable platforms: see ‘Writing R Extensions’ for how to request this.