darn. i R CMD check'd --as-cran under R-devel and also loaded the minimal package, sparseList_1.1, the example and test run without issue sparseList_1.1.tar.gz <https://docs.google.com/file/d/0B0DIDcaf6yMwZDRDZUNLd0lBbmZ3OHlHSzIyeV9hZ3RxZ0xr/edit?usp=drive_web> . So I'm stumped why the test is failing for you and not me. I attach the file, again, just in I included the wrong version. Sorry I wasn't able to get you a link that you could wget. I work in the U.S. federal system and am limited by security protocols in what I'm able to do. Thanks for being patient.
Since I include the data object (which requires both the spam and Matrix packages), I can/will remove the dependencies on those packages. Since I have an example written into the documentation that runs on check, I will remove the test I added (and, therefore, testthat). I will do this in the next day or so, assuming what I attached still doesn't work. Stepping back, the code works in both the minimal package and growfunctions - it inputs a list of dgCMatrix objects, assigns the elements to a field<sp_mat> object and then writes it back out to a List object. The elements of the outputted list object at the R layer are, indeed, dgCMatrix objects. So 'yes', the script you referenced does create a valid dgCMatrix object and i've verified such. As an aside, the C++ file embeds an R script that Kevin asked for if that is useful. terrance. On Sat, Aug 9, 2014 at 7:14 PM, Dirk Eddelbuettel <[email protected]> wrote: > > Terrance, > > On 9 August 2014 at 18:23, terrance savitsky wrote: > | Hi Dirk, The revised version of this toy package, sparseList, does > exactly what > | you request. I've included a data set that is of the same construction > (of > | dgCMatrix elements from R::Matrix wrapped into a list object) and have > added > | both an example and test that call this data. The package is minimal, > with a > | simple .cpp function (that reads in the list of dgCMatrix objects and > | writes the elements to an arma::field<arma:sp_mat>) to isolate the > source of > | the error in growfunctions. > | > | I attach the tarball, which you may also access through the following > URL: > | > | https://drive.google.com/file/d/ > | 0B0DIDcaf6yMwZDRDZUNLd0lBbmZ3OHlHSzIyeV9hZ3RxZ0xr/edit?usp=sharing > > Did not work via wget, required a webpage visit and download. > > Package has extraneous dependencies (you do not need testthat to call a > function). > > Moreover, testthat seems to pivot over to /usr/bin/R rather than Rdevel > (not > your issues, but you're not helping as it is not a minimally reproducible > example). > > You also still import / depend on spam. Why? > > | I hope this gives you what you need and thanks very much for looking > into this. > > I does blow up when I do > > > library(sparseList) > Loading required package: Rcpp > > data(C) > > sparse_list <- manip_sparseList(C) > > and it similarly blows up when R CMD check runs the examples. > > > > But the question is whether your code which does > > ## ... > > ## convert to dcgmatrices (under Matrix package) required for sparse > representation > ## as sp_mats in RcppArmadillo > C[[k]] <- as(C[[k]], "dgCMatrix") > > > creates a valid dgCMatrix. I do not know. > > RcppArmadillo is used by 77 packages on CRAN. Prof Ripley checks all of > those via valgrind and ASAN. Only yours threw an error. > > I am not yet convinced this is our issue. I could of course be wrong. > > Anyway, I won't be able to look at this for few days. Moreover, I do not > use > sparse matrices -- so you may need to rely on someone else to debug this > for > you, or do it yourself. > > Sorry, Dirk > > | > | Terrance > | > | [icon_10_ge] sparseList_1.1.tar.gz > | > | > | > | On Sat, Aug 9, 2014 at 5:25 PM, Dirk Eddelbuettel <[email protected]> > wrote: > | > | > | Hi Terrance, > | > | On 9 August 2014 at 16:58, terrance savitsky wrote: > | | Hi Guys, > | | > | | I embed a data list object of dgCMatrix elements (produced in the > same > | manner > | | as used in package, growfunctions) in an .RData file located in the > | sparseList > | | \data folder. I'm not sure what script and data ASAN uses to > conduct the > | memory > | | check. I'm guessing the package examples are run. So I added an > example > | that > | | loads the .RData object embedded with this toy package, > sparseList. > | Please > | | pardon me if my understanding is off. I also embedd an R script > in the > | single > | > | It's not complicated. > | > | 'R CMD check' needs a code path that does this, which can be as > simple as > | an > | example section in the manual page (mayne you meant this by 'added an > | example'). Or something tickled via a test script in tests/. > | > | You submitted a CRAN package. It has testable code. It failed. We > now need > | a > | _minimal reproducible example_, ideally without a long tail of > | dependencies, > | to examine it. > | > | | toy package .cpp file that generates the same data (list object of > | dgCMatrix > | | objects created using R::Matrix) and runs an example. > | | > | | Terrance > | | > | | > | | [icon_10_ge] sparseList_1.1.tar.gz > | > | Can you update to a version which loads data and passes down to the > code > | which was seen to tickle this? > | > | And then place it somewhere where we can get it with a simple wget > or curl > | call. > | > | Thanks, Dirk > | > | > | | > | | On Sat, Aug 9, 2014 at 3:02 PM, Kevin Ushey <[email protected]> > wrote: > | | > | | Hi Terrance, > | | > | | Can you please try to construct a reproducible example based > on the > | | (tagged, potentially offending) line of code -- that is, > | | > | | #4 0x7f79b6541df0 in IGMRFDPMIX > | | /data/gannet/ripley/R/packages/tests-49x/growfunctions/src/ > | dpmix.cpp:63 > | | > | | which has the line: > | | > | | C(k,0) = as<sp_mat>(Cr[k]); > | | > | | Can you construct a small, reproducible example using objects > 'C', > | | 'Cr' as you construct in the package, and then see if that > gives a > | | similar error? > | | > | | Preferably you can construct this using Rcpp Attributes, so an > | example > | | of the form > | | > | | // [[Rcpp::depends(RcppArmadillo)]] > | | > | | #include <RcppArmadillo.h> > | | using namespace Rcpp; > | | > | | // [[Rcpp::export]] > | | SEXP test(SEXP C, SEXP Cr) { > | | ... use C, Cr as above... > | | } > | | > | | /*** R > | | ... construct C, Cr on the R side as necessary ... > | | */ > | | > | | That way, we can 'sourceCpp' it and immediately investigate. > | | > | | Thanks, > | | Kevin > | | > | | On Sat, Aug 9, 2014 at 11:31 AM, terrance savitsky < > [email protected]> > | | wrote: > | | > Dirk, Thanks much for taking the time to investigate this > issue. > | I've > | | > created a package (sparseList_1.0.tar.gz) with a minimal > example of > | what > | | > writing from a list of dgCMatrix matrices at the R layer to > a field > | | <sp_mat>. > | | > I had intended to install boot2docker and use load your > R-devel > | set-up to > | | a > | | > container so that I could replicate the ASAN-generated > error. Its > | taking > | | me > | | > longer than I'd hoped, however, so - for now - I include the > | package > | | tarball > | | > with the minimal example and also an R script > | (sparse_list_to_field.R) so > | | > that you may see what the function does. > | | > Terrance > | | > sparse_list_to_field.R > | | > > | | > sparseList_1.0.tar.gz > | | > > | | > > | | > > | | > On Sat, Aug 9, 2014 at 11:50 AM, Dirk Eddelbuettel < > [email protected]> > | | wrote: > | | >> > | | >> > | | >> Terrance, > | | >> > | | >> So I took a look with one of the prebuilt versions of R > using the > | Docker > | | >> container I prepare (see the blog / sanitizers write-up I > linked > | to) as > | | I > | | >> realized that we had a Rcpp Gallery post similar to what > that as<> > | | >> conversion > | | >> does. > | | >> > | | >> And no issue with that code. > | | >> > | | >> From a brief look at your package it seems like you are > pushing > | the > | | >> envelope > | | >> a lot harder with fields and list of sparse matrices ( in > | dpmix.cpp, > | | where > | | >> another ASAN log pointed to ) so you may have to debug > around > | there. > | | >> > | | >> A small reproducible example would surely help us. So far I > don't > | have > | | one > | | >> for as<sp_mat>. > | | >> > | | >> Dirk > | | >> > | | >> -- > | | >> http://dirk.eddelbuettel.com | @eddelbuettel | > [email protected] > | | > > | | > > | | > > | | > > | | > -- > | | > Thank you, Terrance Savitsky > | | > > | | > _______________________________________________ > | | > Rcpp-devel mailing list > | | > [email protected] > | | > > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/ > | rcpp-devel > | | > | | > | | > | | > | | -- > | | Thank you, Terrance Savitsky > | > | -- > | http://dirk.eddelbuettel.com | @eddelbuettel | [email protected] > | > | > | > | > | -- > | Thank you, Terrance Savitsky > > -- > http://dirk.eddelbuettel.com | @eddelbuettel | [email protected] > -- Thank you, Terrance Savitsky
_______________________________________________ Rcpp-devel mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
