On 6 May 2012 at 07:53, Duncan Murdoch wrote: | On 12-05-06 6:43 AM, Duncan Murdoch wrote: | > On 12-05-05 10:39 PM, Joshua Ulrich wrote: | >> 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.
On 32bit Linux with limited ram, it just swaps away ... | >>> 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? | > | > I would guess that some loop in the C code is using alloca to allocate | > temporary storage on the stack, and it's running out of stack space. | > I'll take a look... | | I couldn't spot this anywhere. I'm not sure what's happening, except | maybe you're just running out of memory: you're trying to allocate 3e7 | different names. ... but it is working steadily on it which an R session with more VIRT ram (per htop) than physical memory. Dirk | | Duncan Murdoch | | > | > Duncan Murdoch | > | >> | >>> sessionInfo() | >> R version 2.15.0 (2012-03-30) | >> Platform: i386-pc-mingw32/i386 (32-bit) | >> | >> locale: | >> [1] LC_COLLATE=English_United States.1252 | >> [2] LC_CTYPE=English_United States.1252 | >> [3] LC_MONETARY=English_United States.1252 | >> [4] LC_NUMERIC=C | >> [5] LC_TIME=English_United States.1252 | >> | >> attached base packages: | >> [1] stats graphics grDevices utils datasets methods base | >> | >> Please let me know if I forgot anything or if there's anything I can do to help. | >> | >> Best, | >> -- | >> Joshua Ulrich | FOSS Trading: www.fosstrading.com | >> | >> R/Finance 2012: Applied Finance with R | >> www.RinFinance.com | >> | >> ______________________________________________ | >> R-devel@r-project.org mailing list | >> https://stat.ethz.ch/mailman/listinfo/r-devel | > | | ______________________________________________ | R-devel@r-project.org mailing list | https://stat.ethz.ch/mailman/listinfo/r-devel -- R/Finance 2012 Conference on May 11 and 12, 2012 at UIC in Chicago, IL See agenda, registration details and more at http://www.RinFinance.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel