Do you have the same version of mingw as cran? If not , that would be a good test On May 22, 2016 3:49 PM, "François Rousset" < francois.rous...@umontpellier.fr> wrote:
> Hi, > > Le 22/05/2016 à 22:16, Dirk Eddelbuettel a écrit : > >> On 22 May 2016 at 09:13, Dirk Eddelbuettel wrote: >> | >> | Hi Francois, >> | >> | Thanks for taking the time to track this down and to create an example. >> | I just opened a GitHub issue for it: >> | https://github.com/RcppCore/RcppEigen/issues/34 >> | Feel free to comment there as well. >> >> In that thread on GH, Dan raises a good point: what actually is the >> supposed >> error message? What you have at the end of this long email isn't all that >> clear and _still indirect_: "Running examples in 'minimalTest-Ex.R' >> failed" >> >> For those of us without a windows 32bit machine at hand, can you (or >> anybody >> else) actually produce an error message? Preferably with compiler output? >> > I never obtained a more useful error message. I have been running the CRAN > checks routinely on my windows PC both for 32 and 64 bit builds without any > problem. Compilation itself does not generate any particular message. Below > are the screen logs on my PC: > > ========================================================= > ==> Rcmd.exe INSTALL --preclean --with-keep.source minimalTest > > * installing to library 'C:/Users/francois/Documents/R/win-library/3.4' > * installing *source* package 'minimalTest' ... > ** libs > > *** arch - i386 > "C:/Rtools/mingw_32/bin/"g++ -I"C:/PROGRA~1/R/R-devel/include" -DNDEBUG > -I"C:/Users/francois/Documents/R/win-library/3.4/Rcpp/include" > -I"C:/Users/francois/Documents/R/win-library/3.4/RcppEigen/include" > -I"d:/Compiler/gcc-4.9.3/local330/include" -O2 -Wall -mtune=core2 -c > RcppExports.cpp -o RcppExports.o > "C:/Rtools/mingw_32/bin/"g++ -I"C:/PROGRA~1/R/R-devel/include" -DNDEBUG > -I"C:/Users/francois/Documents/R/win-library/3.4/Rcpp/include" > -I"C:/Users/francois/Documents/R/win-library/3.4/RcppEigen/include" > -I"d:/Compiler/gcc-4.9.3/local330/include" -O2 -Wall -mtune=core2 -c > spaMM_linear.cpp -o spaMM_linear.o > C:/Rtools/mingw_32/bin/g++ -shared -s -static-libgcc -o minimalTest.dll > tmp.def RcppExports.o spaMM_linear.o > -Ld:/Compiler/gcc-4.9.3/local330/lib/i386 > -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-devel/bin/i386 -lR > installing to > C:/Users/francois/Documents/R/win-library/3.4/minimalTest/libs/i386 > > *** arch - x64 > "C:/Rtools/mingw_64/bin/"g++ -I"C:/PROGRA~1/R/R-devel/include" -DNDEBUG > -I"C:/Users/francois/Documents/R/win-library/3.4/Rcpp/include" > -I"C:/Users/francois/Documents/R/win-library/3.4/RcppEigen/include" > -I"d:/Compiler/gcc-4.9.3/local330/include" -O3 -c RcppExports.cpp -o > RcppExports.o > "C:/Rtools/mingw_64/bin/"g++ -I"C:/PROGRA~1/R/R-devel/include" -DNDEBUG > -I"C:/Users/francois/Documents/R/win-library/3.4/Rcpp/include" > -I"C:/Users/francois/Documents/R/win-library/3.4/RcppEigen/include" > -I"d:/Compiler/gcc-4.9.3/local330/include" -O3 -c spaMM_linear.cpp -o > spaMM_linear.o > C:/Rtools/mingw_64/bin/g++ -shared -s -static-libgcc -o minimalTest.dll > tmp.def RcppExports.o spaMM_linear.o > -Ld:/Compiler/gcc-4.9.3/local330/lib/x64 > -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-devel/bin/x64 -lR > installing to > C:/Users/francois/Documents/R/win-library/3.4/minimalTest/libs/x64 > ** R > ** byte-compile and prepare package for lazy loading > ** help > *** installing help indices > ** building package indices > ** testing if installed package can be loaded > *** arch - i386 > *** arch - x64 > * DONE (minimalTest) > ========================================================= > ==> Rcmd.exe build minimalTest > > * checking for file 'minimalTest/DESCRIPTION' ... OK > * preparing 'minimalTest': > * checking DESCRIPTION meta-information ... OK > * cleaning src > * checking for LF line-endings in source and make files > * checking for empty or unneeded directories > * building 'minimalTest_1.1.3.tar.gz' > > ==> Rcmd.exe check minimalTest_1.1.3.tar.gz > > * using log directory > 'C:/home/francois/travail/stats/CRANhell/minimalTest.Rcheck' > * using R Under development (unstable) (2016-05-14 r70617) > * using platform: x86_64-w64-mingw32 (64-bit) > * using session charset: ISO8859-1 > * checking for file 'minimalTest/DESCRIPTION' ... OK > * checking extension type ... Package > * this is package 'minimalTest' version '1.1.3' > * package encoding: UTF-8 > * checking package namespace information ... OK > * checking package dependencies ... OK > * checking if this is a source package ... OK > * checking if there is a namespace ... OK > * checking for executable files ... OK > * checking for hidden files and directories ... OK > * checking for portable file names ... OK > * checking whether package 'minimalTest' can be installed ... [21s] OK > * checking installed package size ... OK > * checking package directory ... OK > * checking DESCRIPTION meta-information ... OK > * checking top-level files ... OK > * checking for left-over files ... OK > * checking index information ... OK > * checking package subdirectories ... OK > * checking R files for non-ASCII characters ... OK > * checking R files for syntax errors ... OK > * loading checks for arch 'i386' > ** checking whether the package can be loaded ... OK > ** checking whether the package can be loaded with stated dependencies ... > OK > ** checking whether the package can be unloaded cleanly ... OK > ** checking whether the namespace can be loaded with stated dependencies > ... OK > ** checking whether the namespace can be unloaded cleanly ... OK > ** checking loading without being on the library search path ... OK > * loading checks for arch 'x64' > ** checking whether the package can be loaded ... OK > ** checking whether the package can be loaded with stated dependencies ... > OK > ** checking whether the package can be unloaded cleanly ... OK > ** checking whether the namespace can be loaded with stated dependencies > ... OK > ** checking whether the namespace can be unloaded cleanly ... OK > ** checking loading without being on the library search path ... OK > * checking dependencies in R code ... OK > * checking S3 generic/method consistency ... OK > * checking replacement functions ... OK > * checking foreign function calls ... OK > * checking R code for possible problems ... OK > * checking Rd files ... OK > * checking Rd metadata ... OK > * checking Rd cross-references ... OK > * checking for missing documentation entries ... OK > * checking for code/documentation mismatches ... OK > * checking Rd \usage sections ... OK > * checking Rd contents ... OK > * checking for unstated dependencies in examples ... OK > * checking line endings in C/C++/Fortran sources/headers ... OK > * checking compiled code ... OK > * checking examples ... > ** running examples for arch 'i386' ... [0s] OK > ** running examples for arch 'x64' ... [0s] OK > * checking PDF version of manual ... OK > * DONE > Status: OK > > R CMD check succeeded > =============================================== > >> Dirk >> | On 22 May 2016 at 12:09, François Rousset wrote: >> | | Hi, >> | | >> | | RcppEigen no longer passes the CRAN checks for Windows i386 >> architecture: >> | | https://cran.r-project.org/web/checks/check_results_RcppEigen.html >> | | This problem seems to have appeared in the middle of last month, >> | | presumably following some change on CRAN. >> | | >> | | A similar problem appeared at the same time in some packages I >> maintain, >> | | which link to RcppEigen. For one package, execution stops on a line of >> | | the form >> | | MatrixXd >> | | >> someMatrix(MatrixXd(nb,nb).setZero().selfadjointView<Lower>().rankUpdate( >> | | anotherMatrix )); >> | | I have reduced the code causing the error to a small reproducible >> | | example, and since I can reproduce the error only on the win-builder >> | | service on CRAN, not on my Windows PC, this example takes the form of >> a >> | | package 'minimalTest'. It can be downloaded from >> | | http://kimura.univ-montp2.fr/~rousset/minimalTest_1.1.3.tar.gz. >> | | >> | | I hope the following may help in correcting RcppEigen (as I think I >> can >> | | circumvent the problem in my package), but I am also curious whether I >> | | am missing some obvious error in my code. >> | | >> | | In this small example, the checks fail (on Windows i386 only; the >> | | relevant part of the check log is pasted at the end of this message) >> | | when executing >> | | >> | | mini(14) >> | | >> | | where the mini() function is >> | | >> | | // [[Rcpp::export]] >> | | int mini( int nb ){ >> | | MatrixXd swZ(nb,nb); >> | | swZ.setZero(); >> | | Rcout <<"Trivial code: >> | | swZ.selfadjointView<Lower>().rankUpdate(swZ):"<<std::endl; >> | | swZ.selfadjointView<Lower>().rankUpdate(swZ); >> | | Rcout << "after minimal test. "<<std::endl; // not printed when >> error >> | | occurs >> | | return(0); >> | | } >> | | >> | | However, the problem occurs only when two other functions, derived >> from >> | | more meaningful functions in the original package, are included in the >> | | sources (yet are not called by the tests): >> | | >> | | // [[Rcpp::export]] >> | | List unusedFn1( SEXP XX ) { >> | | const MappedSparseMatrix<double> X(as<MappedSparseMatrix<double> >> >(XX)); >> | | SparseQR<SparseMatrix<double, Eigen::ColMajor>, >> | | Eigen::COLAMDOrdering<int> > spQR(X); >> | | SparseMatrix<double> Q_ap(5,5); >> | | Q_ap.setZero(); >> | | List out = List::create(Named("Q_ap") = Q_ap); >> | | return(out); >> | | } >> | | >> | | // [[Rcpp::export]] >> | | SEXP unusedFn2( SEXP ZZ ) { >> | | const Map<MatrixXd> Z(as<Map<MatrixXd> >(ZZ)); >> | | int c(Z.cols()); >> | | if (c==0) return(wrap(MatrixXd(0,0))); >> | | MatrixXd bidon(MatrixXd(c,c).setZero()); >> | | MatrixXd >> | | >> swZ(MatrixXd(c,c).setZero().selfadjointView<Lower>().rankUpdate(bidon.transpose())); >> | | return(wrap(swZ)); >> | | } >> | | >> | | The problem does not occur if either of these two functions is removed >> | | from the sources. I found that I could resolve the problem in my >> | | original package by removing any Eigen::SparseMatrix-related code from >> | | it. Much as in the checks for the small example package, that code was >> | | not called in the checks for my original package. >> | | >> | | The small example package does not contain other C++ or R functions >> | | (except those generated automatically by Rcpp). >> | | >> | | Can anyone make sense of this? >> | >> | The fact that inclusion of other code, which is not called and should be >> | optimized away, is involved is really, really weird. >> | >> | All I can think of so far is maybe some macro going haywire? >> | >> | Dirk >> | >> | | Thanks in advance, >> | | >> | | F.R. >> | | >> | | ============================================== >> | | ** running examples for arch 'i386' ... ERROR >> | | Running examples in 'minimalTest-Ex.R' failed >> | | The error most likely occurred in: >> | | >> | | > base::assign(".ptime", proc.time(), pos = "CheckExEnv") >> | | > ### Name: mini >> | | > ### Title: Test RcppEigen code >> | | > ### Aliases: mini unusedFn1 unusedFn2 >> | | > >> | | > ### ** Examples >> | | > >> | | > sessionInfo() >> | | R Under development (unstable) (2016-05-21 r70655) >> | | Platform: i386-w64-mingw32/i386 (32-bit) >> | | Running under: Windows Server 2008 x64 (build 6002) Service Pack 2 >> | | >> | | locale: >> | | [1] LC_COLLATE=C LC_CTYPE=German_Germany.1252 >> | | [3] LC_MONETARY=C LC_NUMERIC=C >> | | [5] LC_TIME=C >> | | >> | | attached base packages: >> | | [1] stats graphics grDevices utils datasets methods base >> | | >> | | other attached packages: >> | | [1] minimalTest_1.1.3 >> | | >> | | loaded via a namespace (and not attached): >> | | [1] Rcpp_0.12.5 >> | | > mini(14) >> | | Trivial code: swZ.selfadjointView<Lower>().rankUpdate(swZ): >> | | ** running examples for arch 'x64' ... [1s] OK >> | | * checking PDF version of manual ... OK >> | | * DONE >> | | =============================================== >> | | _______________________________________________ >> | | 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 >> | >> | -- >> | http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org >> | _______________________________________________ >> | 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 >
_______________________________________________ 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