Hi all,
I experienced a crash in R-2.15.0 on 32-bit Windows XP (sessionInfo
below) when running the piece of code below. I cannot replicate the
error on 64-bit Linux, 64-bit Windows, or 32-bit R running under
64-bit Windows. I do not have, and could not find, a 32-bit version
of Linux to test this.
NOW<- Sys.time()
FUTURE<- NOW+1:1e7
crash<- as.character(FUTURE)
Error in unlist(unclass(x)[1L:3L]) :
promise already under evaluation: recursive default argument
reference or earlier problems?
traceback()
Error: C stack usage is too close to the limit
# evaluating an expression at this point would cause R to exit ungracefully
Here's an example that avoids a lot of unnecessary code:
L1<- list(one=1:1e6, two=1:1e6, three=1:1e6)
# no issue with smaller list elements
U1<- unlist(L1, recursive=TRUE, use.names=TRUE)
C1<- c(L1, recursive=TRUE, use.names=TRUE)
L2<- list(one=1:1e7, two=1:1e7, three=1:1e7)
# crashes after ~2min with error above
U2<- unlist(L2, recursive=TRUE, use.names=TRUE)
C2<- c(L2, recursive=TRUE, use.names=TRUE)
# no issue if use.names=FALSE
U3<- unlist(L2, recursive=TRUE, use.names=FALSE)
C3<- c(L2, recursive=TRUE, use.names=FALSE)
I took a look at do_unlist and do_c_dflt in bind.c, but I stopped at
NewExtractNames because it is a bit beyond my current understanding.
Any thoughts?