On Thu, Apr 26, 2012 at 2:48 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
BTW...I did an image as you like Eliot, it crashes from startup :) https://gforge.inria.fr/frs/download.php/30652/PharoKernel-1.4-crash.zip
Cheers
On Thu, Apr 26, 2012 at 10:42 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
Hi Eliot. We are doing a crazy experiment where we serialize almost all PharoCore and we materialize it in a PharoKernel image. During the initialization (after the load), there is one line that crashes Cog:
PolymorphSystemSettings showDesktopLogo: true.
For what I can see, I may be related to the fact that #pharoLogoContents is too long or something like that?
That's exactly it. Could you send me the source and the symbolic for the pharoLogoContents method? i.e. symbolic is e.g. (Object >> # printOn:) symbolic. I want to see why the method has so many bytecodes. Then I can think about how to implement a sensible limit on the number of bytecodes.
the same experiment with StackVM works fine.
Of course in a normal image (without this experiment) I can do PolymorphSystemSettings showDesktopLogo: true. without problems.
From gdb i see:
(gdb) bt #0 0x0000a190 in compileCogMethod (selector=528828260) at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../src/vm/cogit.c: 3601 #1 0x00009088 in cogselector (aMethodObj=531503072, aSelectorOop=528828260) at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../src/vm/cogit.c: 3129 #2 0x0003268b in ceSendsupertonumArgs (selector=528828260, superNormalBar=0, rcvr=536158520, numArgs=0) at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../src/vm/gcc3x-cointerpmt.c:11007 #3 0x1f40006c in ?? () #4 0x00067350 in threadSchedulingLoop (vmThread=0x1030c00) at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../src/vm/gcc3x-cointerpmt.c:44006 #5 0x0003d2cb in initialEnterSmalltalkExecutive () at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../src/vm/gcc3x-cointerpmt.c:17788 #6 0x0003df8f in initStackPagesAndInterpret () at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../src/vm/gcc3x-cointerpmt.c:18208 #7 0x00022618 in interpret () at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../src/vm/gcc3x-cointerpmt.c:2066 #8 0x0006dc60 in -[sqSqueakMainApplication runSqueak] (self=0x1d0ca60, _cmd=0x124ebf) at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m:174 #9 0x93ad586c in __NSFirePerformWithOrder () #10 0x908b8dd2 in __CFRunLoopDoObservers () #11 0x90874ced in __CFRunLoopRun () #12 0x908743c4 in CFRunLoopRunSpecific () #13 0x908741f1 in CFRunLoopRunInMode () #14 0x97760e04 in RunCurrentEventLoopInMode () #15 0x97760af5 in ReceiveNextEventCommon () #16 0x97760a3e in BlockUntilNextEventMatchingListInMode () #17 0x96d1a595 in _DPSNextEvent () #18 0x96d19dd6 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] () #19 0x96cdc1f3 in -[NSApplication run] () #20 0x96cd4289 in NSApplicationMain () #21 0x0006b9f9 in main (argc=1, argv=0xbffff688, envp=0xbffff690) at /Users/mariano/Pharo/VM/git/cogVMBlessedSSH/blessed/build/../platforms/iOS/vm/Common/main.m:52
And the line that fails is: allocateOpcodesbytecodes((numBytecodes + extra) * 10, numBytecodes);
numBytecodes is 49729 and extra is 10.
Any idea?
thanks!
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com