From hjaffee at jhmi.edu  Wed Dec 13 17:56:13 2006
From: hjaffee at jhmi.edu (Harris A. Jaffee)
Date: Wed, 13 Dec 2006 11:56:13 -0500 (EST)
Subject: [Rd] capturing value of C or Fortran function
Message-ID: <Pine.LNX.4.61.0612121713100.15075@enigma.local>

Re: src/main/dotcode.c:do_dotCode()

The value, if there is one, of a function called by .C or .Fortran is not
captured, so one needs a wrapper.  To avoid that, the user would have to
declare that there is a value, specify its type, and supply an R variable
to hold the value.  Presumably, all of these could be combined in a new
"VALUE=var" parameter.  Then do_dotCode could arrange the correct type of
C variable to receive the value (for every one of the 66 possible instances
of the call), and then transfer that value to 'var'.  It seems doable with
a strong enough macro, if a bit complicated.  Or one could say VALUE=<type>
and get the value as a new, (n+1)_th element of the current list value.

Of course, existing code naming an argument with "VALUE" would break, so a
completely new interface, perhaps .C.function(), .Fortran.function(), would
be required to avoid that.

Has this facility been ruled out?



[Rd] capturing value of C or Fortran function
Harris A. Jaffee