Skip to content

Commit 75f3824

Browse files
author
ripley
committed
move C-level API materical to a new section
git-svn-id: https://svn.r-project.org/R/trunk@87362 00db46b3-68df-0310-9c12-caf00c1e9a41
1 parent beb9631 commit 75f3824

File tree

1 file changed

+54
-48
lines changed

1 file changed

+54
-48
lines changed

doc/NEWS.Rd

Lines changed: 54 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,43 @@
180180
now signals an error if the new parent is not an environment or if
181181
the change would create a cycle in the parent chain.
182182

183-
\item The \sQuote{Writing R Extensions} \I{Texinfo} source now
183+
\item \code{SET_TYPEOF} now signals an error unless the old and
184+
new types have compatible memory structure and content. Use of
185+
\code{SET_TYPE} in package C code should be avoided and may be
186+
deprecated in the near future. It is better to allocate an object
187+
of the desired type in the first place.
188+
189+
\item The set of LAPACK (double and complex) routines in headers
190+
\file{R_ext/Lapack.h} and \file{R_ext/Applic.h} has been extended,
191+
mostly to routines actually in use by packages.
192+
193+
\item Memory allocation messages now use the (non-SI notation)
194+
\code{"Mb"}, \code{"Gb"} , \dots, and \code{"Mbytes"} strings as
195+
\emph{arguments} instead of as part of the (translatable format)
196+
string. This is one step for \PR{18297}; from \I{Henrik Bengtsson}.
197+
198+
\item Header \file{R_ext/Constants.h} (included by \file{R.h}) now
199+
always includes header \file{float.h} or \file{cfloat} for
200+
constants such as \code{DBL_MAX}.
201+
202+
\item Strict R headers are now the default. This removes the
203+
legacy definitions of \code{PI}, \code{Calloc}, \code{Realloc} and
204+
\code{Free}: use \code{M_PI}, \code{R_Calloc}, \code{R_Realloc} or
205+
\code{R_Free} instead.
206+
207+
\emph{Pro tem} \code{STRICT_R_HEADERS} is defined in header
208+
\file{R_ext/RS.h} if not already defined. This is not used in \R
209+
itself and will be removed before release.
210+
211+
\item The deprecated and seemingly never-used S-compatibility
212+
macros \code{F77_COM} and \code{F77_COMDECL} have been removed
213+
from header \file{R_ext/RS.h}.
214+
}
215+
}
216+
217+
\subsection{C-LEVEL API}{
218+
\itemize{
219+
\item The \sQuote{Writing R Extensions} \I{TexInfo} source now
184220
contains very experimental annotations for more clearly
185221
identifying the API status of C entry points. These annotations
186222
are used to produce indices for API, experimental API, and
@@ -189,11 +225,11 @@
189225

190226
Also now for Fortran-callable entry points which are part of the API.
191227

192-
\item \code{SET_TYPEOF} now signals an error unless the old and
193-
new types have compatible memory structure and content. Use of
194-
\code{SET_TYPE} in package C code should be avoided and may be
195-
deprecated in the near future. It is better to allocate an object
196-
of the proper type in the first place.
228+
\item \sQuote{Writing R Extensions} has a new section
229+
\sQuote{Moving into C API compliance} to help package authors move
230+
away from using non-API endpoints. This section will continue to
231+
be updated as work on clarifying and tightening the C API
232+
continues.
197233

198234
\item New API function \code{R_mkClosure}. This checks that its
199235
arguments are valid and should be used instead of
@@ -205,9 +241,10 @@
205241
closure components. The existing functions \code{R_ClosureExpr}
206242
and \code{R_BytecodeExpr} have also been added to the API.
207243

208-
\item New API function \code{R_ParentEnv}.
244+
\item New API function \code{R_ParentEnv} corresponding to \R's
245+
\code{parent.env()}.
209246
210-
\item Some non-API entry points have been added to those reported
247+
\item Further non-API entry points have been added to those reported
211248
by \command{R CMD check}: \code{COMPLEX0}, \code{ddfind},
212249
\code{DDVAL}, \code{ENSURE_NAMEDMAX}, \code{ENVFLAGS},
213250
\code{FRAME}, \code{HASHTAB}, \code{INTERNAL}, \code{IS_ASCII},
@@ -219,48 +256,17 @@
219256
in public header files will be removed in the near future, and
220257
they will be hidden where possible.
221258
222-
\item \sQuote{Writing R Extensions} has a new section
223-
\sQuote{Moving into C API compliance} to help package authors move
224-
away from using non-API endpoints. This section will continue to
225-
be updated as work on clarifying and tightening the C API
226-
continues.
259+
\item Some \command{R CMD check} \samp{NOTE}s on the use of
260+
non-API entry points have been upgraded to \samp{WARNING}s in
261+
preparation for removing declarations and, where possible, hiding
262+
these entry points.
227263
228-
\item Some \samp{NOTE}s for use of non-API entry points have been
229-
upgraded to \samp{WARNING}s in preparation for removing
230-
declarations and, where possible, hiding these entry points.
231-
232-
\item The set of LAPACK (double and complex) routines in API headers
233-
\file{R_ext/Lapack.h} and \file{R_ext/Applic.h} has been extended,
234-
mostly to routines actually in use from packages.
235-
236-
\item Additional non-API entry points added to those reported by
237-
\command{R CMD check}: \code{IS_LONG_VEC}, \code{PRCODE},
238-
\code{PRENV}, \code{PRVALUE}, \code{R_nchar},
264+
\item Additional non-API entry points have been added to those
265+
reported by \command{R CMD check}: \code{IS_LONG_VEC},
266+
\code{PRCODE}, \code{PRENV}, \code{PRVALUE}, \code{R_nchar},
239267
\code{Rf_NonNullStringMatch}, \code{R_shallow_duplicate_attr},
240-
\code{Rf_StringBlank},
241-
\code{SET_TYPEOF}, \code{TRUELENGTH}, \code{XLENGTH_EX},
242-
and \code{XTRUELENGTH}.
243-
244-
\item Memory allocation messages now use the (non-standard notation)
245-
\code{"Mb"}, \code{"Gb"} , \dots, and \code{"Mbytes"} strings as
246-
\emph{arguments} instead of as part of the (translatable format)
247-
string. This is one step for \PR{18297}; from \I{Henrik Bengtsson}.
248-
249-
\item Header \file{R_ext/Constants.h} (included by \file{R.h}) now
250-
always includes header \file{float.h} or \file{cfloat} for
251-
constants such as \code{DBL_MAX}
252-
253-
\item Strict R headers are now the default. This removes the
254-
legacy definitions of \code{PI}, \code{Calloc}, \code{Realloc} and
255-
\code{Free}: use \code{M_PI}, \code{R_Calloc}, \code{R_Realloc} or
256-
\code{R_Free} instead.
257-
258-
\emph{Pro tem} \code{STRICT_R_HEADERS} is defined in header
259-
\file{R_ext/RS.h} if not already defined. This is not used in \R
260-
itself and will be removed before release.
261-
262-
\item The deprecated S-compatibility macros \code{F77_COM} and
263-
\code{F77_COMDECL} have been removed from header \file{R_ext/RS.h}.
268+
\code{Rf_StringBlank}, \code{SET_TYPEOF}, \code{TRUELENGTH},
269+
\code{XLENGTH_EX}, and \code{XTRUELENGTH}.
264270
}
265271
}
266272

0 commit comments

Comments
 (0)