From duncan@research.bell-labs.com  Wed Jul 11 15:13:07 2001
From: duncan@research.bell-labs.com (Duncan Temple Lang)
Date: Wed, 11 Jul 2001 10:13:07 -0400
Subject: [Rd] .Call and Mandrake 8.0 (PR#1020)
In-Reply-To: <200107111334.PAA16384@pubhealth.ku.dk>; from lcottret@yahoo.fr on Wed, Jul 11, 2001 at 03:34:25PM +0200
References: <200107111334.PAA16384@pubhealth.ku.dk>
Message-ID: <20010711101307.E24919@jessie.research.bell-labs.com>

Hi Ludovic.

 There are at least two possible explanations for this behaviour.

  1)  There is a bug in the recently changed code in R to find 
     routines in C and Fortran libraries.

  2)  The routine that you are .Call()'ing is doing something
  that has confused the R internals and makes the next R commands
  not work, and potentially this is not reproducible.

If this is not proprietary or confidential code, you can send the C
code and instructions as to how to call it from R (that is, provide
simple values for the bankpath, accn, indexpath, key, beg and end
arguments), then I can see if the computations are potentially
writing over other values in memory.

Also, you can try a invoking a very simple .Call() routine 
many times to see if that displays the same failure. For example,
put the following C code in a file named simpleCall.c

#include "Rinternals.h"

SEXP
simpleCall() 
{
  static int count = 0;
  SEXP ans;

  PROTECT(ans = allocVector(INTSXP, 1));
  INTEGER(ans)[0] = count++;

  UNPROTECT(1);
  return(ans);
}

Then, compile this with 
  R CMD SHLIB simpleCall.c

and call it from R in the following way

 > dyn.load("simpleCall.so")
 > for(i in 1:10) { print(.Call("simpleCall")) }

If this works, it won't determine whether it is 1) or 2) (or any other
possible reason), but if it doesn't work, we will have a lot more
information.

 Thanks,
   Duncan


lcottret@yahoo.fr wrote:
> Full_Name: Ludovic Cottret
> Version: R 1.3.0
> OS: Linux
> Submission from: (NULL) (157.136.20.138)
> 
> 
> I have a R function which call a C function by the instruction ".Call".
> The first time I call the R function in a R session, it perfectly runs. But the
> next 
> times, R returns this error message :
> 
> Error in .Call("", bankpath, accn, indexpath, key, beg, end) :
>         .Call function name not in load table
> 
> The function name has disappeared !!
> This function well runs on Mandrake 7.2 but not in Mandrake 8.0. Why ?!?
> 
> Thanks for your answers...
> PS : Excuse my poor english...
> 
> 
> 
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

-- 
_______________________________________________________________

Duncan Temple Lang                duncan@research.bell-labs.com
Bell Labs, Lucent Technologies    office: (908)582-3217
700 Mountain Avenue, Room 2C-259  fax:    (908)582-3340
Murray Hill, NJ  07974-2070       
         http://cm.bell-labs.com/stat/duncan
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


[Rd] .Call and Mandrake 8.0 (PR#1020)
Duncan Temple Lang