Done, now it's dying while running the tests. I'll try to make it work again tomorrow night (only if we finally get to release a new version of SqueakNOS, I promise). Here is the stack trace in case it's a known problem: Smalltalk stack dump: 0xbf78b038 M NBFFICallout class(NBNativeCodeGen class)>generateCode:andRetry: 2032660172: a(n) NBFFICallout class 0xbf78b9a8 I NativeBoostLinux32>getGlobalSymbolPointer: 2039879072: a(n) NativeBoostLinux32 0xbf78b9d0 I [] in NBUnixExternalHeapManager>mmapLength:prot:flags:into: 2041154832: a(n) NBUnixExternalHeapManager 0xbf78b9f4 I NBFFICallout>generate: 2041155916: a(n) NBFFICallout 0xbf78ba28 I [] in NBFFICallout class>cdecl:emitCall:options: 2032660172: a(n) NBFFICallout class 0xbf78ba64 I NBFFICallout class(NBNativeCodeGen class)>generateCode:andRetry: 2032660172: a(n) NBFFICallout class 0xbf78ba90 I NBFFICallout class(NBNativeCodeGen class)>handleFailureIn:nativeCode: 2032660172: a(n) NBFFICallout class 0xbf78babc I NBFFICallout class>cdecl:emitCall:options: 2032660172: a(n) NBFFICallout class 0xbf78bae8 I NBUnixExternalHeapManager>mmapLength:prot:flags:into: 2041154832: a(n) NBUnixExternalHeapManager 0xbf78bb20 I NBUnixExternalHeapManager>primAllocatePage: 2041154832: a(n) NBUnixExternalHeapManager 0xbf78bb50 I NBUnixExternalHeapManager(NBExternalHeapManager)>allocatePage: 2041154832: a(n) NBUnixExternalHeapManager 0xbf78bb74 M [] in NBUnixExternalHeapManager(NBExternalHeapManager)>allocate: 2041154832: a(n) NBUnixExternalHeapManager 0xbf78bb8c M IdentitySet(Collection)>detect:ifNone: 2041154916: a(n) IdentitySet 0xbf78bbc0 I [] in NBUnixExternalHeapManager(NBExternalHeapManager)>allocate: 2041154832: a(n) NBUnixExternalHeapManager 0xbf78bbe0 M [] in Semaphore>critical: 2041154856: a(n) Semaphore 0xbf78bc00 M BlockClosure>ensure: 2041155208: a(n) BlockClosure 0xbf78bc20 M Semaphore>critical: 2041154856: a(n) Semaphore 0xbf78bc44 I NBUnixExternalHeapManager(NBExternalHeapManager)>allocate: 2041154832: a(n) NBUnixExternalHeapManager 0xbf78bc6c I NativeBoostLinux32>basicAllocate: 2039879072: a(n) NativeBoostLinux32 0xbf78bc94 I NativeBoostLinux32(NativeBoost)>allocate: 2039879072: a(n) NativeBoostLinux32 0xbf78bcb8 I NativeBoostLinux32(NativeBoost)>initialize 2039879072: a(n) NativeBoostLinux32 0xbf78bcd0 M NativeBoostLinux32 class(Behavior)>new 2032913612: a(n) NativeBoostLinux32 class 0xbf78bcf4 I [] in NativeBoost class>discoverPlatformId 2032664204: a(n) NativeBoost class 0xbf78bd1c I [] in NativeBoost class(Behavior)>allSubclassesDo: 2032664204: a(n) NativeBoost class 0xbf78bd40 M Array(SequenceableCollection)>do: 2032915888: a(n) Array 0xbf78bd64 I NativeBoost class(Class)>subclassesDo: 2032664204: a(n) NativeBoost class 0xbf78bd88 I NativeBoost class(Behavior)>allSubclassesDo: 2032664204: a(n) NativeBoost class 0xbf78bdb0 I NativeBoost class>discoverPlatformId 2032664204: a(n) NativeBoost class 0xbf78bdd0 I NativeBoost class>forCurrentPlatform 2032664204: a(n) NativeBoost class 0xbf78bdf0 I NativeBoost class>allocate: 2032664204: a(n) NativeBoost class 0xbf78be10 M NBExternalAddressTests>testMemoryAccess 2039875280: a(n) NBExternalAddressTests 0xbf78be30 I NBExternalAddressTests(TestCase)>performTest 2039875280: a(n) NBExternalAddressTests 0xbf78be50 I [] in NBExternalAddressTests(TestCase)>runCase 2039875280: a(n) NBExternalAddressTests 0xbf78be70 M BlockClosure>ensure: 2039878812: a(n) BlockClosure 0xbf78be94 I NBExternalAddressTests(TestCase)>runCase 2039875280: a(n) NBExternalAddressTests On Wed, Mar 16, 2011 at 11:27 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 17 March 2011 03:20, Javier Pimás <elpochodelagente@gmail.com> wrote:
I'm also seeing that NBCoInterpreter and NBCoObjectMemory only have small modifications compared to the non NB ones. Maybe it is possible to merge them directly into cog with an enable/disable flag, so that building NB is the same as building Cog with NB enabled.
Yes, the changes are very small, but i wanted to keep them separate, so its easy to see them.
So if you can't wait, you can just patch the original classes and then generate VM sources using usual command. But don't forget to include NativeBoostPlugin as internal one.
If you using CMakeVMMaker, you do it like following:
| config | config := CogUnixConfig new. config internalPlugins: (cog internalPlugins copyWith: #NativeBoostPlugin).
config generateSourceFiles. config generate.
-- Best regards, Igor Stasenko AKA sig.
-- Javier Pimás Ciudad de Buenos Aires