As Sean O'Riordain correctly pointed out, I used the install_github command improperly. Doing
devtools::install_github("RcppCore/Rcpp") works and the big matrix is allocated correctly. Thanks for the help and for the great work you are doing! Ale On Sun, Nov 1, 2015 at 6:30 PM, Alessandro Mammana <mamm...@molgen.mpg.de> wrote: > It's great that R and Rcpp have support for long vectors! that makes > my life so much easier! > > So I installed Rcpp version 0.12.1 and the error is still there (see > end of the email). If I interpret the commit history correctly, the > commit that fixes the bug was done shortly after the 0.12.1 release > right? Is there an easy way of getting the latest version of the > master branch? > I tried: > > devtools::install_github("https://github.com/RcppCore/Rcpp") > > But I got: > > Error in username %||% getOption("github.user") %||% stop("Unknown > username.") : > Unknown username. > >> sourceCpp("makeMat.cpp") >> makeMat(18, 136633572) > Error in .Primitive(".Call")(<pointer: 0x7f57d1c73ee0>, nrow, ncol) : > negative length vectors are not allowed >> sesssionInfo() > Error: could not find function "sesssionInfo" >> sessionInfo() > R version 3.2.0 (2015-04-16) > Platform: x86_64-unknown-linux-gnu (64-bit) > Running under: MarIuX64 2.0 GNU/Linux 2010-2012 > > locale: > [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=C > [4] LC_COLLATE=C LC_MONETARY=C LC_MESSAGES=C > [7] LC_PAPER=C LC_NAME=C LC_ADDRESS=C > [10] LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] Rcpp_0.12.1 > > On Sun, Nov 1, 2015 at 3:37 PM, Florian Plaza Oñate > <florian.pl...@jouy.inra.fr> wrote: >> The bug is probably fixed by this commit: >> https://github.com/RcppCore/Rcpp/commit/eb069bf5c20aaa4d38e0ca2897bf04e956cb8c4c >> >> >> Le 31/10/2015 20:08, Alessandro Mammana a écrit : >>> >>> Dear All, >>> When creating a large matrix with the follwing code: >>> >>> #include <Rcpp.h> >>> // [[Rcpp::export]] >>> Rcpp::IntegerMatrix makeMat(int nrow, int ncol){ >>> Rcpp::IntegerMatrix mat(nrow, ncol); >>> return mat; >>> } >>> >>> I get the error: >>> >>> Error in .Primitive(".Call")(<pointer: 0x7f86936d3ea0>, nrow, ncol) : >>> negative length vectors are not allowed >>> >>> Where nrow*ncol is a very large number (about 3*10^9). I understand >>> that such a number cannot be represented by an int type, but this does >>> not seem to be a problem when in R I do: >>> >>>> mat <- matrix(0, nrow=nrow, ncol=ncol) >>> >>> >>> Questions: >>> 1. why is the behaviour different between R and Rcpp in the allocation >>> of a matrix? >>> 2. In a 64 bits machine, what is actually the maximum allowed length >>> of a vector/matrix? does the length of a vector/matrix need to be >>> represented by an int? >>> >>> Thanks a lot and best regards, >>> Alessandro >>> >> > > > > -- > Alessandro Mammana, PhD Student > Max Planck Institute for Molecular Genetics > Ihnestraße 63-73 > D-14195 Berlin, Germany -- Alessandro Mammana, PhD Student Max Planck Institute for Molecular Genetics Ihnestraße 63-73 D-14195 Berlin, Germany _______________________________________________ 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