<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Hi
<p>We are using a block test server here which I am not sure is supported
but is pretty simple.
<br>You define stubs of functions which are either not written yet or external
to your block e.g
<p>bt:stub_fun_def(module,function,fun(A,B) -> ok end)
<p>These are stored on a ETS table and if during the running of the code
a undef error is raised,
<br>the table is searched and the fun called instead.
<p>However it appears that the ETS table key is {module,function} so if
we the same functions but with 2 arity values
<br>there is no way of indicating the difference in the table so the fun
may fail because of incorrect number of
<br>parameters depending on which is stored.
<p>What we really require is the key to be {module,function,arity} and
while that could be acheived by redfining
<br>the stub_fun_def function to be like
<p>bt:stub_fun_def(module,function,<b>arity</b>,fun(A,B) -> ok end)
<p>this would not be very backward compatible with everyones block tests,
so what would be better is for the
<br>stub_fun_def function to be able to extract the funs arity when it
is called and the the undef error handler would extract
<br>the required arity from the undef error message and call the correct
fun.
<p>Anyway add a feature and people will use it!
<p>All the best
<p>Tony
<p>Richard Carlsson wrote:
<blockquote TYPE=CITE>On Wed, 15 Mar 2000, Tony Pedley wrote:
<p>> Hi,
<br>> Well I've searched the OTP book, trawled the erlang questions
<br>> archive(very good by the way, however there should be an all button
on
<br>> the Available Subdirectories) and I still can't work out how to do
it.
<br>>
<br>> How do you extract the arity of a Fun? e.g How do I do this
<br>>
<br>> F = fun(X,Y,Z) -> end,
<br>>
<br>> X = get_fun_arity(F).
<br>>
<br>> 3
<p>You don't, I'm sure. Sorry.
<p>1: Neither the old representation of funs as tuples, nor the new
<br>representation in R6 contain the arity. (The BIF erlang:fun_info/1
can
<br>give you some information "for debugging purposes only", but not the
<br>arity.)
<p>2. Even if you know the module where the source code resides, and the
<br>fun-table index of a particular fun, there is no way to ask the module
<br>what the arity of that fun is (short of disassembling the compiled
code).
<p>Out of curiosity: why do you want to find the arity of an arbitrary
fun?
<p>        /Richard Carlsson
<p>Richard Carlsson (richardc@csd.uu.se)   (This space intentionally
left blank.)
<br>E-mail: Richard.Carlsson@csd.uu.se      WWW:
<a href="http://www.csd.uu.se/~richardc/">http://www.csd.uu.se/~richardc/</a></blockquote>

<pre>-- 
______________________________________________________________________
Tony Pedley             <A HREF="mailto:tonyp@terminus.ericsson.se">mailto:tonyp@terminus.ericsson.se</A>
Ericsson Intracom Ltd.  Intranet : <A HREF="http://intracom.ericsson.se">http://intracom.ericsson.se</A>
1 Bede Island           Internet : <A HREF="http://www.ericsson.co.uk/datacom/index.htm">http://www.ericsson.co.uk/datacom/index.htm</A>
Leicester               memoID  : ECOM.CBERAM
England                 Tel  : +44 (0)116 2 542 400
LE2 7EU                 Fax  : +44 (0)116 2 046 111
______________________________________________________________________</pre>
 </html>