[squeak-dev] AllocationTest>>#testOutOfMemorySignal fails on 32bit system

tim Rowledge tim at rowledge.org
Fri Jul 3 01:37:49 UTC 2020

> On 2020-07-02, at 6:32 PM, David T. Lewis <lewis at mail.msen.com> wrote:
> On Thu, Jul 02, 2020 at 04:35:03PM -0700, tim Rowledge wrote:
>> On a Raspberry Pi OS 32bit this test fails because of an oversight - the parameter passed to vmParameterAt:put: cannot exceed SmallInteger maxVal. It makes the careful testing for 32/64bit image seem a bit silly.
>> This means we can only ask for up to ~1GB space for free space on a 32bit image system and so I propose to clamp the requested value in AllocationTest>>#setFreeSpaceLimitOf:around: There don't appear to be any other places right now that need attention.
>> If I don't hear any outraged screams soon I'll just commit it to trunk.
> So rather than
>  1024 * 1024 * 1024
> it should instead be
>  16r3FFFFFFF
> so that is it less than or equal to SmallInteger maxVal for either 32 or
> 64 bit images. Is that the change?

It varies a bit for 32/64 bit (and strictly I guess it ought to check to see how much memory is actually available?) but must exceed SmallInteger MaxVal because of the VM code for primitiveVMParameter which fails if the input value is not a SmallInt. So, I claim we need to clamp the result of 
(Smalltalk vmParameterAt: 1) + bytes asInteger
or the test cannot pass.

tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
To steal ideas from one person is plagiarism; to steal from many is research.

More information about the Squeak-dev mailing list