On 2010-02-22, at 6:48 PM, Javier Pimás wrote:
Nice!!!!!!!! It's compiling now. Now, I loaded tests, and here are the results:
37 run, 17 passed, 0 failures, 20 errors.
TestCallingSequenceChar10Long2 TestCallingSequenceChar2LongLong2 TestCallingSequenceChar8Long2 TestCallingSequenceChar9Long2 TestCallingSequenceCharLongLong2 TestCallingSequenceChars TestCallingSequenceDoubles14 TestCallingSequenceDoubles2 TestCallingSequenceFloats13 TestCallingSequenceFloats14 TestCallingSequenceFloats2 TestCallingSequenceFloats2WithInteger TestCallingSequenceFloats2WithInteger2 TestCallingSequenceFloats7 TestCallingSequenceInt TestCallingSequenceInt8 TestCallingSequenceIntWithFloatArgs TestCallingSequenceLongLong2 TestCallingSequenceShort TestCallingSequenceString
Oh look SUnits, great stuff (*cough* well I wrote most of them).
It is failing in places where it does primLoadLibrary: 'IA32ABI'. Why should it try to load itself, if it's compiled as an internal plugin? I compiled it as external too but didn't work either.
Well it compiled, but that doesn't mean it works. In fact the error means the plugin code is never loaded, or is callable. Now one thing to consider is that the plugin load fails, because it can't find it. (external usage). Or because (internal and external plugin) the VM Version and the plugin version don't match. Look for your definition of #define VM_PROXY_MINOR 8 It should be 8 or higher for compiling BOTH the VM and the Plugin. Since the sqVirtualMachine.h is in the IA32ABI folder maybe there is mass confusion about which header is being used? If for example your VM say it's a VM_PROXY_MINOR of 7, then it won't work with a plugin compiled with VM_PROXY_MINOR = 8. It silently fails... Well actually it gives the primLoadLibrary failure, but good luck in guessing why...
Other question, can classic FFI and Alien live nicely together (I mean have x plugin use classic FFI while y uses Alien)?
yes.
One more: should I use IA32ABIPlugin or IA32ABIPluginAttic? You can't have both in, right?
One is a subclass of the other. I use the IA32ABIPluginAttic one.
Syntax highligthing is broken for Alien primitive methods like these:
<primitive: 'primUnsignedShortAtPut' error: errorCode module: 'IA32ABI'>
Lastly, as I said when I loaded Alien Core the first time, I got this error while loading it:
Alien class>>#ensureInSpecialObjectsArray: "Index probably wrong".
What should I do about that? ignore it?
Well it seems to be related to ((Smalltalk includesKey: #ObjectMemory) and: [((Smalltalk at: #ObjectMemory) classPool at: #ClassAlien ifAbsent: []) ~~ (index - 1)]) ifTrue: [self error: 'index probably wrong']. Usually people don't have ObjectMemory loaded in their image, and I"m not sure what it is check for. Why don't you try it in a regular Pharo image versus your VMMaker image.
That's all for now, thanks!
Javier.
On Mon, Feb 22, 2010 at 4:32 PM, John M McIntosh <johnmci@smalltalkconsulting.com> wrote: You've not loaded Name: Alien-VMMaker-Support-John M McIntosh.8 Author: John M McIntosh Time: 11 January 2010, 12:53:14 am UUID: 6953c7ab-4924-48b0-9984-f15ec7fb7d2b
into your vmmaker image
so it's not build the interp.c pieces.
On 2010-02-22, at 8:18 AM, Javier Pimás wrote:
internalIsImmutable
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
-- Javier Pimás Ciudad de Buenos Aires
-- =========================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================