Re: [R] Cannot call R's ISNAN() from a C code in >1.7 versions.

About this list Date view Thread view Subject view Author view Attachment view

From: Paul Y. Peng (ypeng@math.mun.ca)
Date: Tue 25 May 2004 - 04:46:49 EST


Message-id: <40B24319.5070906@math.mun.ca>

Prof Brian Ripley wrote:
> First, there are no versions 1.7, 1.8 and 1.9.

Sorry for my misuse of the version numbers.

> Was your version of R compiled against MSVC++ 6.0? The binary on CRAN was
> not, and binaries for different versions of R were compiled with different
> versions of MinGW. The entry point isnan is part of the statically linked
> runtime on modern MinGW.

I used the binary on CRAN.

> MSVC++ 6.0 does supply _isnan (as it really should as it is part of the
> C99 ISO standard), and you need to link against it appropriately. Hint:
> it may have an extra underline, since it seems it is known to C as _isnan.
> You may need to add
>
> #undef ISNAN
> #define ISNAN(x) _isnan(x)

Many thanks for this suggestion. It works, as always. The extra
underline is required.

> We don't support adding extensions to R using a different compiler to the
> one used to build R. Changes already made for future releases of R will
> make this less likely to work in R 2.0.x.

I wish that the R API entry points documented in "Writing R Extensions"
be supported in the future versions of R, because it will make programs
built with R more portable than directly using compiler-specific
functions, such as testing and generating the IEEE 754 special values.
The existing entry points have saved me trouble to chase these values
whenever I moved to an environment with a different compiler.

Thank you Brian for your help.
Paul.

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


About this list Date view Thread view Subject view Author view Attachment view

This archive was generated by hypermail 2.1.3 : Mon 31 May 2004 - 23:05:12 EST