The direct link to instructions is here: https://exercism.io/tracks/pharo/installation <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 <https://github.com/exercism/pharo/blob/master/docs/INSTALLATION.md>)
Tim > On 17 Aug 2018, at 07:17, Marcus Denker <marcus.den...@inria.fr> wrote: > > > >> On 17 Aug 2018, at 13:00, Tim Mackinnon <tim@testit.works >> <mailto:tim@testit.works>> 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 >> <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 <marcus.den...@inria.fr >> <mailto:marcus.den...@inria.fr>> wrote: >> >>> >>> >>>> On 10 Aug 2018, at 23:16, Tim Mackinnon <tim@testit.works >>>> <mailto:tim@testit.works>> 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 >>> >>> >