sweep failed to find exact end of memory

Bert Freudenberg bert at freudenbergs.de
Wed Feb 21 20:33:04 UTC 2007


On Feb 21, 2007, at 21:00 , Avi Bryant wrote:

> On 2/21/07, tim Rowledge <tim at rowledge.org> wrote:
>>
>> On 21-Feb-07, at 10:58 AM, Avi Bryant wrote:
>>
>> > On 2/21/07, tim Rowledge <tim at rowledge.org> wrote:
>> >
>> >> It's an old issue; look up assorted reports of problems with > 2Gb
>> >> pointers. The VM code is mostly written under the assumption that
>> >> singed integers suffice for pointers and we really need to fix  
>> that.
>> >> It's an issue of available time.
>> >
>> > Do you have an estimate, hopefully under 1 million euros, of  
>> what it
>> > would take to fix this?
>>
>> That's a distressingly difficult question to answer. I bet there are
>> some nasty hacks one could do that would 'fix' it on the basis of
>> forcing the C compiler to do signed-unsigned conversions but... I
>> never trust a C compiler. Aside from Slang code there are of course
>> the primitives and platform code that would be indirectly affected,
>> if only at the level of "I have change this decl to stop an oodleplex
>> of compiler warnings obscuring a real problem". There's also a
>> boatload of VMMaker patches needing proper integration anyway and it
>> would stupid not to do them as well.
>>
>> I'd love to say, "oh a week" but long experience suggests that the
>> truth is normally "double the digits and up the unit" so probably
>> 'two months' is higher in the truthiness scale.
>
> Avoiding hacks and warnings and integrating VMMaker patches are all
> laudable things, but do you even have two months to spare, funded or
> no?  What would it take to get a temporary fix to this bug, however
> ugly?

A hack to fix exactly this one reproducible failure might be  
relatively simple, because it looks debuggable. But we fixed a lot of  
places already, and there are always more lurking it seems.

> I've seen it myself and can be a bit of a showstopper if you
> like to work with large images.  We could certainly pay for a week of
> someone's time to do this if that was an option.

Well, unless you really fix it, by pretty much rewriting the whole  
code generator to use actual pointers for oops and patching the  
places in the interpreter that require signed ints and fixing all the  
plugins, you can't be anywhere near certain that the code actually  
does what you intend it to do. The ground is laid in the 64 bit work,  
but this is not tested extensively either, and probably buggy.

- Bert -





More information about the Squeak-dev mailing list