[Vm-dev] Re: Having trouble with 4.2 on Linux

Ken Causey ken at kencausey.com
Tue May 24 22:47:40 UTC 2011


David said:
> Since you are on X86_64, make sure that you are compiling your VM in
> 32-bit mode (-m32 compiler flag). FFI does not work on 64-bit platforms,
> details at http://bugs.squeak.org/view.php?id=7237.
> 
> FYI, this can definitely be fixed (the patches were done a few years ago),
> but I would frankly be reluctant to try taking it on right now because it
> is a complex set of changes that must be coordinated in the platform support
> code, slang, and images, and there are quite a lot of other things going
> on with VMs these days, including Eliot's work on a new FFI.
> 
> The status of the 64-bit fixes and testing as of May 2008 is in the thread
> at http://lists.squeakfoundation.org/pipermail/vm-dev/2008-May/001945.html
> 
> Dave

Thanks Dave, I will try rebuilding the stock VM tomorrow with the
suggested flag and see what happens.

However I will take this opportunity to update everyone on why I finally
got fed up with it today.  I thought to myself if the test functions
were not being included in the plugin(and my cursory inspection suggests
the cmake configuration does not include ffi-test.*) then perhaps the
simplest thing I could do would be to create a simple interface to rand.
 So I created a new subclass of ExternalLibrary and tried to add a
testRand instance method.  However as soon as I finished typing
'<cdecl:' I started getting debuggers popping up for every keypress
related to parsing, I suspect having to do with Shout.  Yet I check the
preferences and under Browsing Shout and syntaxHighlightingAsYouType
(going from memory) are not enabled.  But in fact the syntax is being
colored as I type.  I can't figure out how to stop it.  So I just type
away and ignore the debuggers resulting in

testRand
   "Test rand"
   <cdecl: int 'rand' ()>
   ^self externalCallFailed

and I try to accept that but it will not accept it insisting that there
should be a return call type in the cdecl line even though I think I've
typed one in there.  I also tried <cdecl: int 'rand' (void)> as I'm not
sure which if either of these is correct, but the same result happens in
both cases.

Ken



More information about the Vm-dev mailing list