This blog is updated daily.
A general description is here.
PCRE has been upgraded to version 8.20: as well as bug fixes and greater Perl compatibility. This adds a JIT pattern compiler, about which PCRE's news says ‘large performance benefits can be had in many situations’. (It is supported on most but not all platforms that run R.)
There are new load-balancing functions ‘parLapplyLB()’ and ‘parSapplyLB()’.
C/C++ code in packages is now compiled with ‘-NDEBUG’ to mitigate against the C/C++ function ‘assert’ being called in production use. Developers can turn this off during package development with ‘PKG_CPPFLAGS = -UNDEBUG’.
Some functions/objects which have been defunct for five or more years have been removed completely. These include ‘.Alias()’, ‘La.chol()’, ‘La.chol2inv()’, ‘La.eigen()’, ‘Machine()’, ‘Platform()’, ‘Version’, ‘codes()’, ‘delay()’, ‘format.char()’, ‘getenv()’, ‘httpclient()’, ‘loadURL()’, ‘machine()’, ‘parse.dcf()’, ‘printNoClass()’, ‘provide()’, ‘read.table.url()’, ‘restart()’, ‘scan.url()’, ‘symbol.C()’, ‘symbol.For()’ and ‘unix()’.
Building wih a positive value of ‘--with-valgrind-instrumentation’ now also instruments logical, complex and raw vectors.
‘parallel::detectCores()’ is now able to find the number of physical cores (rather than CPUs) on Sparc Solaris.
It can also do so on most versions of Windows; however the default remains ‘detectCores(logical = TRUE)’ on that platform.
Reference classes now keep a record of which fields are locked. ‘$lock()’ with no arguments returns the names of the locked fields.
‘mapply()’ now gives an explicit error message (rather than an obscure one) if inputs of zero and positive length are mixed.
