[Rd] Platform dependent native routine registration
Dirk Eddelbuettel
edd at debian.org
Tue Mar 7 15:51:03 CET 2017
On 7 March 2017 at 14:47, Gábor Csárdi wrote:
| On Tue, Mar 7, 2017 at 2:45 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
| [...]
| >
| > Could you resort to preprocessor conditioning to only compile the code
| > relevant for a particular platform while hiding away the inapplicable parts?
|
| Yes, I do exactly that. The problem is that the R code still has
|
| .Call(c_non_existent_function_on_this_platform, ...)
|
| and R CMD check picks up on that.
Silly me. Of course -- R code does not see the preprocessor.
You could move up one level then and ... do it via configure, ie have
'hidden' files osx-init.c, lnx-init.c, win-init.c and copy in the one you
need on a given platform.
| But I just found that using string literals in .Call() works just
| fine. Hopefully
| this will still be allowed in the long run:
|
| .Call("c_non_existent_function_on_this_platform", ...)
So you are adjusting the literals on the fly at compilation time?
Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the R-devel
mailing list