Calling function with proto in Rinternals.h

Peter Dalgaard BSA
09 Nov 2002 13:05:58 +0100

"Timothy H. Keitt" <> writes:

> (Tried this query on r-help with no luck, maybe someone here can help?)
> I would like to call the 'RFinalizerEx' function that appears in
> Rinternals.h using ".Call". It worked for me in the past, but now I get
> an error message something like: 'call function name not in call table'.
> I'm using the 1.6.1 rpm from CRAN. Anyone know what's going on? Thanks.

I don't see a function of that name in there?

$ find BUILD/include -name *.[ch] | xargs grep FinalizerEx
BUILD/include/Rinternals.h:void R_RegisterFinalizerEx(SEXP s,
 SEXP fun, Rboolean onexit);
BUILD/include/Rinternals.h:void R_RegisterCFinalizerEx(SEXP s,
 R_CFinalizer_t fun, Rboolean onexit);

However, you can't find those with is.loaded either. I'm getting rusty
on the linker issues, but I don't think you can expect to call just
any function in the C level interface using .Call. (Perhaps we need
another section in "Writing R Extensions"? -- I couldn't find a clear
indication of what, if any, functions are getting exported to .C and
friends from the main binary and by which mechanism.)

Notice the existence of reg.finalizer(), which may be the
functionality you were looking for in the first place.

   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (             FAX: (+45) 35327907
r-devel mailing list -- Read
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: