You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Meta-issue for discussion and to keep track of all the individual changes required to achieve this goal.
It may be helpful to define three classes of tasks and an ordering as DE sees it
First order: establish C++11 as the baseline allowing variadic templates (and the 'can use C++11' define) to reduce to unconditional code which, as a major side effect and first order goal, leads to removal of all the pre-C++11 autogenerated code. Other cleanups below inst/include and in src/ happen basically as a side effect
Second order, by a wide margin: cleanup below inst/ and removal of old helpers or illustrations which does not really affect anyone
Third order, and possibly tied with or marginally ahead of the previous point: cleanup of R helper functins
Review RCPP_USING_UNORDERED_* checks and remove carefully. Review RCPP_UNORDERED_* types and just replace with the appropriate std::unordered_* type. Remove macros for unordered maps/sets #1372
Remove branch in inst/include/Rcpp/sugar/functions/sapply.h:41 (see TODO there). (DE: Unsure about this one, lesser priority for me. To be determined...). (IU: Maybe the other way around: maybe we should just remove the first branch, the one that uses the std library. Then ::Rcpp::traits::result_of could (or could not) be reimplemented based on the std library.) Enable lambdas in all sugar functions #1373
Reach out packages jiebaR, fwsim, diveRsity (removed from CRAN), which use RCPP_UNORDERED_MAP and RCPP_UNORDERED_SET (see this search) in order to replace those uses too. We can deprecate these definitions and remove them in a future release.
Maybe implement more variadic templates if any missing, then clean up remaining inst/include/Rcpp/generated stuff.
Same for generated stuff under inst/include/Rcpp/module.
Same for generated stuff under inst/include/Rcpp/sugar/block.
Same for generated stuff under inst/include/Rcpp/sugar/functions/mapply.
Clean up R/RcppLdpath.R. Functions that have been deprecated for ages. Some internal functions could just be dropped (also the inst/discovery script). The exported ones require some revdep checking. (DE: Sure but low priority as it has not bitten anyone. We could also chase packages still doing 'Depends: Rcpp' but ... to what payoff?)
Clean up plugins in R/Attributes.R. Particularly, cpp98, cpp0x, probably cpp11 too. (DE: Unsure. There will be old code snippets hanging around that have this. Just as with old LdFlags() calls we could just make them null-ops)
Update vignettes accordingly.
@eddelbuettel Feel free to add/drop/edit/reorder above.
Meta-issue for discussion and to keep track of all the individual changes required to achieve this goal.
It may be helpful to define three classes of tasks and an ordering as DE sees it
Tasks
inst/include/Rcpp/platform/compiler.h. Ancient tests and defines that are not required anymore."Spring cleaning" of some ancient pre-processor directives #1363
Header cleanup with C++11 as a baseline #1364
HAS_VARIADIC_TEMPLATESchecks and remove carefully, also cleaning upinst/include/Rcpp/generatedstuff. (DE: I expect this to be one single careful PR)Remove use of
HAS_VARIADIC_TEMPLATES#1366Use variadic templates unconditionally #1367
RCPP_USING_CXX11checks and remove carefully. RInside uses this macro (see this search). Then, the definition could be removed. (DE: Thanks for the heads-up. I can take this.)Remove RCPP_USING_CXX11 which is now implicit #1369
if __cplusplus < 201103Land assess removalCleanup __cplusplus checks based on C++11 availability #1370
Cleanup __cplusplus checks #1371
RCPP_USING_UNORDERED_*checks and remove carefully. ReviewRCPP_UNORDERED_*types and just replace with the appropriatestd::unordered_*type.Remove macros for unordered maps/sets #1372
inst/include/Rcpp/sugar/functions/sapply.h:41(see TODO there). (DE: Unsure about this one, lesser priority for me. To be determined...). (IU: Maybe the other way around: maybe we should just remove the first branch, the one that uses the std library. Then::Rcpp::traits::result_ofcould (or could not) be reimplemented based on the std library.)Enable lambdas in all sugar functions #1373
diveRsity(removed from CRAN), which useRCPP_UNORDERED_MAPandRCPP_UNORDERED_SET(see this search) in order to replace those uses too. We can deprecate these definitions and remove them in a future release.inst/include/Rcpp/generatedstuff.inst/include/Rcpp/module.inst/include/Rcpp/sugar/block.inst/include/Rcpp/sugar/functions/mapply.R/RcppLdpath.R. Functions that have been deprecated for ages. Some internal functions could just be dropped (also theinst/discoveryscript). The exported ones require some revdep checking. (DE: Sure but low priority as it has not bitten anyone. We could also chase packages still doing 'Depends: Rcpp' but ... to what payoff?)R/Attributes.R. Particularly,cpp98,cpp0x, probablycpp11too. (DE: Unsure. There will be old code snippets hanging around that have this. Just as with old LdFlags() calls we could just make them null-ops)@eddelbuettel Feel free to add/drop/edit/reorder above.