[Rcpp-devel] Rcpp example that crashes on 64 bit Windows

Dirk Eddelbuettel edd at debian.org
Thu Aug 11 14:43:46 CEST 2016


On 11 August 2016 at 06:28, Rajen Shah wrote:
| Hello,
| 
| I am having trouble debugging a package that appears to work fine on Mac
| operating systems but crashes on Unix and Windows.
| 
| I have found the following example that crashes on my Windows setup (session
| info copied below)
| 
| IntegerVector runif_int2() {
|   return wrap(floor(runif(1000000)));
| }
| 
| When this is called about 5-10 times in succession R crashes (e.g. with
| set.seed(1), but this doesn't seem to matter).
| 
| Any ideas about why this crashes would be much appreciated. To be clear, I am
| not looking for an alternative to the above code (which simply produces a
| vector of zeroes), but would like to know what aspects of this cause a crash so
| I know what code structures may be causing problems in the package I am
| creating. The code does not appear to crash on Mac and I have yet to try it on
| Unix.

i)  On my box it doesn't run (which is probably a bug)

R> library(Rcpp)
R> cppFunction("IntegerVector runif_int2() { return wrap(floor(runif(1000000))); }")
R> set.seed(1)
R> replicate(100, runif_int2())   ## should probably use loop here...
Error in runif_int2() : unimplemented type 'integer' in 'coerceToInteger'
R> 

ii) Your code is still "wrong" or less than ideal. You really are working
with doubles there, even after the floor() around runif.  So maybe return a
double vector?  Else assign explictly via a cast.

Dirk




| 
| Many thanks in advance,
| 
| Rajen
| 
| Session info:
| 
| R version 3.3.1 (2016-06-21)
| Platform: x86_64-w64-mingw32/x64 (64-bit)
| Running under: Windows >= 8 x64 (build 9200)
| 
| locale:
| [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252
|    LC_MONETARY=English_United States.1252
| [4] LC_NUMERIC=C                           LC_TIME=English_United States.1252  
|  
| 
| attached base packages:
| [1] stats     graphics  grDevices utils     datasets  methods   base     
| 
| loaded via a namespace (and not attached):
| [1] tools_3.3.1
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list