Hi,
My, possibly wrong, understanding is that it is fixed if you get a
somewhat recent version of vm-maker. It's the lack of a '.' in
a method.
The problem seems to be that Ian, the generator of the unix vm, uses
and older vm-maker. I don't know why this would be, but, surely he
has his reasons.
A simple fix is:
The code is (from the gnu-interp.c file, though interp.c is the same):
if (((((usqInt) ((longAt(foo->freeBlock)) & AllButTypeMask))) <
(((usqInt) foo->growHeadroom))) &&
+(foo->gcBiasToGrow > 0)) {
/* begin biasToGrow */
/* HERE's the new line! */
growSize = (((sqInt) (foo->growHeadroom * 3) >> 1)) - ((longAt(foo-
>freeBlock)) & AllButTypeMask);
/* begin growObjectMemory: */
foo->statGrowMemory += 1;
limit = sqGrowMemoryBy(foo->memoryLimit, growSize);
if (!(limit == foo->memoryLimit)) {
foo->memoryLimit = limit - 24;
initializeMemoryFirstFree(foo->freeBlock);
}
weDidGrow = 1;
}
and all should be good. The problem is that growSize isn't set, and, newer
versions
gcc seem to set it to 0, rather than some random number not 0.
If the above code doesn't work justset growSize to something, say, 50000000
should
do the job. Ie, each grow would be 50meg.
cheers
bruce
On Wed, Mar 04, 2009 at 04:21:07PM +0100, Damien Cassou wrote:
> On Wed, Mar 4, 2009 at 4:17 PM, Bruce O'Neel <[email protected]> wrote:
> > If you want to patch your linux VM and rebuild from source I can
> > tell you where to fix it.
>
> Why not, but I would prefer to see the bug fixed in svn. Do you know
> why it isn't there already?
>
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project