|
1 | 1 | # cpp11 (development version)
|
2 | 2 |
|
| 3 | +* The approach for the protection list managed by cpp11 has been tweaked |
| 4 | + slightly. In 0.4.6, we changed to an approach that creates one protection list |
| 5 | + per compilation unit, but we now believe we've found an approach that is |
| 6 | + guaranteed by the C++ standard to create one protection list per package, |
| 7 | + which makes slightly more sense and still has all the benefits of the reduced |
| 8 | + maintanence burden mentioned in the 0.4.6 news bullet (#364). |
| 9 | + |
| 10 | + A side effect of this new approach is that the `preserved` object exposed |
| 11 | + through `protect.hpp` no longer exists. We don't believe that anyone was using |
| 12 | + this. |
| 13 | + |
3 | 14 | * Dropped support for gcc 4.8, mainly an issue for extremely old CentOS 7
|
4 | 15 | systems which used that as their default compiler. As of June 2024, CentOS 7
|
5 | 16 | is past its Vendor end of support date and therefore also out of scope for
|
|
16 | 27 | beyond) the tidyverse standard of supporting the previous 5 minor releases of
|
17 | 28 | R. It also ensures that `R_UnwindProtect()` is available to avoid C++ memory
|
18 | 29 | leaks (#332).
|
19 |
| - |
| 30 | + |
20 | 31 | * `cpp11::preserved.release_all()` has been removed. This was intended to
|
21 | 32 | support expert developers on R <3.5.0 when cpp11 used a global protection
|
22 | 33 | list. Since cpp11 no longer uses a global protection list and requires R
|
|
35 | 46 | than it is worth and is very hard to use safely. For more information, see the
|
36 | 47 | new `vignette("FAQ")` section titled "Should I call `cpp11::unwind_protect()`
|
37 | 48 | manually?" (#327).
|
38 |
| - |
| 49 | + |
39 | 50 | * The features and bug fixes from cpp11 0.4.4 have been added back in.
|
40 | 51 |
|
41 | 52 | # cpp11 0.4.5
|
|
46 | 57 |
|
47 | 58 | # cpp11 0.4.4
|
48 | 59 |
|
49 |
| -* Davis Vaughan is now the maintainer. |
| 60 | +* Davis Vaughan is now the maintainer. |
50 | 61 |
|
51 | 62 | * `as_doubles()` and `as_integers()` now propagate missing values correctly
|
52 | 63 | (#265, #319).
|
|
56 | 67 | * Minor performance improvements to the cpp11 protect code. (@kevinushey)
|
57 | 68 |
|
58 | 69 | * `cpp_register()` gains an argument `extension=` governing the file extension of
|
59 |
| - the `src/cpp11` file. By default it's `.cpp`, but `.cc` is now supported |
| 70 | + the `src/cpp11` file. By default it's `.cpp`, but `.cc` is now supported |
60 | 71 | as well (#292, @MichaelChirico)
|
61 | 72 |
|
62 | 73 | # cpp11 0.4.3
|
|
65 | 76 | better align with changes in those workflows and the latest version of R
|
66 | 77 | (#279).
|
67 | 78 |
|
68 |
| -* `cpp_source()` errors on non-existent file (#261). |
| 79 | +* `cpp_source()` errors on non-existent file (#261). |
69 | 80 |
|
70 | 81 | * `cpp_register()` is quiet by default when R is non interactive (#289).
|
71 | 82 |
|
|
83 | 94 |
|
84 | 95 | ## New Features
|
85 | 96 |
|
86 |
| -* New opt-in message formatting with the {fmt} C++ library for `cpp11::messages()` `cpp11::stop()` and `cpp11::warning()`. |
| 97 | +* New opt-in message formatting with the {fmt} C++ library for `cpp11::messages()` `cpp11::stop()` and `cpp11::warning()`. |
87 | 98 | Set the `CPP11_USE_FMT` macro to use this feature in your package. (@sbearrows, #169, #208)
|
88 | 99 | * New `as_double()` and `as_integer()` methods to coerce integers to doubles and doubles to integers to doubles (@sbearrows, #46)
|
89 | 100 | * `cpp11::matrix` iterators can now be used either row-wise or column-wise (the default) depending on the user's choice (@alyst, #229)
|
|
0 commit comments