Hey Marcus (or those knowledgable about stacks and contexts) - to self #1 - where the create button generates a class instead of a method, I���m a bit out of my depth.

I can see there is a DoesNotUnderstandDebugAction (which the create button calls).

So to determine if the failure was due to a missing class or method - would this work?

msg := self interruptedContext tempAt: 1.
(msg lookupClass == UndefinedObject ) ifTrue: [ ��� create a class

E.g. if you���re trying to send a msg to nil (which is what got patched into the compiled method for a missing class) then you are dealing with a missing class?


AND then for create a class - how do I extract the name?

I can get the compiled method for msg - but how do I marry that up with what you were executing? Am I write in thinking that the AST nodes and there locations might line up with the stack pointer somehow (or something like that)��� if I can get that - then I get the name of the missing class and can then create it and then rerun the method right?

This is very neat stuff I ���ve never played with before.

Tim





On 9 Aug 2018, at 11:02, Marcus Denker <marcus.denker@inria.fr> wrote:



On 9 Aug 2018, at 10:59, Guillermo Polito <guillermopolito@gmail.com> wrote:

Hi Marcus,

Is it wise to backport things that may break things like this?
maybe not, but it just took 5 minutes as it is very simple

I'd prefer to put the energy on backporting the workaround to avoid the infinite debuggers...


Yes.

On Thu, Aug 9, 2018 at 10:50 AM Marcus Denker <marcus.denker@inria.fr> wrote:

2) when coding - if you want reference a missing class, why don���t we let you? TonelReader seems to do it, why can���t the editor? (This probably applies to variables as well - show them broken, let me fix it when I choose. The iVar case is a little rarer - although I hate the way we prompt fix, prompt fix instead of doing it in one go - it���s very old fashioned)


This is fixed in Pharo7: we added a menu entry ���leave undeclared��� as the first option:
<leave undeclared.png>
Does anyone have tips on solving these? It spoils the exercism experience that I thought we could convey, so I���d like to at least fix #1 in 6.1 if I can.


I will back port the fix for 2) to Pharo6 and will do a quick prototype for 1) 



Marcus



--
   
Guille Polito
Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille
CRIStAL - UMR 9189
French National Center for Scientific Research - http://www.cnrs.fr

Phone: +33 06 52 70 66 13