Am Jan 23, 2007 um 6:15 schrieb John M McIntosh:
ObjectMemory>>biasToGrow | growSize | growSize := growHeadroom*3/2 - (self sizeOfFree: freeBlock) self growObjectMemory: growSize
How clever, and if you've come this far, you've like seen the missing period. at the end of "growSize := growHeadroom*3/2 - (self sizeOfFree: freeBlock)"
Helpfully Slang doesn't complaint about the missing period and forges onward creating in-valid C code, without the proper meaning.
Ugh. Evil slang.
So the fix would be that the receiver of a keyword message must be a variable in Slang, and if it is not, we should complain? Or, make it translate to the actual equivalent C code, calling growObjectMemory with two arguments, the first of which would be
self(growHeadroom*3/2-sizeOfFree(freeBlock))
so this becomes
growSize = growObjectMemory(self(growHeadroom*3/2-sizeOfFree (freeBlock)), growSize)
Hrmm. For C code that looks even sensible. I guess comnplaining is way safer.
Hopefully people writing Slang code are muttering, gee I wonder if I have some code that isn't quite what I think it is?
Nah, couldn't ever happen to me. Ever. Err. (... goes looking ...)
- Bert -