This release follows closely on 6.1.1, and we apologize for the quick turnaround. It fixes the installation failure currently reported for 6.1.1 on r-release-macos-x86_64, along with a regression that leaves Windows users unable to build some downstream packages from source.
RcppParallel 6.1.1 fails to install on that machine, with:
no member named 'random_access_iterator' in namespace 'std'
The bundled oneTBB guarded a concepts-based iterator dispatch in
parallel_for_each.h on a macro that only tests the language standard. With a
toolchain that accepts -std=c++20 but provides a pre-C++20 standard library
-- Apple clang 14 with the macOS 11.3 SDK, as on that check machine -- it
therefore reached for std::random_access_iterator, which is not available.
oneTBB already defines __TBB_CPP20_CONCEPTS_PRESENT as 0 for clang, and
guards the rest of that header on it; this release uses it for the dispatch
block as well, so the pre-C++20 fallback is selected as intended.
Since 6.0.0, RcppParallel has linked the static TBB provided by Rtools on
Windows. That makes the TBB version, and its ABI, a property of the user's
toolchain rather than of RcppParallel: Rtools42 ships Intel TBB 2017, whose
headers downstream packages cannot build against (StanHeaders requires
tbb::this_task_arena::isolate, which that release gates behind a preview
macro and does not export), so rstan can no longer be built from source on
R 4.2 for Windows. It also left downstream packages with no TBB library to
link against.
RcppParallel now builds the bundled oneTBB as a shared library on Windows and
ships it with the package, as it already does on every other platform. As a
consequence, RcppParallel::RcppParallelLibs() now emits -ltbb and
-ltbbmalloc there in addition to -lRcppParallel. Packages that take their
linker flags from that function require no source changes; packages that
hard-coded -lRcppParallel to pick up TBB symbols will need to use it.
Building the bundled oneTBB requires cmake, which is now required on Windows
as well. This matches the SystemRequirements: CMake (>= 3.5) that DESCRIPTION
has always declared, and Rtools has shipped cmake since Rtools42, so it should
not affect Windows users in practice.
0 errors | 0 warnings | 1 note
The note is the incoming-feasibility check reporting the number of days since the last update, for the reason described above.
We checked 307 reverse dependencies (276 from CRAN + 31 from Bioconductor), comparing R CMD check results across CRAN and dev versions of this package.
- We saw 0 new problems
- We failed to check 9 packages
- bayesdfa (NA)
- BayesPET (NA)
- blavaan (NA)
- bmgarch (NA)
- ctsem (NA)
- GeneralizedUmatrixGPU (NA)
- multinma (NA)
- rmsb (NA)
- TriDimRegression (NA)
None of these are attributable to this release. Each failed identically against the released version in the same run -- they could not be installed in the check environment -- and all nine were already failing in our previous revdepcheck.
That previous run had sixteen such failures; the six that no longer fail (CompositionalRF, DER, kernreg, qs2, Rfast2, rxode2) are the ones we reported with 6.0.0 as needing a rebuild against the new oneTBB ABI, which has since happened.
One further reverse dependency, 'rmdcev', had not finished checking when this was written. It also failed to check in our previous run.