[Rd] Rf_errorcall - translate to Pascal

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Feb 16 13:58:37 CET 2006


On Thu, 16 Feb 2006, Hans-Peter wrote:

> 2006/2/16, Hans-Peter <gchappi at gmail.com>:
>>     [Rf_errorcall is not declared here, would be something like:
>>      void Rf_errorcall(SEXP, const char *,...)]
>>
>> ... would it be possible to pull the Rf_errorcall
>> declaration to the error.h file?
>
> error.h doesn't look like a good place as the SEXP type is not known
> there. Sorry, I am quite unfluent with this c headers...

Yes, and their names are case-sensitive too.  So it is intentional that 
errorcall is not in R_Ext/Error.h.  Since it is needed for writing 
front-ends and now mentioned in Writing R Extensions it should probably be 
in Rinternals.h.  But note that is basically the only way that a non-core 
programmer is going to be writing code that gets passed 'call' objects.

> As a sidenote: in Defn.h are two macrogroups:
>
>  /* Promise Access Macros */
>  /* Hashing Macros */
>
> which aren't declared in Rinternals.h. This is different from e.g. the groups:
>
>  /* General Cons Cell Attributes */
>  /* Primitive Access Macros */
>  ...

This is intentional.  Both Defn.h and Rinternals.h have these in a section 
protected by

#ifdef USE_RINTERNALS
#endif

and that section should not be regarded as public.  There _are_ 
(mis-titled) sections

/* Promise Access Macros */
/* Hashing Macros */

in Rinternals.h, and those are the function equivalents defined for 
external use.

All that is public is what is documented in `Writing R Extensions': other 
things are in the header files but you should not assume that they will 
even be exported in future versions of R.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list