[Rcpp-devel] bug with DatetimeVector ?

stat quant statquant at outlook.com
Fri Jul 19 15:23:14 CEST 2013


Just updated my R from 3.0.0 to 3.0.1...
__the bug disappeared__

Sorry for the inconvenience !


2013/7/19 stat quant <statquant at outlook.com>

> And I've been carefull to get a fresh session from R --vanilla so I have
> no other package loaded and nothing from my Rprofile exectued, so I am a
> bit puzzled...
>
> Regards
>
> PS: as far as "=" that's the first I use in month you just got unlucky :)
>
>
> 2013/7/19 stat quant <statquant at outlook.com>
>
>> 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 <statquant at 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 <edd at 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 at 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 at 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 at 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 at lists.r-forge.r-project.org
>>>> |
>>>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>>>> --
>>>> Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130719/cf24332b/attachment.html>


More information about the Rcpp-devel mailing list