Building latest Unix VM - how?
Scott A Crosby
crosby at qwes.math.cmu.edu
Sat Jan 19 13:06:20 UTC 2002
On 19 Jan 2002, Cees de Groot wrote:
> Hi,
>
> Because I want to look into Squeak's consuming inordinate CPU resources now
> and then (constantly calling gettimeofday()) and because I want to extent the
There is a lot in the VM avenue thats hopefully oncoming. Mostly patches
from myself and Andraes Raab. He's got one that removes a most of those
calls. (About 90% come from primitiveResponse trying to decide whether a
primitive has taken 'too long' and a timer interrupt should be flicked.)
(I can forward it to you; I've not run it myself; only read it.)
I've got one that redoes the methodcache. ~30% improvement in
macrobenchmarks.
And Andraas has several that make fullGC's a lot less frequent on the VM
side. WHen I next rebuild a new VM, I'll try all of em together. I've got
one that makes them less frequent on the smalltalk side. I wonder if I'll
be able to run a full macrobenchmarks without a single fullGC. :)
There's also another place (in commonSend, I believe) where a
a _ b _ XXXX
doesn't inline XXX, while
b _ XXXX. a _ b.
does, and give a few percent.
So, I'd consider applying those, then playing with the resultant VM before
doing much VM hacking.
> socket primitives to accept an IP address to listen on (so you can run it
> besides Apache on port 80, both on their own IP address; sort of important for
> hosting Squeak), I am trying to build a recent VM under Linux.
>
> I've tried VMMaker and Tim's platforms zip file, but that had all sort of
> problems with paths and a broken configure; the platforms/ from SourceForge
> are much better, but the makefile is not updated for the plugins (a line
> '@auto_make@' lingers in the generated Makefile). Could someone help me in
> building My Own Hacker VM?
I have the same trouble with the makefile being built wrong. If I remove
that line, I get another error (declaration and definition of a function
mismatch), fix that, and I get a bunch of missing symbols during
the compile. Then I decided to wait another few weeks and try again.
If you find a recipee that works, I may try it myself.
What I have: I grab the unix source tree (the old, non-vmmaker tree). Run:
Time millisecondsToRun: [
Interpreter translate: 'interp.c' doInlining: true.
Smalltalk beep]
Which builds everything. Then *move* the generated files into the source
tree and tada. Note that that source tree has a bug in sockets causing
crashes, so grab the patch.
>>>
@@ -547,7 +325,7 @@
static int socketValid(SocketPtr s)
{
- if ((s != 0) && (s->privateSocketPtr != 0) && (s->sessionID == thisNetSession ))
+ if ((s != 0) && (thisNetSession != 0) && (s->privateSocketPtr != 0) && (s->sessionID == thisNetSession))
return true;
interpreterProxy->success(false);
return false;
@@ -596,14 +374,19 @@
pss->pendingEvents= 0;
}
<<<
Thats what I'll run till vmmaker works for me.
Scott
More information about the Squeak-dev
mailing list
|