Is VM compilable with interp.c instead of gnu-interp.c ?

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

Is VM compilable with interp.c instead of gnu-interp.c ?

Vagelis Savvas
Hi folks,
i am trying to compile the 3.6.2 VM on Windows using a
Borland compiler (in order to have a decent debugger).
Thus i cant use gnu-interp.c which requires labels as values
(BC_JUMP_TABLE in sqGnu.h is unaccepted for the Borland compiler).
I've managed to build the VM and all internal plugins
with minor source code changes (mostly to deal with union
member access). So i'm pretty confident that i havent broken
anything.
Unfortunately i am getting a runtime error about an invalid
floating point operation at the very beggining of the
VM's execution. The error happens in loadFloatOrIntFrom
which in my case gets called from primitiveFloatEqualtoArg(..)
(which gets called at primitive 182).
After tweaking all possible compiler options that felt
like having an effect on the problem i gave up and started
typing what you are reading right now.
Any insight would be greatly appreciated. Andreas? Tim?

Regards

Vagelis

____________________________________________________________________
http://www.freemail.gr - δωρεάν υπηρεσία ηλεκτρονικού ταχυδρομείου.
http://www.freemail.gr - free email service for the Greek-speaking.

Reply | Threaded
Open this post in threaded view
|

Re: Is VM compilable with interp.c instead of gnu-interp.c ?

joshscholar
I can testify that I sucessfully built and ran the 3.7 VM from interp.c.

I built the 3.7 VM with Visual C++ 6.0 under Window 2000 without trouble (I
used VMMaker to set up the sources - and I forget what else).

That gave me a traceable debug version of the VM, which may not be as useful
as it sounds since I have no way to display Squeak objects and evironments
in the debugger.

I forget the exact steps I used to build everything.  I think I got the
directions from the Swiki about a year ago, built a release version with the
version of mingw32 they recommended (and bundled in a tar somewhere?) ...
and then put together a Visual C++ project that built a debug version that
works with Microsoft's debugger..

Anyway the micrsoft build works.

Joshua Scholar
----- Original Message -----
From: "Vagelis Savvas" <[hidden email]>
To: <[hidden email]>
Sent: Saturday, January 21, 2006 2:12 PM
Subject: Is VM compilable with interp.c instead of gnu-interp.c ?


> Hi folks,
> i am trying to compile the 3.6.2 VM on Windows using a
> Borland compiler (in order to have a decent debugger).
> Thus i cant use gnu-interp.c which requires labels as values
> (BC_JUMP_TABLE in sqGnu.h is unaccepted for the Borland compiler).
> I've managed to build the VM and all internal plugins
> with minor source code changes (mostly to deal with union
> member access). So i'm pretty confident that i havent broken
> anything.
> Unfortunately i am getting a runtime error about an invalid
> floating point operation at the very beggining of the
> VM's execution. The error happens in loadFloatOrIntFrom
> which in my case gets called from primitiveFloatEqualtoArg(..)
> (which gets called at primitive 182).
> After tweaking all possible compiler options that felt
> like having an effect on the problem i gave up and started
> typing what you are reading right now.
> Any insight would be greatly appreciated. Andreas? Tim?
>
> Regards
>
> Vagelis
>
> ____________________________________________________________________
> http://www.freemail.gr - δωρεάν υπηρεσία ηλεκτρονικού ταχυδρομείου.
> http://www.freemail.gr - free email service for the Greek-speaking.
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Is VM compilable with interp.c instead of gnu-interp.c ?

Andreas.Raab
In reply to this post by Vagelis Savvas
These links should help:

http://www.google.com/search?q=borland+floating+point+problem
http://www.virtualdub.org/blog/pivot/entry.php?id=53
http://homepages.borland.com/ccalvert/TechPapers/FloatingPoint.html

Note that it is possible that you are using libraries which are
dynamically linked (via DLLs) and therefore screw up those settings only
later - this will in particular be true if you compile any external
plugins via Borland's compiler.

There is actually a hack in sqWin32Intel.c (in squeakExceptionHandler())
which attempts to "fix" any such problems and I wonder why this isn't
kicking in - if you're using a debugger make sure that it does not
handle FPU exceptions but passes them onto the application's handler (I
don't remember Borland but MSVC has settings that allow passing certain
exceptions to the application and that's what you want).

Cheers,
   - Andreas

Vagelis Savvas wrote:

> Hi folks,
> i am trying to compile the 3.6.2 VM on Windows using a
> Borland compiler (in order to have a decent debugger).
> Thus i cant use gnu-interp.c which requires labels as values
> (BC_JUMP_TABLE in sqGnu.h is unaccepted for the Borland compiler).
> I've managed to build the VM and all internal plugins
> with minor source code changes (mostly to deal with union
> member access). So i'm pretty confident that i havent broken
> anything.
> Unfortunately i am getting a runtime error about an invalid
> floating point operation at the very beggining of the
> VM's execution. The error happens in loadFloatOrIntFrom
> which in my case gets called from primitiveFloatEqualtoArg(..)
> (which gets called at primitive 182).
> After tweaking all possible compiler options that felt
> like having an effect on the problem i gave up and started
> typing what you are reading right now.
> Any insight would be greatly appreciated. Andreas? Tim?
>
> Regards
>
> Vagelis
>
> ____________________________________________________________________
> http://www.freemail.gr - δωρεάν υπηρεσία ηλεκτρονικού ταχυδρομείου.
> http://www.freemail.gr - free email service for the Greek-speaking.
>
>