Building a Croquet VM on unix

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

Building a Croquet VM on unix

Tapple Gao
Hi. I'm trying to build a VM that can run Cobalt on my Linux
machine. I'm running VMMaker-ar.70 out of the Homebase image.
I can't figure out what revision of the C code I am supposed to
use, however. I tried two plausible revisions:

http://squeakvm.org/svn/squeak/trunk rev 1966 (current latest)
http://squeakvm.org/svn/squeak/trunk rev 1796 (the revision HydraVM was forked from)

Both had the same issue:

If I try compiling CroquetPlugin as internal, the linker fails to
find "triBoxOverlap"

If I try compiling CroquetPlugin as external, the compile
completes, but the test CroquetVMTests >> #testCroquetPlugin
fails, and a notification is printed on the console about
"triBoxOverlap" not being found.

Does anyone know which revision of the C code I should use? I
have a feeling I'm using the wrong C code.

My VMMaker config file is attached, as well as plugins.int and
plugins.ext

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/

cobalt-unix.config (2K) Download Attachment
plugins.ext (609 bytes) Download Attachment
plugins.int (109 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Building a Croquet VM on unix

Joshua Gargus-2
The easiest thing is probably to remove #primitiveTriBoxIntersects  
from CroquetPlugin (AFAICT, it's not used in a few-months-old Cobalt  
release, and I doubt that's changed recently).  Then, regenerate the  
plugin C source with VMMaker (or just edit that function out of the  
already-generated C source).

I'm also attaching tribox.c, which contains the missing function, but  
be warned that Andreas says that the function is "broken" (I don't  
know the details... probably some numeric edge-case that potentially  
breaks replication).

Good luck,
Josh










On Jan 26, 2009, at 10:55 AM, Matthew Fulmer wrote:

> Hi. I'm trying to build a VM that can run Cobalt on my Linux
> machine. I'm running VMMaker-ar.70 out of the Homebase image.
> I can't figure out what revision of the C code I am supposed to
> use, however. I tried two plausible revisions:
>
> http://squeakvm.org/svn/squeak/trunk rev 1966 (current latest)
> http://squeakvm.org/svn/squeak/trunk rev 1796 (the revision HydraVM  
> was forked from)
>
> Both had the same issue:
>
> If I try compiling CroquetPlugin as internal, the linker fails to
> find "triBoxOverlap"
>
> If I try compiling CroquetPlugin as external, the compile
> completes, but the test CroquetVMTests >> #testCroquetPlugin
> fails, and a notification is printed on the console about
> "triBoxOverlap" not being found.
>
> Does anyone know which revision of the C code I should use? I
> have a feeling I'm using the wrong C code.
>
> My VMMaker config file is attached, as well as plugins.int and
> plugins.ext
>
> --
> Matthew Fulmer -- http://mtfulmer.wordpress.com/
> <cobalt-unix.config><plugins.ext><plugins.int>


tribox.c (10K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Building a Croquet VM on unix

Joshua Gargus-2

On Jan 26, 2009, at 12:48 PM, Joshua Gargus wrote:
>
> I'm also attaching tribox.c, which contains the missing function,  
> but be warned that Andreas says that the function is "broken" (I  
> don't know the details... probably some numeric edge-case that  
> potentially breaks replication).
>

It turns out that it's even worse... the code is actually broken;  
under some situations it returns completely bogus results.

Josh



Reply | Threaded
Open this post in threaded view
|

Re: Building a Croquet VM on unix

Ross Boylan
In reply to this post by Tapple Gao
On Mon, 2009-01-26 at 13:55 -0500, Matthew Fulmer wrote:
> Hi. I'm trying to build a VM that can run Cobalt on my Linux
> machine.
Does the out-of-the-box one run for you?  I can get it to run, sort of.
That is, if I don't run a croquet world things seem OK; if I do run such
a world it's pretty iffy.

> I'm running VMMaker-ar.70 out of the Homebase image.
> I can't figure out what revision of the C code I am supposed to
> use,
I've been trying to do the same thing, but haven't got any definite
answer except that the Cobalt VM apparently is taken unchanged from
Croquet.  Where that came from, no one has said.

I filed a bug at
http://croquet-src-01.oit.duke.edu/mantis/view.php?id=178
about this being unclear.

>  however. I tried two plausible revisions:
>
> http://squeakvm.org/svn/squeak/trunk rev 1966 (current latest)
> http://squeakvm.org/svn/squeak/trunk rev 1796 (the revision HydraVM was forked from)
>
If I had to guess, I'd pick something earlier, since croquet forked off
a considerably earlier version of squeak than present.  However, the
changelog indicates some croquet specific changes made to the unix
sources relatively recently, so I'm not sure what the solution is.

I would have started with head too :(.

Ross Boylan

> Both had the same issue:
>
> If I try compiling CroquetPlugin as internal, the linker fails to
> find "triBoxOverlap"
>
> If I try compiling CroquetPlugin as external, the compile
> completes, but the test CroquetVMTests >> #testCroquetPlugin
> fails, and a notification is printed on the console about
> "triBoxOverlap" not being found.
>
> Does anyone know which revision of the C code I should use? I
> have a feeling I'm using the wrong C code.
>
> My VMMaker config file is attached, as well as plugins.int and
> plugins.ext
>