[Rd] dotcode typo? (PR#7917)

murdoch at stats.uwo.ca murdoch at stats.uwo.ca
Thu Jun 2 19:16:25 CEST 2005


Duncan Murdoch wrote:
> Huntsinger, Reid wrote:
> 
>>Sorry, I was looking at 2.0.1 when I meant to be looking at 2.1.0. The line
>>numbers for the latter are 161-179 and line 164 is the one with what I think
>>is a typo.
>>
>>Reid Huntsinger
>>
>>-----Original Message-----
>>From: r-devel-bounces at stat.math.ethz.ch
>>[mailto:r-devel-bounces at stat.math.ethz.ch] On Behalf Of Huntsinger, Reid
>>Sent: Thursday, June 02, 2005 12:33 PM
>>To: r-devel at stat.math.ethz.ch
>>Subject: [Rd] dotcode typo?
>>
>>
>>I ran across the following in the R-2.0.1 source, src/main/dotcode.c, in the
>>function resolveNativeRoutine(), lines 146-163. Line 152 looks like a typo:
>>here are lines 149-155
>>
>> if(!*fun) {
>>        if(dll.type != FILENAME) {
>>            *fun = R_FindNativeSymbolFromDLL(buf, &dll, symbol);
>>            if(!fun) {
>>                errorcall(call, "cannot resolve native routine");
>>            }
>>        }
>>
>>and I think the "if(!fun)" should be "if(!*fun)". 
> 
> 
> I think you're right about the typo.
> 
> In the current code, !fun is known to be false, so the "cannot resolve 
> native routine" error message is not even compiled in.  Putting in !*fun 
> means that
> 
> .C("foo")
> 
> produces "cannot resolve native routine", rather than "function name not 
> in load table" from the test a few lines down.
> 
> I'll commit this change after testing, but I hope Duncan TL has time to 
> look at it and make sure the logic is okay.

Whoops, spoke too soon.  This definitely breaks the logic, so I won't 
commit.  With this change the check of demo(lm.glm) in package utils 
fails with this error message:

 > dead <- cbind(x, n - x)

 > summary(glm(dead ~ dose, family = binomial(link = logit)))
Error in .Call("logit_link", mu) : cannot resolve native routine
Execution halted

I'm cc'ing this to R-bugs so we don't forget it, but I'm not going to be 
able to fix it down myself.

Duncan Murdoch



More information about the R-devel mailing list