Ditto Kevin's comment. I segfault no matter what. > sessionInfo() R version 2.15.3 (2013-03-01) Platform: x86_64-apple-darwin12.3.0/x86_64 (64-bit)
locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base ------------------------------------------------------------------------- J.P. Olmsted 029 Corwin (Office) 130 Corwin Hall (Mail) Politics Department Princeton University Princeton, NJ 08544 t: 609.258.6202 f: 609.258.1110 jolms...@princeton.edu http://about.me/olmjo ------------------------------------------------------------------------- On Thu, May 16, 2013 at 12:38 PM, Kevin Ushey <kevinus...@gmail.com> wrote: > FWIW, I can reproduce the segfault with this example, whether running R as > vanilla or not. > > > sessionInfo() > R version 3.0.0 (2013-04-03) > Platform: x86_64-apple-darwin10.8.0 (64-bit) > > locale: > [1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] Rcpp_0.10.3 > > -Kevin > > > On Thu, May 16, 2013 at 9:01 AM, Matteo Fasiolo > <matteo.fasi...@gmail.com>wrote: > >> Thanks for your reply Dirk. >> >> Maybe I have found something. >> Hopefully this is reproducible and simple enough: >> >> /* >> * C++ file "b.cpp" >> * Just copying the input matrix into A and returning A. >> */ >> >> #include <Rcpp.h> >> >> using namespace Rcpp; >> >> // [[Rcpp::export]] >> NumericMatrix myFun(NumericMatrix input, int n){ >> >> NumericMatrix A(n, n); >> >> for(int Row = 0; Row < n; Row++) >> for(int Col = 0; Col < n; Col++) >> { >> A(Row, Col) = input(Row, Col); >> } >> >> return A; >> } >> >> >> /////////////////////////////////////////// >> >> Then I open a terminal: >> >> teo@oracolo:~$ R --vanilla >> >> R version 3.0.0 (2013-04-03) -- "Masked Marvel" >> Copyright (C) 2013 The R Foundation for Statistical Computing >> Platform: x86_64-pc-linux-gnu (64-bit) >> [........] >> Type 'q()' to quit R. >> >> > library(Rcpp) >> > sourceCpp("~/Desktop/b.cpp") >> > >> > #I run it 10 times and everything is fine. >> > n = 10 >> > x <- 1:n^2 >> > >> > for(ii in 1:10) >> + { >> + means <- matrix(x, n, n) >> + res <- myFun(means, n) >> + a <- res[1, 1] >> + } >> > res >> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] >> [1,] 1 11 21 31 41 51 61 71 81 91 >> [2,] 2 12 22 32 42 52 62 72 82 92 >> [3,] 3 13 23 33 43 53 63 73 83 93 >> [4,] 4 14 24 34 44 54 64 74 84 94 >> [5,] 5 15 25 35 45 55 65 75 85 95 >> [6,] 6 16 26 36 46 56 66 76 86 96 >> [7,] 7 17 27 37 47 57 67 77 87 97 >> [8,] 8 18 28 38 48 58 68 78 88 98 >> [9,] 9 19 29 39 49 59 69 79 89 99 >> [10,] 10 20 30 40 50 60 70 80 90 100 >> > >> > >> > #I run it 10^6 times and everything and I get a segfault. >> > n = 10 >> > x <- 1:n^2 >> > >> > for(ii in 1:10^6) >> + { >> + means <- matrix(x, n, n) >> + res <- myFun(means, n) >> + a <- res[1, 1] >> + } >> >> *** caught segfault *** >> address (nil), cause 'unknown' >> >> Traceback: >> 1: res[1, 1] >> >> >> If I run the same code without the --vanilla option it works fine! >> Certainly you know why using --vanilla is a problem here, honestly I've >> always used that option >> because I don't want R to ask me if I want to save the working >> environment when I quit. >> As you said the problem was coming from R (actually my improper use of R) >> and hopefully this is it! >> >> >> >> >> >> On Thu, May 16, 2013 at 3:42 PM, Dirk Eddelbuettel <e...@debian.org>wrote: >> >>> >>> Matteo, >>> >>> Can you provide a single, self-contained example and calling sequence >>> that >>> leads to reproducible crashes? >>> >>> That would be a bug. And we try to address it in Rcpp. >>> >>> As for your "issues" with RNGScope, I'd recommend that you write a C(++) >>> function called from R __without using Rcpp__ and I very confident that >>> you >>> would the exact same issue. Meaning that that all comes form R, which in >>> itself is a pretty big system with numerous temp. allocations. But >>> generally >>> no known bug. So please learn more about R and valgrind -- I suspect >>> that >>> you are simply getting confused by the copious and somewhat technical >>> output >>> produced by valgrind when running R. >>> >>> Dirk >>> >>> -- >>> Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com >>> >> >> >> _______________________________________________ >> Rcpp-devel mailing list >> Rcpp-devel@lists.r-forge.r-project.org >> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel >> > > > > -- > -Kevin > > _______________________________________________ > Rcpp-devel mailing list > Rcpp-devel@lists.r-forge.r-project.org > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel >
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel