diff --git a/ChangeLog b/ChangeLog index 9e331b1..2f466d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003 Jun 15 + + * NSInvocation+additions: added unknown selector creation + 2003 May 11 Stefan Urbanek * Fixed linking of some bundles diff --git a/Languages/Smalltalk/STBytecodeInterpreter.m b/Languages/Smalltalk/STBytecodeInterpreter.m index e036760..52bd5f3 100644 --- a/Languages/Smalltalk/STBytecodeInterpreter.m +++ b/Languages/Smalltalk/STBytecodeInterpreter.m @@ -379,8 +379,9 @@ static Class NSInvocation_class = nil; * ---------------------------- */ - NSDebugLLog(@"STSending",@" invoking... (%@)",invocation); + NSDebugLLog(@"STSending",@" invoking... (%@ %s)",invocation, [[invocation methodSignature] methodReturnType]); [invocation invoke]; + NSDebugLLog(@"STSending",@" done invoking.",invocation); /* FIXME */ if(!stopRequested) diff --git a/README b/README index 3bce7b5..ee16f15 100644 --- a/README +++ b/README @@ -46,6 +46,8 @@ If something goes wrong while build process and it is not while building in the Source directory, then try to do make and make install in that directory first. In any case of problem, do not hesitate to contact the author. +StepTalk Shell is included in Examples/Shell directory. It requires libncurses. + Tools ----- stexec - execute a StepTalk script in the GNUstep Foundation environment diff --git a/Source/NSInvocation+additions.m b/Source/NSInvocation+additions.m index c75fb76..4d067e8 100644 --- a/Source/NSInvocation+additions.m +++ b/Source/NSInvocation+additions.m @@ -201,7 +201,23 @@ void STGetValueOfTypeFromObject(void *value, const char *type, id anObject) NSInvocation *invocation; SEL sel; - sel = STSelectorFromString(selectorName); + sel = NSSelectorFromString(selectorName); + + if(!sel) + { + NSLog(@"REG REQIRED"); + char *name = [selectorName cString]; + + sel = sel_register_name(name); + + if(!sel) + { + [NSException raise:STInternalInconsistencyException + format:@"Unable to register selector '%@'", + selectorName]; + return NULL; + } + } signature = [target methodSignatureForSelector:sel]; diff --git a/WISH b/WISH index 65e49a6..ffd1447 100644 --- a/WISH +++ b/WISH @@ -41,7 +41,8 @@ Language and Interaction 1. Every thing is an object 2. Objects are communicating by sending messages - Objects are 'nouns' and messages are 'verbs' of a language. + "Objects are 'nouns' and messages are 'verbs' of a language. ", to add a + famous quote. Nouns in a (scripting) language are objects with name. That name usually depends on the context it is present or it should be globally well known