This blog is updated daily.
A general description is here.
The ‘Writing R Extensions’ TexInfo source now contains very experimental annotations for more clearly identifying the API status of C entry points. These annotations are used to produce indices for API, experimental API, and embedded API entry points in the rendered versions. This is very preliminary and may be dropped if a better approach emerges.
Also now for Fortran-callable entry points which are part of the API.
‘Writing R Extensions’ has a new section ‘Moving into C API compliance’ to help package authors move away from using non-API endpoints. This section will continue to be updated as work on clarifying and tightening the C API continues.
New API function ‘R_mkClosure’. This checks that its arguments are valid and should be used instead of ‘allocSExp(CLOSXP’ followed by ‘SET_FORMALS’, ‘SET_BODY’, and ‘SET_CLOENV’.
New API functions ‘R_ClosureFormals’, ‘R_ClosureBody’, and ‘R_ClosureEnv’ for extracting closure components. The existing functions ‘R_ClosureExpr’ and ‘R_BytecodeExpr’ have also been added to the API.
New API function ‘R_ParentEnv’ corresponding to R's ‘parent.env()’.
Further non-API entry points have been added to those reported by ‘R CMD check’: ‘COMPLEX0’, ‘ddfind’, ‘DDVAL’, ‘ENSURE_NAMEDMAX’, ‘ENVFLAGS’, ‘FRAME’, ‘HASHTAB’, ‘INTERNAL’, ‘IS_ASCII’, ‘IS_UTF8’, ‘LEVELS’, ‘NAMED’, ‘PRSEEN’, ‘RDEBUG’, ‘REAL0’, ‘Rf_findVarInFrame3’, ‘SET_BODY’, ‘SET_CLOENV’, ‘SET_FORMALS’, ‘SET_PRSEEN’, ‘SET_RDEBUG’, ‘STRING_PTR’, ‘SYMVALUE’, and ‘VECTOR_PTR’. Any declarations for these in public header files will be removed in the near future, and they will be hidden where possible.
Some ‘R CMD check’ ‘NOTE’s on the use of non-API entry points have been upgraded to ‘WARNING’s in preparation for removing declarations and, where possible, hiding these entry points.
Additional non-API entry points have been added to those reported by ‘R CMD check’: ‘IS_LONG_VEC’, ‘PRCODE’, ‘PRENV’, ‘PRVALUE’, ‘R_nchar’, ‘Rf_NonNullStringMatch’, ‘R_shallow_duplicate_attr’, ‘Rf_StringBlank’, ‘SET_TYPEOF’, ‘TRUELENGTH’, ‘XLENGTH_EX’, and ‘XTRUELENGTH’.
The ‘print()’ method for date-time objects (‘POSIX.t’) gets an optional ‘digits’ argument for _fractional_ seconds, passed to improved ‘format.POSIXlt()’; consequently, ‘print(<date.time>, digits = n)’ allows to print fractions of seconds.
The ‘Writing R Extensions’ Texinfo source now contains very
experimental annotations for more clearly identifying the API status of
C entry points. These annotations are used to produce indices for API,
experimental API, and embedded API entry points in the rendered
versions. This is very preliminary and may be dropped if a better
approach emerges.
Also now for Fortran-callable entry points which are part of the API.
New API function ‘R_mkClosure’. This checks that its arguments are
valid and should be used instead of ‘allocSExp(CLOSXP’ followed by
‘SET_FORMALS’, ‘SET_BODY’, and ‘SET_CLOENV’.
New API functions ‘R_ClosureFormals’, ‘R_ClosureBody’, and
‘R_ClosureEnv’ for extracting closure components. The existing
functions ‘R_ClosureExpr’ and ‘R_BytecodeExpr’ have also been added to
the API.
New API function ‘R_ParentEnv’.
Some non-API entry points have been added to those reported by ‘R CMD
check’: ‘COMPLEX0’, ‘ddfind’, ‘DDVAL’, ‘ENSURE_NAMEDMAX’, ‘ENVFLAGS’,
‘FRAME’, ‘HASHTAB’, ‘INTERNAL’, ‘IS_ASCII’, ‘IS_UTF8’, ‘LEVELS’,
‘NAMED’, ‘PRSEEN’, ‘RDEBUG’, ‘REAL0’, ‘Rf_findVarInFrame3’, ‘SET_BODY’,
‘SET_CLOENV’, ‘SET_FORMALS’, ‘SET_PRSEEN’, ‘SET_RDEBUG’, ‘STRING_PTR’,
‘SYMVALUE’, and ‘VECTOR_PTR’. Any declarations for these in public
header files will be removed in the near future, and they will be
hidden where possible.
‘Writing R Extensions’ has a new section ‘Moving into C API compliance’
to help package authors move away from using non-API endpoints. This
section will continue to be updated as work on clarifying and
tightening the C API continues.
Some ‘NOTE’s for use of non-API entry points have been upgraded to
‘WARNING’s in preparation for removing declarations and, where
possible, hiding these entry points.
Additional non-API entry points added to those reported by ‘R CMD
check’: ‘IS_LONG_VEC’, ‘PRCODE’, ‘PRENV’, ‘PRVALUE’, ‘R_nchar’,
‘Rf_NonNullStringMatch’, ‘R_shallow_duplicate_attr’, ‘Rf_StringBlank’,
‘SET_TYPEOF’, ‘TRUELENGTH’, ‘XLENGTH_EX’, and ‘XTRUELENGTH’.
‘SET_TYPEOF’ now signals an error unless the old and new types have compatible memory structure and content. Use of ‘SET_TYPE’ in package C code should be avoided and may be deprecated in the near future. It is better to allocate an object of the desired type in the first place.
The set of LAPACK (double and complex) routines in headers ‘R_ext/Lapack.h’ and ‘R_ext/Applic.h’ has been extended, mostly to routines actually in use by packages.
Memory allocation messages now use the (non-SI notation) ‘"Mb"’, ‘"Gb"’ , ..., and ‘"Mbytes"’ strings as _arguments_ instead of as part of the (translatable format) string. This is one step for PR#18297; from Henrik Bengtsson.
Header ‘R_ext/Constants.h’ (included by ‘R.h’) now always includes header ‘float.h’ or ‘cfloat’ for constants such as ‘DBL_MAX’.
The deprecated and seemingly never-used S-compatibility macros ‘F77_COM’ and ‘F77_COMDECL’ have been removed from header ‘R_ext/RS.h’.
‘debug()’ and ‘debugonce(fun)’ now also accept a string ‘fun’ when it names an S4 generic, fixing PR#18822 thanks to Mikael Jagan.
‘debugonce(<S4-simple-body>, signature=*)’ now works correctly when “called twice”, fixing PR#18824 thanks to Mikael Jagan.