Dirk, that's strange but your code crases on my box too... The only thing out of the ordinary might be that mt R is 3.0.0 and when I load Rcpp I get "le package ‘Rcpp’ a été compilé avec la version R 3.0.1 "
Regards 2013/7/19 stat quant <statqu...@outlook.com> > Right 2 lines were missing: > > C++: > > #include <Rcpp.h> > using namespace Rcpp; > > //[[Rcpp::export]] > void bug(DataFrame df){ > DatetimeVector dt = df["dt"]; > } > > R: > > library("Rcpp") > sourceCpp("rcpp2.cpp") > df <- > data.frame(x=c(1L,NA,2L), dt=as.POSIXct(c(1L,NA,2L),origin='1970-01-01')) > print(df) > bug(df) > ##here R crashes## > > 2013/7/19 Dirk Eddelbuettel <e...@debian.org> > >> >> On 19 July 2013 at 14:05, stat quant wrote: >> | Hello list, I might have found a bug, would you mind checking it too? >> >> No, you didn't. See below. >> >> | In R: >> | >> | library("Rcpp") >> | sourceCpp("rcpp.cpp") >> | df = data.frame(x=c(1L,NA,2L), >> dt=as.POSIXct(c(1L,NA,2L),origin='1970-01-01')) >> | >> | df >> | x dt >> | 1 1 1970-01-01 00:00:01 >> | 2 NA <NA> >> | 3 2 1970-01-01 00:00:02 >> | >> | In C++ >> | >> | //[[Rcpp::export]] >> | void bug(DataFrame df){ >> | DatetimeVector dt = df["dt"]; >> | } >> >> That __obviously__ does not compile (no header, no namespace, ...) so I >> think >> you are being sloppy. >> >> Execution of a __repaired and reproducible__ example, first via littler >> then >> via R: >> >> >> edd@don:~$ r -lRcpp -e'sourceCpp("/tmp/statquant.cpp")' >> >> > df <- data.frame(x=c(1L,NA,2L), >> + dt=as.POSIXct(c(1L,NA,2L),origin='1970-01-01')) >> >> > print(df) >> x dt >> 1 1 1969-12-31 18:00:01 >> 2 NA <NA> >> 3 2 1969-12-31 18:00:02 >> >> > bug(df) >> >> > cat("Hello world\n") >> Hello world >> edd@don:~$ R -q -e 'Rcpp::sourceCpp("/tmp/statquant.cpp")' >> R> Rcpp::sourceCpp("/tmp/statquant.cpp") >> >> R> df <- data.frame(x = c(1, NA, 2), dt = as.POSIXct(c(1, >> + NA, 2), origin = "1970-01-01")) >> >> R> print(df) >> x dt >> 1 1 1969-12-31 18:00:01 >> 2 NA <NA> >> 3 2 1969-12-31 18:00:02 >> >> R> bug(df) >> >> R> cat("Hello world\n") >> Hello world >> R> >> R> >> edd@don:~$ >> >> A complete cpp snippet follows below. Please construct better examples >> that >> actually __work__ next time, test them on __fresh sessions__ and consider >> including the R test code in the C++ snippet as I do here. Oh, and stop >> using the hidous '=' for assignment in R ;-) >> >> Dirk >> >> >> ----------------------------------------------------------------------------- >> >> #include <Rcpp.h> >> >> using namespace Rcpp; >> >> //[[Rcpp::export]] >> void bug(DataFrame df){ >> DatetimeVector dt = df["dt"]; >> } >> >> /*** R >> df <- data.frame(x=c(1L,NA,2L), >> dt=as.POSIXct(c(1L,NA,2L),origin='1970-01-01')) >> print(df) >> bug(df) >> cat("Hello world\n") >> */ >> >> ----------------------------------------------------------------------------- >> >> >> >> | >> | Executing bug(df) in R crashes the R session on my box >> | >> | sessionInfo() >> | R version 3.0.0 (2013-04-03) >> | Platform: x86_64-w64-mingw32/x64 (64-bit) >> | locale: >> | [1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252 >> | LC_MONETARY=French_France.1252 LC_NUMERIC=C >> | LC_TIME=C >> | attached base packages: >> | [1] stats graphics grDevices datasets utils methods base >> | >> | other attached packages: >> | [1] Rcpp_0.10.4 vimcom_0.9-8 >> | loaded via a namespace (and not attached): >> | [1] tools_3.0.0 >> | >> | Regards >> | >> | ---------------------------------------------------------------------- >> | _______________________________________________ >> | 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 >> -- >> 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