[squeak-dev] Endless recursion: "String new: -1"

Levente Uzonyi leves at caesar.elte.hu
Thu Jul 7 07:23:14 UTC 2016


Someone seems to have trimmed the versions in the changes file. In Squeak 
4.4 Behavior >> #basicNew: had the following body:

 	<primitive: 71>
 	self isVariable ifFalse:
 		[self error: self printString, ' cannot have variable sized instances'].
 	(sizeRequested isInteger and: [sizeRequested >= 0]) ifTrue:
 		["arg okay; space must be low."
 		OutOfMemory signal.
 		^ self basicNew: sizeRequested  "retry if user proceeds"].
 	self primitiveFailed

So, non-integer and negative arguments were primitive failures.

Levente


On Wed, 6 Jul 2016, David T. Lewis wrote:

> On Wed, Jul 06, 2016 at 06:43:25AM -0700, marcel.taeumel wrote:
>> Hi, there!
>>
>> Is it okay that there is an endless recursion when evaluating "String new: -1"?
>
> No, it is not okay. It should fail with a primitive failure.
>
> Dave
>
>
>>
>> ...
>> ByteString class(Behavior)>>handleFailingFailingBasicNew:
>> ByteString class(Behavior)>>handleFailingBasicNew:
>> ByteString class(Behavior)>>basicNew:
>> ByteString class(Behavior)>>handleFailingFailingBasicNew:
>> ByteString class(Behavior)>>handleFailingBasicNew:
>> ByteString class(Behavior)>>basicNew:
>> ByteString class(Behavior)>>handleFailingFailingBasicNew:
>> ByteString class(Behavior)>>handleFailingBasicNew:
>> ByteString class(Behavior)>>basicNew:
>> ...
>>
>> I would like to have an error signaled instead. Note that the -1 is just an
>> example for a bad computation. The error I get is "Space is low" then. :-)
>>
>>
>> Best,
>> Marcel
>>
>>
>>
>> --
>> View this message in context: http://forum.world.st/Endless-recursion-String-new-1-tp4905179.html
>> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>
>


More information about the Squeak-dev mailing list