[Glass] Tode problematic

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Tue Jul 11 10:52:41 PDT 2017



On 7/11/17 10:28 AM, Trussardi Dario Romano via Glass wrote:
> Ciao,
>
>>> Ciao,
>>>>
>>>> This looks like a different problem now ... you shouldn't have 
>>>> gotten a reference to the method isNotNil if it is not present in 
>>>> the method dictionaries for Object ...
>>>>
>>>> Have you refreshed the method list (by clicking on the Object class 
>>>> in the class pane)? tODE does not automatically update the lists 
>>>> when methods are removed, so this is one possibility for the error ..
>>>>
>>> Yes the method list is update.
>>>>
>>>> You are missing a stack for B), so I cannot comment on that error 
>>>> --- it would be useful to see the stack when you are trying to 
>>>> define the method again ...
>>>>
>>> I add the stack to B)
>>>
>>> I confirm stack for:A)and C)
>>>>
>>>> At this point in time it does not appear that the method is present 
>>>> and that it is possible that the method list is just out of date ...
>>>>
>>>> Try refreshing the method list ... and reporting stacks at each 
>>>> point where you hit an error ...
>>>>
>>> D)When on the method isNotNili do themove to protocol menu options,
>>>
>>> the system answer :
>>>
>>>     a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A
>>>     reference using the non-existent key #'isNotNil' was made into
>>>     the dictionary Object
>>>     --------------------
>>>     1. LookupError(AbstractException)>>_signalWith: @5 line 25
>>>     2. LookupError(AbstractException)>>signal @2 line 47
>>>     3. Object class(Object)>>_error:args: @15 line 11
>>>     4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
>>>     5. Object class(Behavior)>>compiledMethodAt: @2 line 2
>>>     6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
>>>     7. Object class(Behavior)>>classify:under: @9 line 7
>>>     8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
>>>     9.
>>>     TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex:
>>>     @16 line 11
>>>     10.
>>>     TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg:
>>>     @12 line 10
>>>     11. [] in
>>>     TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock
>>>     @2 line 7
>>>     12.
>>>     TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value:
>>>     @2 line 11
>>>     13. GsNMethod class>>_gsReturnToC @1 line 1
>>>
>>>
>>> After refreshed the method list the method is right  moved to new 
>>> protocol but  A B C  point don't work.
>> Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: 
>> appears to be the culprit in all of these errors ... there are quite 
>> a few of the higher level methods that pass through 
>> Behavior>>compiledMethodAt:environmentId:otherwise: and 
>> Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods 
>> that are installed in the session method dictionary and that is 
>> leading to the rash of lookup errors as the code is looking in the 
>> wrong place ...
>>
>> This problem has been around for a while, but in tODE I rarely/never 
>> add methods to system classes without creating a protocol starting 
>> with * first and then crate the method in that protocol (new method 
>> menu item) --- and that combo works ... My suggested patch solved one 
>> problem but there appear to be quite a few potential problems. I am 
>> quite busy with 3.4 work at the moment and do not have the time to 
>> properly fix all of the problems ...
>
> No problem.....
>
> I do this work only for document the question ...
>
>>
>> Sooo, I think that if you can create a protocol starting with a * and 
>> add create your method in that protocol, then you should be good to 
>> go ... I was able to take my experimental method from yesterday that 
>> was n a non-* protocol and re-create it in a * protocol, so this 
>> should get you out of the woods ...
>
> The isNotNil method is in a protocol begin with *
>
> and i can move it into another protocol begin with * as i report at 
> point D
but point D is an error, so you are not able to move it to another 
protocol, correct? You have not been able to do anything without error 
correct?
>
> But the  A  B C  problematic don't change.
>
> In any case when compile the   isNotNil method i a new *... protocol   
> the system behaves  like B
This is not my experience so there is something that you are doing that 
I'm not doing ... I don't "move" the method. I compile the method in the 
new * protocol and after that I can look at source, move the method to 
other * protocols, etc.

Have you tried creating a new * protocol and creating the method in that 
protocol?

If that doesn't work, provide me with a fresh stack that produces an 
error (please provide method source) and I will see if I can work out a 
repair script.

Dale
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20170711/711461ca/attachment.html>


More information about the Glass mailing list