On Wed, 2006-11-08 at 18:28 +1100, Jonathan Kelly wrote:
> Hi,
> 
> I'm trying to wrap "signal" like this ...
> 
> //------------------
> const SIGINT:int = "SIGINT";
> proc signal:int*(int->void) = "signal($1, $2)";
>    
> proc finish(sig:int) {
>     C_hack::ignore(endwin());
>     print$ f"finish got signal %d\n" sig;
>     C_hack::ignore(gc());
>     System::exit(0);
> }  
>    
> signal(SIGINT, finish);
> //------------
> 
> but I get this error message, and I don't know what it means...
> 
> $ flx -I./nc nc/nc.flx
> CLIENT ERROR
> [bind_expression] Simple name finish binds to function set in
> nc/nc.flx: line 20, cols 16 to 21
> In nc/nc.flx: line 20, cols 16 to 21
> 19:
> 20: signal(SIGINT, finish);

'finish' is the name of a set of overloaded functions,
not the name of a single function.

The name of the function is 

        finish of (int)

If there is only one function in the set, you can also use

        the finish

as the name:

        signal(SIGINT, the finish);

This will break if you introduce another overload called
'finish' into the scope. The more explicit name

        signal(SIGINT, finish of (int));

will only break if you introduce another function

        fun finish: int -> ..

into the scope. When doing a function call:

        finish 1

you don't need this because overload resolution calculates
which function it is for you, based on the argument type.

You might think it could do that from context in:

        signal(SIGINT, finish);

too, but the problem is the type of signal's argument
is used for overload resolution, so it has to be known.


-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to