Skip to content

cpp11 0.4.6

Compare
Choose a tag to compare
@DavisVaughan DavisVaughan released this 10 Aug 13:56
d24c6c7
  • R >=3.5.0 is now required to use cpp11. This is in line with (and even goes
    beyond) the tidyverse standard of supporting the previous 5 minor releases of
    R. It also ensures that R_UnwindProtect() is available to avoid C++ memory
    leaks (#332).

  • cpp11::preserved.release_all() has been removed. This was intended to
    support expert developers on R <3.5.0 when cpp11 used a global protection
    list. Since cpp11 no longer uses a global protection list and requires R

    =3.5.0, it is no longer needed. As far as we can tell, no package was
    actively using this (#332).

  • cpp11 now creates one protection list per compilation unit, rather than one
    global protection list shared across compilation units and across packages.
    This greatly reduces the complexity of managing the protection list state and
    should make it easier to make changes to the protection list structure in the
    future without breaking packages compiled with older versions of cpp11 (#330).

  • Nested calls to cpp11::unwind_protect() are no longer supported or
    encouraged. Previously, this was something that could be done for performance
    improvements, but ultimately this feature has proven to cause more problems
    than it is worth and is very hard to use safely. For more information, see the
    new vignette("FAQ") section titled "Should I call cpp11::unwind_protect()
    manually?" (#327).

  • The features and bug fixes from cpp11 0.4.4 have been added back in.