[Rd] From .Fortran to .Call?

Ivan Krylov kry|ov@r00t @end|ng |rom gm@||@com
Sat Dec 19 18:53:13 CET 2020

On Sat, 19 Dec 2020 17:04:59 +0000
"Koenker, Roger W" <rkoenker using illinois.edu> wrote:

> There are comments in various places, including R-extensions §5.4
> suggesting that .Fortran is (nearly) deprecated and hinting that use
> of .Call is more efficient and now preferred for packages.

My understanding of §5.4 and 5.5 is that explicit routine registration
is what's important for efficiency, and your package already does that
(i.e. calls R_registerRoutines()). The only two things left to add
would be types (REALSXP/INTSXP/...) and styles (R_ARG_IN,
R_ARG_OUT/...) of the arguments of each subroutine.

Switching to .Call makes sense if you want to change the interface of
your native subroutines to accept arbitrary heavily structured SEXPs
(and switching to .External could be useful if you wanted to play with
evaluation of the arguments).

Best regards,

P.S. I think that this question is better asked in the
r-package-devel using r-project.org mailing list instead of R-devel.

More information about the R-devel mailing list