Skip to content

Commit 5af58e0

Browse files
committed
update NEWS for 6.1.0 release
1 parent c544093 commit 5af58e0

1 file changed

Lines changed: 22 additions & 18 deletions

File tree

NEWS.md

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,77 @@
11
# RcppParallel (development version)
22

3+
* RcppParallel now provides `isProcessForkedChild()` (R) and
4+
`RcppParallel::isProcessForkedChild()` (C++), which return `TRUE` when the
5+
current process is a `fork()` of the process in which RcppParallel was
6+
loaded.
7+
Packages dispatching parallel work from within `parallel::mclapply()` (or
8+
similar) should consult this and fall back to a serial path, as TBB does
9+
not support use after fork. (#243, #244)
10+
11+
* The TBB backend is now enabled by default on musl-based Linux
12+
distributions, such as Alpine Linux. Previously, TBB was only enabled by
13+
default with glibc-based toolchains on Linux. (#231, #263)
14+
315
* The mingw cpuid guard applied to TBB's `_machine.h` header during
416
installation is now logged, and a warning is emitted if the header does
5-
not have the expected form and the guard cannot be applied.
17+
not have the expected form and the guard cannot be applied. (#265)
618

719
* On Linux, the bundled TBB libraries are once again installed with versioned
820
names (e.g. `libtbb.so.2`) plus an unversioned `libtbb.so` symlink, matching
921
the layout shipped by RcppParallel 5.1.11 and earlier. The oneTBB cmake build
1022
produces only unversioned libraries on Linux, so binaries compiled against
1123
those releases (which recorded a load-time dependency on `libtbb.so.2`) would
1224
otherwise fail to load after an upgrade with "libtbb.so.2: cannot open shared
13-
object file".
25+
object file". (#260)
1426

1527
* Fixed linking of downstream packages using the TBB scalable allocator
1628
on Windows, e.g. via RcppArmadillo's `ARMA_USE_TBB_ALLOC`. RcppParallel
1729
now links the whole Rtools `tbbmalloc` archive into `RcppParallel.dll`
1830
and re-exports its API, so that `scalable_malloc`, `scalable_free`, and
19-
friends can be resolved by packages linking with `-lRcppParallel`.
31+
friends can be resolved by packages linking with `-lRcppParallel`. (#262)
2032

2133
* Fixed installation on Windows toolchains providing an older (non-oneTBB)
2234
copy of TBB, e.g. Rtools42: the tbb stub library is now built by
2335
re-exporting the static TBB library, rather than wrapping the oneTBB
2436
runtime (which is unavailable there). In addition, stale stub build
25-
artifacts from a different toolchain are no longer reused.
37+
artifacts from a different toolchain are no longer reused. (#258)
2638

2739
* Fixed installation on Windows systems whose Rtools does not provide TBB
2840
(R < 4.2.0): configure no longer requires cmake there, and the tbb stub
29-
library is no longer built when the TBB backend is disabled.
41+
library is no longer built when the TBB backend is disabled. (#257)
3042

3143
* RcppParallel now reports which TBB headers and libraries are installed
3244
with the package, and from where, during package installation. In
3345
addition, setting the `VERBOSE` environment variable to a value other
3446
than `0` enables diagnostics describing how TBB libraries are resolved
35-
and loaded when the package is loaded.
47+
and loaded when the package is loaded. (#256, #259)
3648

3749
* On Windows, RcppParallel once again loads its compatibility stub library
3850
(`tbb.dll`) when the package is loaded. Packages linking with `-ltbb`
3951
(e.g. via StanHeaders) record a load-time dependency on `tbb.dll`, which
4052
can only be resolved if RcppParallel has already loaded it; with
4153
RcppParallel 6.0.0, such packages would fail to load with "LoadLibrary
42-
failure: The specified module could not be found".
54+
failure: The specified module could not be found". (#249, #250)
4355

4456
* The TBB headers installed with RcppParallel (whether from Rtools or from
4557
the bundled copy of oneTBB) now guard against GCC's `<cpuid.h>` being
4658
included before `<intrin.h>` on Windows (mingw). Previously, translation
4759
units including `<cpuid.h>` before any TBB header would fail to compile,
4860
as the `__cpuid` macro from `<cpuid.h>` conflicts with the `__cpuid()`
49-
function declared by mingw's `<intrin.h>`.
61+
function declared by mingw's `<intrin.h>`. (#248, #253)
5062

5163
* When building the bundled copy of oneTBB, RcppParallel no longer searches
5264
for hwloc, and so no longer tries to build the optional 'tbbbind' library.
5365
This fixes build failures on machines where a static hwloc library is
54-
discoverable via pkg-config, as on the CRAN macOS machines.
66+
discoverable via pkg-config, as on the CRAN macOS machines. (#247)
5567

5668
* On macOS, the bundled copy of oneTBB is now built with
5769
`__TBB_RESUMABLE_TASKS_USE_THREADS`, avoiding use of the deprecated
58-
ucontext APIs (`getcontext`, `swapcontext`, `makecontext`).
70+
ucontext APIs (`getcontext`, `swapcontext`, `makecontext`). (#247)
5971

6072

6173
# RcppParallel 6.0.0
6274

63-
* RcppParallel now provides `isProcessForkedChild()` (R) and
64-
`RcppParallel::isProcessForkedChild()` (C++), which return `TRUE` when the
65-
current process is a `fork()` of the process in which RcppParallel was
66-
loaded.
67-
Packages dispatching parallel work from within `parallel::mclapply()` (or
68-
similar) should consult this and fall back to a serial path, as TBB does
69-
not support use after fork. (#243)
70-
7175
* RcppParallel no longer includes tbb headers as part of the RcppParallel/TBB.h
7276
header, and instead only exposes its TBB-specific APIs for parallel work.
7377

0 commit comments

Comments
 (0)