[Rd] question on why Rigroup package moved to Archive on CRAN
Kevin Hendricks
kevin.hendricks at sympatico.ca
Sun Mar 10 02:43:36 CET 2013
Hi Dan,
In case this catches anyone else ...
FWIW, I found the issue ... in my Rinit.c, my package uses the .External call which actually takes one SEXP which points to a "varargs-like" list.
Under 2.15.X and earlier, I thought the proper entry for an .External call was as below since it only does take one pointer as an argument:
#include "Rigroup.h"
/* Automate using sed or something. */
#if _MSC_VER >= 1000
__declspec(dllexport)
#endif
static const R_ExternalMethodDef R_ExtDef[] = {
{"igroupFuns", (DL_FUNC)&igroupFuns, 1},
{NULL, NULL, 0},
};
void R_init_Rigroup(DllInfo *info)
{
R_registerRoutines(info,NULL,NULL,NULL,R_ExtDef);
}
But now according to the latest online docs on building your own package it says:
"For routines with a variable number of arguments invoked viathe .External interface, one specifies -1 for the number of arguments which tells R not to check the actual number passed. Note that the number of arguments passed to .External are not currently checked but they will be in R 3.0.0."
So I need to change my Rinit.c to change the "1" to a "-1" and that error should go away.
Thanks again for all your help with this. I will update my package and resubmit it once version 3.0 gets released and I get a chance to verify that this does in fact fix the problem.
Kevin
More information about the R-devel
mailing list