2017-12-27 16:43:44 +00:00
|
|
|
|
2017-12-27 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompilerUtils.h: Fix wrong return type in method declaration
|
|
|
|
|
flagged up by the GNUstep runtime.
|
|
|
|
|
|
2014-11-01 18:26:39 +00:00
|
|
|
|
2014-11-01 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBlock.m (-valueWithArguments:): Fix bug where the cached context
|
|
|
|
|
of a block could be reused prematurely.
|
|
|
|
|
Note: This could happen only when a block is called recursively and
|
|
|
|
|
entered more than once in an inner invocation, as, e.g., in the
|
|
|
|
|
following code to compute the Fibonacci numbers:
|
|
|
|
|
fib := [:n |
|
|
|
|
|
(n <= 1)
|
|
|
|
|
ifTrue: [1]
|
|
|
|
|
ifFalse: [(fib value: (n - 1)) + (fib value: (n - 2))]].
|
|
|
|
|
fib value: 3.
|
|
|
|
|
Note that the code still does not produce the correct result because
|
|
|
|
|
blocks are not (yet) reentrant in the interpreter, but at least the
|
|
|
|
|
interpreter does not crash anymore.
|
|
|
|
|
|
2014-11-01 17:47:23 +00:00
|
|
|
|
2014-11-01 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBlock.m (-dealloc): Release cachedContext attribute.
|
|
|
|
|
* STBlockContext.m (-dealloc): Restore method to release homeContext
|
|
|
|
|
attribute.
|
|
|
|
|
* STBytecodeInterpreter.m (-dealloc): Fix typo in method name and
|
|
|
|
|
release activeContext attribute.
|
|
|
|
|
* STBytecodeInterpreter.m (-interpretMethod:forReceiver:arguments:):
|
|
|
|
|
Release newContext also when an exception is raised while interpreting
|
|
|
|
|
the method.
|
|
|
|
|
* STCompiledScript.m (-executeInEnvironment:): Release script object
|
|
|
|
|
also when an exception is raised while interpreting the script.
|
|
|
|
|
* STCompiler.m (-dealloc): Release environment attribute.
|
|
|
|
|
* STCompiler.m (-compileString:): Release local auto release pool also
|
|
|
|
|
when an exception is raised during compilation.
|
|
|
|
|
* STSmalltalkScriptObject.m (-forwardInvocation:): Release local
|
|
|
|
|
autorelease pool and args array also when an exception is raised while
|
|
|
|
|
interpreting the method.
|
|
|
|
|
|
2014-10-14 20:13:09 +00:00
|
|
|
|
2014-10-14 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBlockContext.h (STExecutionContext, -initWithInitialIP:stackSize:):
|
|
|
|
|
* STBlockContext.m (-initWithInitialIP:stackSize:):
|
|
|
|
|
* STBlock.m (-valueWithArguments:):
|
|
|
|
|
Remove unused interpreter attribute and corresponding argument from
|
|
|
|
|
STBlockContext and its initializer.
|
|
|
|
|
|
2014-10-14 07:51:02 +00:00
|
|
|
|
2014-10-14 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
2014-10-14 20:03:39 +00:00
|
|
|
|
* STMethodContext.h (+methodContextWithMethod:, initWithMethod:):
|
|
|
|
|
* STMethodContext.m (+methodContextWithMethod:, initWithMethod:):
|
|
|
|
|
* STBytecodeInterpreter.m (-interpretMethod:forReceiver:arguments:):
|
|
|
|
|
Remove unused environment argument from STMethodContext initializer.
|
2014-10-14 07:58:57 +00:00
|
|
|
|
|
|
|
|
|
2014-10-14 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
2014-10-14 20:03:39 +00:00
|
|
|
|
* STSmalltalkScriptObject.m (-forwardInvocation:): Set the return
|
|
|
|
|
value of the invocation object also when the exit pseudo method of the
|
|
|
|
|
script object is called.
|
|
|
|
|
|
|
|
|
|
2014-10-14 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBlock.m (-value:value:):
|
|
|
|
|
* STBlock.m (-value:value:value:):
|
|
|
|
|
Add missing nil terminator to argument list of arrayWithObjects.
|
2014-10-14 07:51:02 +00:00
|
|
|
|
|
2014-09-09 15:11:46 +00:00
|
|
|
|
2014-09-09 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
2014-10-14 07:58:57 +00:00
|
|
|
|
* STCompiler.m (-setReceiverVariables:):
|
2014-09-09 15:11:46 +00:00
|
|
|
|
Do not assign a non-mutable array to a mutable array attribute.
|
|
|
|
|
|
2014-09-09 15:00:54 +00:00
|
|
|
|
2014-09-09 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompiledCode.h (STCompiledCode, -namedReferences,
|
|
|
|
|
-initWithBytecodesData:literals:temporariesCount:stackSize:namedReferences:):
|
|
|
|
|
* STCompiledCode.m (-namedReferences,
|
|
|
|
|
-initWithBytecodesData:literals:temporariesCount:stackSize:namedReferences:):
|
|
|
|
|
Change namedRefs attribute into a non-mutable array.
|
|
|
|
|
|
2014-09-09 13:52:49 +00:00
|
|
|
|
2014-09-09 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBytecodeInterpreter.m (-sendSelectorAtIndex:withArgCount:):
|
|
|
|
|
* STCompiler.m (-compileString:, -emitPopAndStoreTemporary:,
|
|
|
|
|
-emitPopAndStoreVariable:, -emitPopAndStoreReceiverVariable:,
|
|
|
|
|
-emitSendSelector:argCount:):
|
|
|
|
|
Fix NSDebugLLog format issues detect by clang.
|
|
|
|
|
|
2013-06-30 16:54:32 +00:00
|
|
|
|
2013-06-30 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STSourceReader.m (-lineNumberForIndex:, -readNextToken): Tidy
|
|
|
|
|
source.
|
|
|
|
|
|
2013-06-30 17:24:51 +00:00
|
|
|
|
* STSourceReader.m (-readNextToken): Bug fixes:
|
|
|
|
|
- Prevent out of range accesses for the input string.
|
|
|
|
|
- Exponent of a real number must contain at least one digit.
|
2013-06-30 17:30:52 +00:00
|
|
|
|
- Incorrect token range for character literals.
|
2013-06-30 17:42:15 +00:00
|
|
|
|
- Incorrect token range for symbol immediately before end of source.
|
2013-06-30 17:13:05 +00:00
|
|
|
|
|
2013-05-26 16:14:13 +00:00
|
|
|
|
2013-05-26 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STGrammar.y (temporaries): Allow empty list.
|
|
|
|
|
* STGrammar.m: Regenerated.
|
|
|
|
|
|
2013-05-26 15:51:26 +00:00
|
|
|
|
2013-05-26 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* NSNumber+additions.h:
|
|
|
|
|
* NSNumber+additions.m:
|
|
|
|
|
* STBlock.h:
|
|
|
|
|
* STBlock.m:
|
|
|
|
|
* STBlockContext.h:
|
|
|
|
|
* STBlockContext.m:
|
|
|
|
|
* STBytecodeInterpreter.h:
|
|
|
|
|
* STBytecodeInterpreter.m:
|
|
|
|
|
* STBytecodes.h:
|
|
|
|
|
* STBytecodes.m:
|
|
|
|
|
* STCompiledCode.h:
|
|
|
|
|
* STCompiledCode.m:
|
|
|
|
|
* STCompiledMethod.h:
|
|
|
|
|
* STCompiledMethod.m:
|
|
|
|
|
* STCompiledScript.m:
|
|
|
|
|
* STCompiler.h:
|
|
|
|
|
* STCompiler.m:
|
|
|
|
|
* STExecutionContext.h:
|
|
|
|
|
* STExecutionContext.m:
|
|
|
|
|
* STLiterals.h:
|
|
|
|
|
* STLiterals.m:
|
|
|
|
|
* STMethodContext.h:
|
|
|
|
|
* STMethodContext.m:
|
|
|
|
|
* STSmalltalkScriptObject.m:
|
|
|
|
|
* STSourceReader.h:
|
|
|
|
|
* STSourceReader.m:
|
|
|
|
|
* STStack.h:
|
|
|
|
|
* STStack.m:
|
|
|
|
|
int->NSInteger transition
|
|
|
|
|
|
2013-04-06 12:22:28 +00:00
|
|
|
|
2013-04-06 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STSourceReader.m (-readNextToken): Fix bug where the last character
|
|
|
|
|
of an identifier was dropped when the assignment operator ':=' follows
|
|
|
|
|
it immediately.
|
|
|
|
|
|
2013-04-03 07:46:24 +00:00
|
|
|
|
2013-04-03 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* NSArray+additions.m (-collect:): Properly handle nil results from
|
|
|
|
|
block.
|
|
|
|
|
|
2013-04-03 07:42:02 +00:00
|
|
|
|
2013-04-03 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STSourceReader.m (-lineNumberForIndex:): Revert broken fix and
|
|
|
|
|
replace it by code that now works correctly for all kinds of line
|
|
|
|
|
endings.
|
|
|
|
|
|
2013-03-25 11:32:20 +00:00
|
|
|
|
2013-03-25 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
2013-04-03 07:42:02 +00:00
|
|
|
|
* STBytecodeInterpreter.m (-returnValue:): Fix bug where the
|
2013-03-25 11:32:20 +00:00
|
|
|
|
STInterpreterReturnException was not handled when a block returns nil.
|
|
|
|
|
|
2013-03-24 17:24:11 +00:00
|
|
|
|
2013-03-24 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompiler.m (-compileMethod:): Follow Smalltalk convention to
|
|
|
|
|
return the receiver from a method without an explicit return
|
|
|
|
|
statement.
|
|
|
|
|
|
2013-03-24 17:29:43 +00:00
|
|
|
|
* STCompiler.m (-compileStatements:blockFlag:): Return nil from an
|
|
|
|
|
empty block and the receiver from an empty method.
|
|
|
|
|
|
2013-03-24 17:19:55 +00:00
|
|
|
|
2013-03-24 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STExecutionContext.h: Change type of instruction pointer attribute
|
|
|
|
|
to NSUInteger.
|
|
|
|
|
* STExecutionContext.m (-invalidate, -isValid): Invalidate an
|
|
|
|
|
execution context by setting its instruction pointer to NSNotFound.
|
|
|
|
|
|
|
|
|
|
* STMethodContext.m (-invalidate, -isValid):
|
|
|
|
|
* STBlockContext.m (-invalidate, -isValid): Delete method
|
|
|
|
|
implementations so that the method and home context attributes of a
|
|
|
|
|
method context and block context, respectively, are not destroyed when
|
|
|
|
|
the method or block returns.
|
|
|
|
|
|
|
|
|
|
Together these changes make it possible to use blocks even after the
|
|
|
|
|
method containing their definition has returned.
|
|
|
|
|
|
2013-03-24 17:02:20 +00:00
|
|
|
|
2013-03-24 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Externs.h (STInterpreterReturnException):
|
|
|
|
|
* Externs.m (STInterpreterReturnException):
|
|
|
|
|
* STCompiler.m (-compileStatements:blockFlag:):
|
|
|
|
|
* STBytecodeInterpreter.m (-interpretMethod:forReceiver:arguments:
|
|
|
|
|
-returnValue:, -returnBlockValue:, -dispatchBytecode:):
|
|
|
|
|
An explicit return statement in a block returns from the method
|
|
|
|
|
context containing the block's definition. This is achieved by
|
|
|
|
|
throwing a STInterpreterReturnException.
|
|
|
|
|
|
|
|
|
|
* STBlock.m (-handler:): Don't let user code handle
|
|
|
|
|
STInterpreterReturnException.
|
|
|
|
|
|
|
|
|
|
* STBytecodeInterpreter.m (-interpret): Fix incorrect logging levels.
|
|
|
|
|
|
2013-03-23 20:02:23 +00:00
|
|
|
|
2013-03-23 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
2013-03-24 17:02:20 +00:00
|
|
|
|
* STCompiler.m (-compileStatements:blockFlag:): Fix compiler bug: The
|
2013-03-23 20:02:23 +00:00
|
|
|
|
value of a Smalltalk statement sequence is the value of its last
|
|
|
|
|
statement and not that of the first.
|
|
|
|
|
|
2013-03-23 18:09:25 +00:00
|
|
|
|
2013-03-23 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBlock.m (-initWithInterpreter:...):
|
|
|
|
|
* STBlockContext.m (initWithInterpreter:initialIP:stackSize:):
|
|
|
|
|
* STBytecodeInterpreter.m (-initWithEnvironment:):
|
|
|
|
|
* STBytecodes.m (-initWithData:, -initWithCoder:):
|
|
|
|
|
* STCompiledMethod.m (-initWihtSelector:argumentCount:bytecodeData:...)
|
|
|
|
|
-initWithCoder:):
|
|
|
|
|
* STCompiledScript.m (-initWithVariableNames:):
|
|
|
|
|
* STCompiler.m (-initWithEnvironment:, -init):
|
|
|
|
|
* STCompilerUtils.m(STCMethod) (-initWithPattern:statements:):
|
|
|
|
|
* STCompilerUtils.m(STCMessage) (-init):
|
|
|
|
|
* STCompilerUtils.m(STCMessageExpression) (-initWithTarget:message:):
|
|
|
|
|
* STCompilerUtils.m(STCPrimaryExpression) (-initWithObject:):
|
|
|
|
|
* STCompilerUtils.m(STCPrimary) (-initWithType:object:):
|
|
|
|
|
* STExecutionContext.m (-initWithStackSize:):
|
|
|
|
|
* STLiterals.m(STObjectReferenceLiteral) (initWithObjectName:poolName:):
|
|
|
|
|
* STLiterals.m(STBlockLiteral) (-initWithArgumentCount:):
|
|
|
|
|
* STMessage.m (-initWithSelector:arguments:):
|
|
|
|
|
* STMethodContext.m (-initWithMethod:environment:):
|
|
|
|
|
* STSmalltalkScriptObject.m (-initWithEnvironment:compiledScript:):
|
|
|
|
|
* STSourceReader.m (initWithString:range:):
|
|
|
|
|
* STStack.m (-initWithSize:):
|
|
|
|
|
Check the result of the super class initializer and assign it to
|
|
|
|
|
self.
|
|
|
|
|
|
|
|
|
|
* STBlock.m (-initWithInterpreter:..., -dealloc): Retain and release
|
|
|
|
|
the homeContext and interpreter attributes.
|
|
|
|
|
|
|
|
|
|
* STBytecodeInterpreter.m (-delloc): Release environment attribute to
|
|
|
|
|
fix space leak.
|
|
|
|
|
|
|
|
|
|
* STBytecodeInterpreter.m (createBlockWithArgumentCount:stackSize:):
|
|
|
|
|
* STCompiledMethod.m (+methodWithCode:messagePattern:):
|
|
|
|
|
* STCompilerUtils.m (+primaryWithVariable:, +primaryWithLiteral:,
|
|
|
|
|
+primaryWithBlock:, +primaryWithExpression:):
|
|
|
|
|
Use idiomatic Objective-C code, which never assigns the result of an
|
|
|
|
|
+alloc method to a local variable.
|
|
|
|
|
|
2013-03-02 16:09:07 +00:00
|
|
|
|
2013-03-02 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STSourceReader.m (_STNormalizeStringToken): Unescape two successive
|
|
|
|
|
single quote characters inside literal string tokens.
|
|
|
|
|
|
2013-02-08 09:02:06 +00:00
|
|
|
|
2013-02-08 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBlock.h (value:,value:value:,value:value:value:,valueWithArguments:):
|
|
|
|
|
* STBlock.m (value:,value:value:,value:value:value:,valueWithArguments:):
|
|
|
|
|
Define standard Smalltalk methods for invoking blocks with arguments.
|
|
|
|
|
|
|
|
|
|
* STBlock.m (valueWith:,valueWith:with:,valueWith:with:with:,
|
|
|
|
|
valueWith:with:with:with:,valueWithArgs:,handler:):
|
|
|
|
|
* NSArray+additions.m (do:,select:,reject:,collect:,detect:):
|
|
|
|
|
* NSNumber+additions.m (to:do:,to:step:do:):
|
|
|
|
|
Use the new standard methods instead of the old non-standard ones.
|
|
|
|
|
|
2012-12-02 11:37:26 +00:00
|
|
|
|
2012-12-02 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompiler.m (compileString:): Fix syntax error reporting to
|
|
|
|
|
properly show the error context.
|
|
|
|
|
|
|
|
|
|
* STCompiler.m (compileMethodFromSource:forReceiver:): Fix space leak
|
|
|
|
|
when an exception other than a syntax error is raised.
|
|
|
|
|
|
|
|
|
|
* STCompiler.m (compileStatements:): Autorelease compiled code here ...
|
|
|
|
|
* STCompiler.m (compileMethod:): ... instead of here.
|
|
|
|
|
|
2012-10-26 17:15:52 +00:00
|
|
|
|
2012-10-26 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompilerUtils.m (STCPrimaryExpression): Remove repeated
|
|
|
|
|
attribute declaration from the implementation.
|
|
|
|
|
|
2012-02-07 09:29:14 +00:00
|
|
|
|
2012-02-07 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STSourceReader.m (-lineNumberForIndex:): Fix unintended fall through
|
|
|
|
|
in a switch statement detected by clang.
|
|
|
|
|
|
2012-02-07 09:22:40 +00:00
|
|
|
|
2012-02-07 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompiledScript.m (-executedInEnvironment:):
|
|
|
|
|
* STSmalltalkScriptObject.m (-forwardInvocation:):
|
|
|
|
|
Fix potential space leak detected by clang.
|
|
|
|
|
|
2012-01-15 17:50:54 +00:00
|
|
|
|
2012-01-15 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompiledScript.m (+initialize, -executeInEnvironment:): Rename
|
|
|
|
|
finalize selector to shutDown to avoid conflict with the NSObject
|
|
|
|
|
-finalize method.
|
|
|
|
|
|
2012-01-15 15:37:55 +00:00
|
|
|
|
2012-01-15 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompiler.m (-indexOfTemporaryVariable, -indexOfNamedReference,
|
|
|
|
|
-compilePrimary:, -compileExpression:): Minimal set of changes to
|
|
|
|
|
accomodate to large NSNotFound value on 64-bit machines.
|
|
|
|
|
|
2012-01-15 14:44:47 +00:00
|
|
|
|
2012-01-15 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STCompiler.m (-exceptionInfo): Return exceptionInfo dictionary.
|
|
|
|
|
|
|
|
|
|
* STCompiler.m (-compileMethodFromSource:forReceiver:, -compileString:,
|
|
|
|
|
-indexOfNamedReference:): Remove unneeded variables reported by gcc 4.6.
|
|
|
|
|
|
2012-01-15 13:27:14 +00:00
|
|
|
|
2012-01-15 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 09:04:40 +00:00
|
|
|
|
2012-01-15 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STBytecodeInterpreter.m: Remove unnecessary include of Objective-C
|
|
|
|
|
runtime header.
|
|
|
|
|
|
2011-01-20 08:50:33 +00:00
|
|
|
|
2011-01-20 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* SmalltalkInfo.plist: Add missing semicolons at end of plist
|
|
|
|
|
dictionaries.
|
|
|
|
|
|
2011-01-20 08:38:32 +00:00
|
|
|
|
2011-01-20 Wolfgang Lux <wolfgang.lux@gmail.com>
|
|
|
|
|
|
|
|
|
|
* STSourceReader.m (-readNextToken): Fix bug where an incorrect token
|
|
|
|
|
range was set for a string token that ends at the end of the input
|
|
|
|
|
string.
|
|
|
|
|
|
2005-09-05 20:03:05 +00:00
|
|
|
|
2005 Aug 17 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* NSObject+additions: new file, new method ifNil:block
|
|
|
|
|
|
2005-06-24 21:06:21 +00:00
|
|
|
|
2005 June 24 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* STCompiler: Fixed STUndefinedKeyException name as it was fixed in -base
|
|
|
|
|
|
2005-06-20 20:40:47 +00:00
|
|
|
|
2005 June 20 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Rewritten parts of STCompiler, STBytecodeInterpreter, STCompiled* and '
|
|
|
|
|
ST*Context: Smalltalk now refers to instance variables by name not by index.
|
|
|
|
|
This should allow creation of STActor class and final implementation of
|
|
|
|
|
instance variables in STScriptObject. Instance variables are accessed
|
|
|
|
|
by their name through Key-Value-Coding protocol.
|
|
|
|
|
|
2005-03-09 21:35:54 +00:00
|
|
|
|
2005 Mar 9 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Patch by Matthew D Swank: patch that keeps the temp space allocated to a
|
|
|
|
|
particular block, while avoiding naming conflicts by storing empty
|
|
|
|
|
strings as placeholders _after_ the block has been compiled (and the
|
|
|
|
|
names are no longer needed).
|
|
|
|
|
|
2004-11-09 21:12:19 +00:00
|
|
|
|
2004 Nov 9 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Remove STMethodSignatureForSelector as it was deprecated because of
|
|
|
|
|
inportability to OSX.
|
|
|
|
|
|
2005-01-04 21:51:13 +00:00
|
|
|
|
2004 Nov 2 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Changed super of STBytecodes from NSData to NSObject - there were some
|
|
|
|
|
OSX issues
|
|
|
|
|
|
2004-07-10 11:12:35 +00:00
|
|
|
|
2004 Jul 10 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Applied patch from Alexander V. Diemand (fixed bug #9595) - fixed
|
|
|
|
|
maximum number of literals, fixed longjmp
|
|
|
|
|
|
|
|
|
|
2004 Jun 28 Stefan Urbanek
|
2004-06-28 21:11:50 +00:00
|
|
|
|
|
|
|
|
|
* Fixed expresion duplicating.
|
|
|
|
|
|
2004-06-28 19:36:33 +00:00
|
|
|
|
2004 Jun 27 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Version 0.8.1
|
|
|
|
|
|
2004-06-20 12:16:19 +00:00
|
|
|
|
2004 Jun 20 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Added a fix to the compiler from Mateu Batle
|
|
|
|
|
|
2004-05-27 19:49:58 +00:00
|
|
|
|
2004 May 27 Stefan Urbanek
|
|
|
|
|
|
|
|
|
|
* Fixed bug with signed/unsigned bytecode, which made StepTalk to crash if
|
|
|
|
|
has more than 127 literals in the array. (patch by Mateu Batle)
|
|
|
|
|
|
2003-09-28 20:57:06 +00:00
|
|
|
|
2003 Sep 28 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* NSNumber: fixed -NSNumber to:step:do: - now accepts negative step.
|
|
|
|
|
(Patch by Alexander Diemand)
|
|
|
|
|
|
2003-09-24 16:52:29 +00:00
|
|
|
|
2003 Sep 24 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* Guard compilation with an autorelease pool
|
|
|
|
|
|
|
|
|
|
2003 Sep 23 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* STBytecodeInterpreter: fixed memory leak (reported by Alexander Diemand)
|
|
|
|
|
|
2003-08-05 20:23:47 +00:00
|
|
|
|
2003 Aug 5 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* STScriptObject renamed to STSmalltalkScriptObject, because of steptalk
|
|
|
|
|
core change.
|
|
|
|
|
|
|
|
|
|
2003 May 17 Stefan Urbanek <urbanek@host.sk>
|
2003-05-17 20:01:35 +00:00
|
|
|
|
|
|
|
|
|
* STSourceReader: treat decimal point followed by whitespace as '.' dot -
|
|
|
|
|
end of statement.
|
|
|
|
|
|
|
|
|
|
2003 May 9 Stefan Urbanek <urbanek@host.sk>
|
2003-05-10 12:01:59 +00:00
|
|
|
|
|
|
|
|
|
* NSString+additions: added
|
|
|
|
|
|
|
|
|
|
2003 May 4 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* SmalltalkEngine: remove exception guard to allow debugging
|
|
|
|
|
|
2003-04-29 13:55:51 +00:00
|
|
|
|
2003 Apr 29 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* STSourceReader: fixed reading of identifiers at the end of source
|
|
|
|
|
|
2003-04-21 22:28:45 +00:00
|
|
|
|
2003 Apr 21 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* Version 0.7.1
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2003 Apr 6 Stefan Urbanek <urbanek@host.sk>
|
|
|
|
|
|
|
|
|
|
* STCompiler: compileString: fixed exception reporting.
|
|
|
|
|
|
2003-04-04 10:57:04 +00:00
|
|
|
|
2003 Apr 04 David Ayers <d.ayers@inode.at>
|
|
|
|
|
|
|
|
|
|
* GNUmakefile: Added flags to show all warnings except for import.
|
|
|
|
|
* STBlock.m: Initialzed variables to supress compiler warnings.
|
|
|
|
|
* STCompiledMethod.m: Added needed import.
|
|
|
|
|
* STCompiler.m: Added missing declaration. Wrapped declarations only
|
|
|
|
|
needed for DEBUG into #ifdefs to supress compiler warnings.
|
|
|
|
|
Initialzed variables to supress compiler warnings.
|
|
|
|
|
* STExecutionContext.m: Unified name for private categories.
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2003 Mar 25 Stefan Urbanek <urbanek@host.sk>
|
2003-03-25 09:32:20 +00:00
|
|
|
|
|
|
|
|
|
* STSourceReader: added missing [super dealloc]
|
|
|
|
|
* STCompiledCode: do not retain bytecode data
|
|
|
|
|
* STCompiler: various memory leak fixes
|
2003-03-25 18:31:18 +00:00
|
|
|
|
* SmalltalkEngine: guard compilation exception and release the compiler
|
2003-03-25 09:32:20 +00:00
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2003 Mar 23 Stefan Urbanek <urbanek@host.sk>
|
2003-03-23 12:48:29 +00:00
|
|
|
|
|
|
|
|
|
* STSourceReader: added some end of string checks
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2003 Feb 3 Stefan Urbanek <urbanek@host.sk>
|
2003-02-03 19:28:23 +00:00
|
|
|
|
|
2003-02-03 19:56:26 +00:00
|
|
|
|
* Version 0.7.0
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2003 Feb 3 Stefan Urbanek <urbanek@host.sk>
|
2003-02-03 19:56:26 +00:00
|
|
|
|
|
|
|
|
|
* STSourceReader: fixed reading of a number terminated with '.', we treat
|
|
|
|
|
it as an integer. Reader was complaining about i := 1.; fixed reading of
|
|
|
|
|
var:=something. It was terating 'var:' as a selector keyword.
|
2003-02-03 19:28:23 +00:00
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2003 Jan 30 Stefan Urbanek <urbanek@host.sk>
|
2003-01-30 18:32:39 +00:00
|
|
|
|
|
|
|
|
|
* ChangeLog, STBlock.m, STBytecodes.h,
|
|
|
|
|
STBytecodes.m, STCompiledMethod.m,
|
|
|
|
|
STCompiler.h, STCompiler.m, STCompilerUtils.h,
|
|
|
|
|
STCompilerUtils.m, STExecutionContext.m, STGrammar.m,
|
|
|
|
|
STGrammar.y, STLiterals.h, STLiterals.m,
|
|
|
|
|
STMethodContext.h, STSourceReader.h, SmalltalkEngine.m:
|
|
|
|
|
Cleanup of compiler warnings
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Dec 25 Stefan Urbanek <urbanek@host.sk>
|
2003-01-15 08:29:05 +00:00
|
|
|
|
|
|
|
|
|
* Version 0.6.2
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Dec 21 Stefan Urbanek <urbanek@host.sk>
|
2002-12-21 22:13:15 +00:00
|
|
|
|
|
|
|
|
|
* STSourceReader, STCompiler, STGrammar: Added real number parsing
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Sep 15 Stefan Urbanek <urbanek@host.sk>
|
2002-12-21 22:13:15 +00:00
|
|
|
|
|
|
|
|
|
* Version 0.6.1
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Aug 30 Stefan Urbanek <urbanek@host.sk>
|
2002-08-30 12:49:09 +00:00
|
|
|
|
|
|
|
|
|
* Code cleanup.
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jun 14 Stefan Urbanek <urbanek@host.sk>
|
2002-06-14 08:35:11 +00:00
|
|
|
|
|
|
|
|
|
* STMethodContext: Raise exception on invalid reference, not on undefined
|
|
|
|
|
object
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jun 13 Stefan Urbanek <urbanek@host.sk>
|
2002-06-14 08:35:11 +00:00
|
|
|
|
|
|
|
|
|
* STCompiledMethod: Removed unused methods
|
|
|
|
|
* STBytecodeInterpreter: rewritten context handling; removed unused methods
|
|
|
|
|
* STBlockContext: rewritten context handling; cleaned exception handler
|
|
|
|
|
* STGrammar.y: fixed empty arrays #()
|
|
|
|
|
* STExecutionContext: removed parent context as it is longer used
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jun 7 Stefan Urbanek <urbanek@host.sk>
|
2002-06-07 22:13:51 +00:00
|
|
|
|
|
|
|
|
|
* STBytecodeInterpreter: fixed debug-log bug
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jun 6 Stefan Urbanek <urbanek@host.sk>
|
2002-06-06 17:14:05 +00:00
|
|
|
|
|
|
|
|
|
* STSourceReader: fixed bug in reading number token type and binary
|
|
|
|
|
selectors beginning with the '-' character.
|
|
|
|
|
* Moved NSObject-additions to the StepTalk sources
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 May 29 Stefan Urbanek <urbanek@host.sk>
|
2002-05-29 21:57:33 +00:00
|
|
|
|
|
|
|
|
|
* STCompiledScript: assign return value on executing single-method script
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 May 15 Stefan Urbanek <urbanek@host.sk>
|
2002-05-14 23:42:25 +00:00
|
|
|
|
|
|
|
|
|
* STCompiler, Externs, STGrammar: fixed undefined exceptions (reported by
|
|
|
|
|
Bj<42>rn Gohla <b.gohla@gmx.de>)
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Mar 17 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* STCompiler, STGrammar: changed grammar to be able to have "methods" or
|
|
|
|
|
"just statements" in source
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Feb 14 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* STSourceReader: Retain character sets
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Feb 5 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* STSelector+additions.[hm]: new files
|
|
|
|
|
* STCompiler: use STSelector class for symbol literals
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Feb 3 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* STScriptObject: handle special method 'exit'
|
|
|
|
|
* STBytecodeInterpreter: added code to halt the interpreter and return from
|
|
|
|
|
all contexts
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jan 31 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* STBlock: small speed improvements
|
|
|
|
|
* STBlockContext: removed evaluateWithArguments:count:, and moved code
|
|
|
|
|
into STBLock
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jan 23 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* NSNumber+additions: moved arithmetic code to the library
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jan 22 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* STCompiler: create one more duplicate of stack top when assigning to a
|
|
|
|
|
variable.
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2002 Jan 9 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* SmalltalkEngine: implemented executeScript:inEnvironment:
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2001 Dec 8 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* Fixed temporary variable compilation
|
|
|
|
|
* Added special handling of nil, YES and NO constants; added corresponding
|
|
|
|
|
bytecodes
|
|
|
|
|
|
2003-04-06 12:59:13 +00:00
|
|
|
|
2001 Dec 8 Stefan Urbanek <urbanek@host.sk>
|
2002-05-13 22:13:06 +00:00
|
|
|
|
|
|
|
|
|
* CahgeLog started
|
|
|
|
|
|