[Rd] getConnection is not found in R depending on the Linux flavour (RedHat or Debian) - dyn.load problems

Prof Brian Ripley ripley at stats.ox.ac.uk
Sat Apr 7 09:52:59 CEST 2007


getConnection is not part of the API, so it is not intended to be visible 
to your code.  The code reads

/* internal, not the same as R function getConnection */
attribute_hidden
Rconnection getConnection(int n)

and 'internal' and 'attribute_hidden' should have been enough of a clue! 
On many OSes it is noticeably more efficient not to export unneeded entry 
points from DLLs, so we do not do so where the OS supplies (simple) 
facilities to do so.

There are severe warnings in 'Writing R Extensions' about making use of 
entry points not in the API.

There are medium-term plans to change the internal structure of 
connections to make use of features not in R when they were designed (weak 
references and finalizers), so this will definitely remain non-API.

On Fri, 6 Apr 2007, Simon Penel wrote:

>
> Hello R developers,
>
> I am working on the "seqinr" package and I encounter a tricky problem 
> using a C function.
>
> We defined a C fonction called   "getzlibsock" which is dedicated to
> compressed
> socket connections. This function is using the R internal  C function
> called "getConnection(int)" in order to get information about the socket
> previously opened with the dedicated R functions.
>
> The program works fine on several platform:
> -Unix (SunOS),
> -MacOS and
> -Linux (some).
> However, on Linux, an error occurs  depending on the installation.

[...]


-- 
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