On Tue, Feb 23, 2010 at 12:19 AM, John M McIntosh < [email protected]> wrote:
> > 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). > > Cool, this is really really useful (although I sometimes find wrting tests boring ;) ). > > > 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... > Well, I just overwrote sqVirtualMachine.c/h in Cross/vm, shouldn't have I? It wouldn't compile if I didn't and its sets it to 8. Is it defined in any other place? > > > 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. > Ok, what is the difference between them? a performance issue? everything works the same I choose one or the other? > > > 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. > > In Pharo 1.0RC2 without any change, ObjectMemory doesn't exist. When I load VMMaker it's downloaded from monticello, but obviously, #ClassAlien isn't defined inside (Smalltalk at: #ObjectMemory) classPool Interestingly, after load alien, #ClassAlien gets added as a key, but all values of (Smalltalk at: #ObjectMemory) classPool are set to nil, like this: (Smalltalk at: #ObjectMemory) classPool inspect: - size : 119 [#AllButHashBits] : nil [#AllButMarkBit] : nil [#AllButMarkBitAndTypeMask] : nil [#AllButRootBit] : nil [#AllButTypeMask] : nil ... [#ClassAlien] : nil ... Any ideas? -- Javier Pimás Ciudad de Buenos Aires
_______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
