Sorry Marcus - you needed to follow the exercism instructions and right click 
on the exercism package to get an exercism menu to fetch a new exercise (e.g. 
hello-world). The is then using the TonalReader to pull in code - and then you 
get a test class that can reference a class that isn’t there yet. (But you need 
to have the exercism cli installed as per the instructions etc).

In retrospect I think it might be simpler to download this 6.1 image that 
already has done that - 
https://www.dropbox.com/s/x2ot9f8arbbvlyb/PharoExercism.zip?dl=0
It has TwoFerTest that is in that state. If you click on the  TestWithName orb, 
you will see "#new was sent to nil” - can you can see how my Create button has 
been fixed per you suggestions to create a class. (The code I wrote is in 
ExercismTools:DoesNotUnderstandDebugAction>>createMissingClassIn:)

Tim


> On 22 Aug 2018, at 04:44, Marcus Denker <[email protected]> wrote:
> 
> 
> 
>> On 17 Aug 2018, at 14:20, Tim Mackinnon <[email protected]> wrote:
>> 
>> The direct link to instructions is here: 
>> https://exercism.io/tracks/pharo/installation (not sure if you have to be 
>> signed up to see it otherwise its in the repo here: 
>> https://github.com/exercism/pharo/blob/master/docs/INSTALLATION.md)
>> 
> 
> Hm… AllExercismTests seems to not be there (just a green test in Welcome)
> 
> Is this supposed to contain the code below (the 
> createMissingClassActionFor:in:) ?
> 
> It would be nice to have an image that shows exactly the problem (I do not 
> have  that much time sadly to work on it,but I do have some time to check if 
> I have an image that is set up to the point where i can easily recreate the 
> problem)
> 
>       Marcus
> 
> 
>> Tim
>> 
>>> On 17 Aug 2018, at 07:17, Marcus Denker <[email protected]> wrote:
>>> 
>>> 
>>> 
>>>> On 17 Aug 2018, at 13:00, Tim Mackinnon <[email protected]> wrote:
>>>> 
>>>> 
>>>> Hi Marcus - I can put an image somewhere if that helps (do you just need 
>>>> the .image and .changes)?
>>>> 
>>>> Or you can repro from a fresh 6.1 if you follow the exercism Pharo 
>>>> instructions (https://exercism.io/tracks/pharo) to load the first hello 
>>>> world-world example and run the tests. This has my code changes to make 
>>>> create work with a nil class - but maybe we can do better?
>>>> 
>>> I will do that and have a look!
>>> 
>>>> Tim
>>>> 
>>>> 
>>>> Sent from my iPhone
>>>> 
>>>> On 17 Aug 2018, at 06:21, Marcus Denker <[email protected]> wrote:
>>>> 
>>>>> 
>>>>> 
>>>>>> On 10 Aug 2018, at 23:16, Tim Mackinnon <[email protected]> wrote:
>>>>>> 
>>>>>> Actually I think I figured that bit out - a bit clumsily - (pointers 
>>>>>> appreciated)
>>>>>> 
>>>>>> createMissingClassActionFor: aMessage in: aContext
>>>>>>   |errorNode senderContext newClass variableNode |
>>>>>>   senderContext := aContext sender.
>>>>>>   errorNode := senderContext method sourceNodeExecutedForPC: 
>>>>>> senderContext pc. 
>>>>>>   variableNode := errorNode receiver receiver.
>>>>>> 
>>>>>>   newClass := OCUndeclaredVariableWarning new node: variableNode; 
>>>>>> defineClass: variableNode name.
>>>>>>   aContext restart.
>>>>>> 
>>>>>> However that last line is wrong, as it doesn’t restart with my newly 
>>>>>> defined class - I also tried
>>>>>> 
>>>>>> aContext restartWithNewReceiver: newClass
>>>>>> 
>>>>>> But again, I get a debugger where my class is still bound to nil. So 
>>>>>> what’s the trick to re-evaluate with the new class I’ve created? Or 
>>>>>> maybe I’m totally on the wrong track (still its very interesting…)
>>>>>> 
>>>>> 
>>>>> 
>>>>> what is a bit bad is that you catch the problem “too late” (that is, the 
>>>>> DNU to nil, not the read of nil), so nil is already pushed on the stack 
>>>>> at this point.
>>>>> 
>>>>> I tried it in the inspector and at least the class binding was correct 
>>>>> after defining the class… do you have an image with the whole code to try?
>>>>> 
>>>>>   Marcus
>>>>> 
>>>>> 
>>> 
>> 
> 
> 


Reply via email to