Joris Meys
2015-Oct-05 14:22 UTC
[Rd] Error generated by .Internal(nchar) disappears when debugging
Hi all, I have a puzzling problem related to nchar. In R 3.2.1, the internal nchar gained an extra argument (see https://stat.ethz.ch/pipermail/r-announce/2015/000586.html) I've been testing code using the package copula, and at home I'm still running R 3.2.0 (I know, I know...). When trying the following code, I got an error:> library(copula) > fgmCopula(0.8)Error in substr(sc[i], 2, nchar(sc[i]) - 1) : 4 arguments passed to .Internal(nchar) which requires 3 So I do the obvious and try to debug using debug():> debugonce(fgmCopula) > fgmCopula(0.8)And when I try that, I can step through the complete function without any error. I know that the obvious solution is to update to R 3.2.2, but : - I have absolutely no clue how a function can give an error when used normally, but not return any error when stepping through it using debug. - The copula package built for R 3.2.2 isn't compatible any longer with R versions older than R 3.2.1, like the one used in our PC classes. Other packages might share the same problem. Can somebody shed some light on what exactly is going on here? I don't want to bug the authors of the copula package if I'm not sure of the origin of this problem. Cheers Joris -- Joris Meys Statistical consultant Ghent University Faculty of Bioscience Engineering Department of Mathematical Modelling, Statistics and Bio-Informatics tel : +32 (0)9 264 61 79 Joris.Meys at Ugent.be ------------------------------- Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php [[alternative HTML version deleted]]
Matt Dowle
2015-Oct-05 23:24 UTC
[Rd] Error generated by .Internal(nchar) disappears when debugging
Joris Meys <jorismeys <at> gmail.com> writes:> > Hi all, > > I have a puzzling problem related to nchar. In R 3.2.1, the internalnchar> gained an extra argument (see > https://stat.ethz.ch/pipermail/r-announce/2015/000586.html) > > I've been testing code using the package copula, and at home I'm still > running R 3.2.0 (I know, I know...). When trying the following code, Igot> an error: > > > library(copula) > > fgmCopula(0.8) > Error in substr(sc[i], 2, nchar(sc[i]) - 1) : > 4 arguments passed to .Internal(nchar) which requires 3 > > Cheers > JorisI'm seeing a similar problem. IIUC, the Windows binary .zip from CRAN of any package using base::nchar is affected. Could someone check my answer here is correct please : http://stackoverflow.com/a/32959306/403310 Matt
Duncan Murdoch
2015-Oct-05 23:57 UTC
[Rd] Error generated by .Internal(nchar) disappears when debugging
On 05/10/2015 7:24 PM, Matt Dowle wrote:> Joris Meys <jorismeys <at> gmail.com> writes: > >> >> Hi all, >> >> I have a puzzling problem related to nchar. In R 3.2.1, the internal > nchar >> gained an extra argument (see >> https://stat.ethz.ch/pipermail/r-announce/2015/000586.html) >> >> I've been testing code using the package copula, and at home I'm still >> running R 3.2.0 (I know, I know...). When trying the following code, I > got >> an error: >> >>> library(copula) >>> fgmCopula(0.8) >> Error in substr(sc[i], 2, nchar(sc[i]) - 1) : >> 4 arguments passed to .Internal(nchar) which requires 3 >> >> Cheers >> Joris > > > I'm seeing a similar problem. IIUC, the Windows binary .zip from CRAN of > any package using base::nchar is affected. Could someone check my answer > here is correct please : http://stackoverflow.com/a/32959306/403310Nobody has posted a simple reproducible example here, so it's kind of hard to say. I would have guessed that a change to the internal signature of the C code underlying nchar() wouldn't have any effect on a package that called the R nchar() function. When I put together my own example (a tiny package containing a function calling nchar(), built to .zip using R 3.2.2, installed into R 3.2.0), it confirmed my guess. On the other hand, if some package is calling the .Internal function directly, I'd expect that to break. Packages shouldn't do that. So I'd say there's been no evidence posted of a problem in R here, though there may be problems in some of the packages involved. I'd welcome an example that provided some usable evidence. Duncan Murdoch