[R-pkg-devel] Use of ‘R_InputHandlers’

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Wed Jul 10 14:54:30 CEST 2024


An update to the rgl package was rejected with this note:

> * checking compiled code ... NOTE
> File ‘rgl/libs/rgl.so’:
>   Found non-API call to R: ‘R_InputHandlers’
> 
> Compiled code should not call non-API entry points in R.
> 
> See ‘Writing portable packages’ in the ‘Writing R Extensions’ manual,
> and section ‘Moving into C API compliance’ for issues with the use of
> non-API entry points.

See 
<https://win-builder.r-project.org/incoming_pretest/rgl_1.3.10_20240707_165632/Debian/00check.log> 
for more info.

`R_InputHandlers` isn't actually a function, it's a linked list of 
structures holding input handlers.  rgl links into it to handle mouse 
and keyboard interaction when it is displaying a window in X11.

`R_InputHandlers` is declared in R in src/include/R_ext/eventloop.h, 
where comments state

> /*
>    For use by alternative front-ends and packages which need to share
>    the R event loop (on Unix-alikes).
> 
>    Not part of the API and subject to change without notice.
> 
>    NB: HAVE_SYS_SELECT_H should be checked and defined before this is
>    included.
>  */

WRE has a discussion of the issue in 8.1.4, "meshing event loops".  It 
refers to comments in src/unix/sys-std.c, but I'm not sure which comments.

rgl references it from this code:

https://github.com/dmurdoch/rgl/blob/fbedc326e291c3ec28a9ccac7d030f04b05edfa3/src/x11lib.cpp#L53-L72

Can anyone tell me whether I can fix this?

Duncan Murdoch



More information about the R-package-devel mailing list