[Glass] Tode problematic

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Mon Jul 10 13:59:04 PDT 2017


Dario,

 From the stack I was able to figure out what you might have done to 
create the method and I was finally able to reproduce your bug ...

You added the new method to Object in a pre-exisiting category that was 
not prefixed with a $* ... and this is a bug in tODE .... that's been 
around for quite awhile ...


You can patch tODE using the following in TDMethodDefinition>>source:

source
   self username
     ifNotNil: [
       ^ (self theBehavior perform: #'persistentMethodAt:' with: self 
selector)
         sourceString ].
   ^ (self theBehavior
     compiledMethodAt: self selector
     environmentId: 0
     otherwise: nil
     usePackages: true) sourceString


I'll submit a tODE bug and update the source with the patch when I get 
chance ... I'm under the gun for a project deadline ...

Dale

On 07/10/2017 12:24 AM, Trussardi Dario Romano via Glass wrote:
> Dale,
>
>> Dario,
>>
>> There is nothing special about isNotNil ... I guess I'd like to see 
>> the actual source code for the method in case there is something odd 
>> in the source --- most likely not ...
>>
>> To get started, I would really like to see the whole stack for the 
>> LookupError. In tODE if you select debug to bring up a debugger, then 
>> in the stack frame list window use the `Window > print window` menu 
>> item, and then send me the printed stack.
>>
> this is the printed stack:
>
>         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)>>sourceCodeAt:environmentId: @2 line 7
>
>         6. Object class(Behavior)>>sourceCodeAt: @2 line 3
>
>         7. TDMethodDefinition>>source @4 line 2
>
>         8. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
>
>         9.
>         TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource
>         @2 line 3
>
>         10.
>         TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource
>         @2 line 2
>
>         11.
>         TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect:
>         @6 line 8
>
>         12.
>         TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect:
>         @2 line 2
>
>         13.
>         TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect:
>         @2 line 2
>
>         14. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using:
>         @4 line 9
>
>         15. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
>
>         16. [] in
>         ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do:
>         @5 line 10
>
>         17.
>         TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do:
>         @24 line 28
>
>         18. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
>
>         19. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
>
>         20. TDTopezServer>>clientElementFor:using: @3 line 4
>
>         21. TDTopezServer>>edit:using: @2 line 3
>
>         22. TDMethodDefinition(Object)>>editUsing: @4 line 3
>
>         23. TDMethodDefinition>>itemSelected: @8 line 8
>
>         24.
>         TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed:
>         @10 line 7
>
>         25. [] in
>         TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock
>         @4 line 4
>
>         26.
>         TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull:
>         @7 line 4
>
>         27. GsNMethod class>>_gsReturnToC @1 line 1
>
>
> Thanks,
>
> Dario
>>
>> With that I will know where the error is occuring and start looking 
>> into figuring out what went wrong and how to fix it ...
>>
>> Dale
>>
>> On 07/07/2017 06:38 AM, Trussardi Dario Romano via Glass wrote:
>>> Ciao,
>>>
>>> i have a Tode problematic.
>>>
>>> I submit this to the: tode at noreply.github.com 
>>> <mailto:tode at noreply.github.com>
>>>
>>> but idoubt it's not the right procedure.
>>>
>>>>         Ciao,
>>>
>>>>
>>>>            i have a tode image working with  on 3.2.12 environment.
>>>
>>>>
>>>>            Now in the tode class browser i found ( i don't remember
>>>>         when and how i create it )
>>>
>>>>
>>>>            the      Object isNotNil     message.
>>>
>>>>
>>>>            When in the class browser i select this method the
>>>>         system answer:
>>>
>>>>
>>>>                a LookupError occurred (error 2021),
>>>>         reason:rtErrKeyNotFound, A reference using
>>>
>>>>                the non-existent key #'isNotNil' was made into the
>>>>         dictionary Object
>>>
>>>>
>>>>            Any other command:
>>>
>>>>
>>>>                remove the relative protocol
>>>
>>>>
>>>>                compile a new isNotNil method
>>>
>>>>
>>>>                remove the method with:  method remove Object >>isNotNil
>>>
>>>>
>>>>            answer the same error.
>>>
>>>>
>>>>            When i save the relative package the Object isNotNil
>>>>         method is not saved.
>>>
>>>>
>>>>            When the code call:         isNotNil     the system
>>>>         answer: does not understand.
>>>
>>>>
>>>>            Thanks for considerations,
>>>
>>>>
>>>>                Dario
>>>
>>>
>>>
>>> Does anyone know the right procedure?
>>>
>>> If in the meantime you have an indication regarding my problem,
>>>
>>> i would be grateful.
>>>
>>> Dario
>>>
>>>
>>> _______________________________________________
>>> Glass mailing list
>>> Glass at lists.gemtalksystems.com
>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com <mailto:Glass at lists.gemtalksystems.com>
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20170710/377ad29f/attachment-0001.html>


More information about the Glass mailing list