From avraham.adler at gmail.com  Tue Feb 14 18:28:27 2017
From: avraham.adler at gmail.com (Avraham Adler)
Date: Tue, 14 Feb 2017 12:28:27 -0500
Subject: [Rd] Registration of native routines
In-Reply-To: <1514271c-2d83-b373-fdb7-7052c3170112@stats.ox.ac.uk>
References: <1514271c-2d83-b373-fdb7-7052c3170112@stats.ox.ac.uk>
Message-ID: <CAL6gwnJKgkBwXLf2E=Y5SXEyXuPbNedmocSAitn4dgz1Pha5_w@mail.gmail.com>

On Tue, Feb 14, 2017 at 11:25 AM, Prof Brian Ripley
<ripley at stats.ox.ac.uk> wrote:
> Registration of 'native routines' (entry points in compiled code loaded into
> R) has been available for over 14 years, but few packages make use of it
> (less than 10% of those on CRAN with compiled code).
>
> Registration has similar benefits to name spaces in R code:
>
> - it ensures that the routines used by .C, .Call etc are those in your
> package (without needing a PACKAGE argument).
>
> - it avoids polluting the search space for native routines with those from
> your package.
>
> - it checks the number of arguments passed to .Call/.External, and the
> number and optionally the type for .C/.Fortran.
>
> - it finds native routines faster, especially if 10s of name spaces are
> loaded.
>
> Kurt Hornik and I have written a tool to make adding registration much
> easier.  From NEWS in R-devel
>
>     ? Package tools has a new function
>       package_native_routine_registration_skeleton() to assist adding
>       native-routine registration to a package.  See its help and ?5.4.1
>       of ?Writing R Extensions? for how to use it.  (At the time it was
>       added it successfully automated adding registration to over 90%
>       of CRAN packages which lacked it.  Many of the failures were
>       newly-detected bugs in the packages, e.g. 50 packages called
>       entry points with varying numbers of arguments and 65 packages
>       called entry points not in the package.)

Hello, Dr., Ripley.

This is fantastic. Is there a way to install this functionality into
an existing 3.3.2 installation, or is it exclusive to
R-deve;/R-3.4-to-be?

Thank you,

Avi



[Rd] Registration of native routines
Avraham Adler