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 <sean@clipperadams.com> 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