diff --git a/ChangeLog b/ChangeLog index 5100f30..94e9b9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-01-15 Wolfgang Lux + + * Frameworks/StepTalk/STEngine.h (-methodFromSource:...): + * Frameworks/StepTalk/STEngine.m (-methodFromSource:...): + STMethod is a protocol not a class. + 2012-01-15 Wolfgang Lux * Frameworks/StepTalk/STObjCRuntime.m (STSelectorTypes, diff --git a/Frameworks/StepTalk/STEngine.h b/Frameworks/StepTalk/STEngine.h index bd70320..7b9ea05 100644 --- a/Frameworks/StepTalk/STEngine.h +++ b/Frameworks/StepTalk/STEngine.h @@ -47,9 +47,9 @@ inContext:(STContext *)context; /* Methods */ -- (STMethod *)methodFromSource:(NSString *)sourceString - forReceiver:(id)receiver - inContext:(STContext *)context; +- (id )methodFromSource:(NSString *)sourceString + forReceiver:(id)receiver + inContext:(STContext *)context; - (id) executeMethod:(id )aMethod forReceiver:(id)anObject withArguments:(NSArray *)args diff --git a/Frameworks/StepTalk/STEngine.m b/Frameworks/StepTalk/STEngine.m index 890af50..fa2ef99 100644 --- a/Frameworks/StepTalk/STEngine.m +++ b/Frameworks/StepTalk/STEngine.m @@ -108,9 +108,9 @@ void _STInitMallocZone(void) return NO; } -- (STMethod *)methodFromSource:(NSString *)sourceString - forReceiver:(id)receiver - inContext:(STContext *)env; +- (id )methodFromSource:(NSString *)sourceString + forReceiver:(id)receiver + inContext:(STContext *)env { [self subclassResponsibility:_cmd]; return nil; @@ -118,7 +118,7 @@ void _STInitMallocZone(void) - (id) executeMethod:(id )aMethod forReceiver:(id)anObject withArguments:(NSArray *)args - inContext:(STContext *)env; + inContext:(STContext *)env { [self subclassResponsibility:_cmd]; return nil; diff --git a/Languages/Smalltalk/ChangeLog b/Languages/Smalltalk/ChangeLog index a7d4b5f..597ea78 100644 --- a/Languages/Smalltalk/ChangeLog +++ b/Languages/Smalltalk/ChangeLog @@ -1,3 +1,21 @@ +2012-01-15 Wolfgang Lux + + * STBytecodes.h (-data, -length): Declare public methods. + * STMethodContext.h: Remove declaration of unused methods, which were + not implemented. + + * STCompiler.h (STCompiler, -compiledMethodFromSource:forReceiver:): + * STCompiler.m (-compiledMethodFromSource:forReceiver:): STCompiler + expects its receiver attribute to be a STScriptObject not just an + object that satisfies the weaker STScriptObject protocol. + + * STSmalltalkScriptObject.m: Import NSDictionary and NSKeyValueCoding, + whose methods are used in the implementation. + + * STCompiledMethod.h: Import definition of STMethod protocol instead + of just declaring it. Gcc 4.6 complains if a protocol whose definition + is not visible is used in an interface declaration. + 2012-01-15 Wolfgang Lux * STBytecodeInterpreter.m: Remove unnecessary include of Objective-C diff --git a/Languages/Smalltalk/STBytecodes.h b/Languages/Smalltalk/STBytecodes.h index c448015..41488ac 100644 --- a/Languages/Smalltalk/STBytecodes.h +++ b/Languages/Smalltalk/STBytecodes.h @@ -87,6 +87,8 @@ extern NSString *STDissasembleBytecode(STBytecode bytecode); NSData *bytes; } - (STBytecode)fetchNextBytecodeAtPointer:(unsigned *)pointer; +- (NSData *) data; +- (unsigned) length; @end diff --git a/Languages/Smalltalk/STCompiledMethod.h b/Languages/Smalltalk/STCompiledMethod.h index 0da5b00..1bd93fc 100644 --- a/Languages/Smalltalk/STCompiledMethod.h +++ b/Languages/Smalltalk/STCompiledMethod.h @@ -21,8 +21,7 @@ */ #import "STCompiledCode.h" - -@protocol STMethod; +#import @class STMessage; diff --git a/Languages/Smalltalk/STCompiler.h b/Languages/Smalltalk/STCompiler.h index 888c139..b180f56 100644 --- a/Languages/Smalltalk/STCompiler.h +++ b/Languages/Smalltalk/STCompiler.h @@ -31,6 +31,7 @@ @class STCompiledCode; @class STCompiledMethod; @class STEnvironment; +@class STScriptObject; @class STSourceReader; @class STCExpression; @@ -82,7 +83,7 @@ typedef struct _STParserContext NSMutableArray *namedReferences; NSMutableArray *literals; - id receiver; + STScriptObject *receiver; BOOL isSingleMethod; @@ -109,7 +110,7 @@ typedef struct _STParserContext - (STCompiledScript *)compileString:(NSString *)aString; - (STCompiledMethod *)compileMethodFromSource:(NSString *)aString - forReceiver:(id )receiver; + forReceiver:(STScriptObject *)receiver; /* - (NSMutableArray *)compileString:(NSString *)string; diff --git a/Languages/Smalltalk/STCompiler.m b/Languages/Smalltalk/STCompiler.m index e155e05..1645e9d 100644 --- a/Languages/Smalltalk/STCompiler.m +++ b/Languages/Smalltalk/STCompiler.m @@ -180,7 +180,7 @@ extern int STCparse(void *context); } - (STCompiledMethod *)compileMethodFromSource:(NSString *)aString - forReceiver:(id)receiverObject + forReceiver:(STScriptObject *)receiverObject { STCompiledMethod *result; NSString *hackedSource; diff --git a/Languages/Smalltalk/STMethodContext.h b/Languages/Smalltalk/STMethodContext.h index e1a6edf..5490e95 100644 --- a/Languages/Smalltalk/STMethodContext.h +++ b/Languages/Smalltalk/STMethodContext.h @@ -50,8 +50,5 @@ - (id)temporaryAtIndex:(unsigned)index; - (void)setTemporary:anObject atIndex:(unsigned)index; -- (id)externAtIndex:(unsigned)index; -- (void)setExtern:anObject atIndex:(unsigned)index; - - (STBytecodes *)bytecodes; @end diff --git a/Languages/Smalltalk/STSmalltalkScriptObject.m b/Languages/Smalltalk/STSmalltalkScriptObject.m index 0dc4875..0c7b497 100644 --- a/Languages/Smalltalk/STSmalltalkScriptObject.m +++ b/Languages/Smalltalk/STSmalltalkScriptObject.m @@ -29,9 +29,11 @@ #import #import +#import #import #import #import +#import #import #import