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
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language