Hi,
This is a bit larger problem with DO and selectors. Problem is that
somewhere in gnustep DO wrong selector types are used. DO mechanism
does not use selector types from remote object but from local runtime.
I'll refer to StepTalk CVS version from Jun 15 10:20 CET. Here is how
to reproduce it:
In StepTalk script I want to send a message to a distant object. Say
that we have an object Server (from StepTalk sources Examples/Server)
which implements method:
- say:(NSString *)string
I have a small script:
s := NSConnection
rootProxyForConnectionWithRegisteredName:'Server' host:nil.
s say:'test'.
Thing is, that on local side I do not know selector say:. What
steptalk does? When building an invocation (see [1]) to the distant
object, selector is get from NSSelectorFromString. Because there is no
selector, nil is returned. Steptalk tries to register the selector by
using:
sel_register_name(name);
where 'name' is [selectorName cString]. This will register selector
without type definition. Then I get a method signature from target
which is a distant object.:
signature = [target methodSignatureForSelector:sel];
Signature contains the right selector type information received from
remote process.
When I launch the script I get:
2003-06-15 10:27:56.482 stexec[9781] Invalid selector say: (no type
information)test
And here is the problem, because on the client side i have no type
information in runtime. Should not the information from method
signature be used instead of getting one from runtime?