WOW. Sean that is super cool. I have to admit I never thought you were gonna
be able to di it.
This is awesome and I've been there (but never took the time to solve it).

Please, do a blog post!

On Sat, Sep 10, 2011 at 12:20 AM, Sean P. DeNigris <[email protected]>wrote:

> Huge thanks to Igor and Mariano. I recovered the image. Just in case anyone
> ever has a similar problem, the solution was:
>
> 1. Test for selector in CoInterpreter>>commonSend
>       ...
>       (messageSelector = #halt) ifFalse: [ "the conditional was added"
>       self internalFindNewMethod.
>       self internalExecuteNewMethod  ].
>
>       self fetchNextBytecode.
>
> 2. Manually edit the condition in gcc3x-cointerp.c:
>       char* realSelector = GIV(messageSelector) + BaseHeaderSize;
>       if (strncmp(realSelector, "halt", 4) == 0)
>              puts("Skipping halt...");
>       else { ...
>
> Although I lost the better part of a day, it's a very powerful feeling to
> start building basic VM skills and know that errors that used to be magical
> and fatal can now be resolved...
>
> Cheers,
> Sean
>
> --
> View this message in context:
> http://forum.world.st/Oops-I-put-a-halt-in-a-startup-method-tp3800163p3802931.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to