[Rd] Error generated by .Internal(nchar) disappears when debugging

Michael Weylandt michael.weylandt at gmail.com
Tue Oct 6 02:04:30 CEST 2015

Doesn't the byte-compiler inline calls like nchar() to call the .Internal directly for certain optimization levels?  If the 'internal' signature changed in a point release, I'd expect an issue like the below.  (I'm pretty sure CRAN packages are byte-compiled at build-time, but don't use Windows so can't confirm)

To Joris' initial question. I think the debug machinery calls the unoptimized (no-inline) function. 


> On Oct 5, 2015, at 6:57 PM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
>> 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/403310
> Nobody 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
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

More information about the R-devel mailing list