Seaside working on Pharo

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Seaside working on Pharo

Damien Cassou
Hi,

I've just written a small Installer-based script to install Seaside2.8
into Pharo image. Load the latest ScriptLoader from PharoInbox and do:

ScriptLoader loadSeaside

Unfortunately, this crashed my unix VM 2 times with the following message:

 squeak: /home/piumarta/squeak/platforms/unix/vm/sqUnixMemory.c:172:
uxGrowMemoryBy: Assertion `newDelta >= 0' failed.
Aborted


Sometimes it works though. To make it work more reliably, I pass
'-memory 512m' to the VM.

--
Damien Cassou
http://damiencassou.seasidehosting.st

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Seaside working on Pharo

Adrian Lienhard
On Mar 2, 2009, at 11:41 , Damien Cassou wrote:

> Unfortunately, this crashed my unix VM 2 times with the following  
> message:
>
> squeak: /home/piumarta/squeak/platforms/unix/vm/sqUnixMemory.c:172:
> uxGrowMemoryBy: Assertion `newDelta >= 0' failed.
> Aborted


Looks like http://bugs.squeak.org/view.php?id=6667

The problem is known for more than 2 years [1], but as far as I  
understand the fix has not been integrated in the unix VM yet.

See also http://www.nabble.com/newDelta-%3E0-failed-in-sqUnixMemory----Was-Re:--Pharo-project--Incompatibility-between-Pharo-and-Seasidehosting-td22119062.html

Cheers,
Adrian

[1] http://www.nabble.com/An-issue-with-Slang,-the-interpreter---the-VM,-and-a-period-in-biasToGrow.-td8515636.html

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Seaside working on Pharo

Bruce O'Neel-5
In reply to this post by Damien Cassou
Hi,

If you want to patch your linux VM and rebuild from source I can
tell you where to fix it.

cheers

bruce


On Mon, Mar 02, 2009 at 11:41:47AM +0100, Damien Cassou wrote:

> Hi,
>
> I've just written a small Installer-based script to install Seaside2.8
> into Pharo image. Load the latest ScriptLoader from PharoInbox and do:
>
> ScriptLoader loadSeaside
>
> Unfortunately, this crashed my unix VM 2 times with the following message:
>
>  squeak: /home/piumarta/squeak/platforms/unix/vm/sqUnixMemory.c:172:
> uxGrowMemoryBy: Assertion `newDelta >= 0' failed.
> Aborted
>
>
> Sometimes it works though. To make it work more reliably, I pass
> '-memory 512m' to the VM.
>
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Seaside working on Pharo

Damien Cassou
On Wed, Mar 4, 2009 at 4:17 PM, Bruce O'Neel <[hidden email]> 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
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Seaside working on Pharo

Bruce O'Neel-5

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 <[hidden email]> 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Seaside working on Pharo

Damien Cassou
On Wed, Mar 4, 2009 at 4:54 PM, Bruce O'Neel <[hidden email]> wrote:
> 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.

Thank you

--
Damien Cassou
http://damiencassou.seasidehosting.st

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project