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. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Strange OpCodes: IG: Insert Garbage |
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? No outraged screams from me. Dave |
> On 2020-07-02, at 6:32 PM, David T. Lewis <[hidden email]> 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 -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim To steal ideas from one person is plagiarism; to steal from many is research. |
In reply to this post by David T. Lewis
> On Jul 2, 2020, at 6:32 PM, David T. Lewis <[hidden email]> 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? > > No outraged screams from me. Nor from me, but one weak bleat for it to read (1024 * 1024 * 1024 min: SmallInteger maxVal) And perhaps I should fix vmParameterAt:[put:] for very few cases including this one. > > Dave > > |
On Fri, Jul 03, 2020 at 11:17:52AM -0700, Eliot Miranda wrote:
> > > > On Jul 2, 2020, at 6:32 PM, David T. Lewis <[hidden email]> 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? > > > > No outraged screams from me. > > Nor from me, but one weak bleat for it to read > > (1024 * 1024 * 1024 min: SmallInteger maxVal) +1 Weakly bleating in the affermative (the intent is much clearer when written this way). Dave |
In reply to this post by timrowledge
Hi Tim, On Thu, Jul 2, 2020 at 4:35 PM tim Rowledge <[hidden email]> 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. On looking at the VM codee it's clear that this is really a VM bug, and the vmParameter primitives really should accept/return full width integers for this parameter. I've fixed it and pushed. So feel free to revert the image fix at some stage. 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. I have a whole architecture for this ;-) _,,,^..^,,,_ best, Eliot |
Free forum by Nabble | Edit this page |