Compiling a method with a new iv raises DNU

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Compiling a method with a new iv raises DNU

stepharo
Here is the scenario

  I added the method

     comment

             ^ comment

and I get now a DNU

     doSemanticAnalysisIn:


at: aCompiledMethod
     ^ self
         at: aCompiledMethod
         ifAbsentPut: [
             aCompiledMethod parseTree doSemanticAnalysisIn:
aCompiledMethod methodClass ]


where aCompiledMethod is StoreBlessing>>#comment

but the parseTree is nil :(

How this behavior can happen?

Stef

Reply | Threaded
Open this post in threaded view
|

Re: Compiling a method with a new iv raises DNU

stepharo
Apparently there is something wrong in the ASTCache.
The only solution I found to continue to work  was to remove the QAPlugin.


Le 4/9/15 10:21, stepharo a écrit :

> Here is the scenario
>
>  I added the method
>
>     comment
>
>             ^ comment
>
> and I get now a DNU
>
>     doSemanticAnalysisIn:
>
>
> at: aCompiledMethod
>     ^ self
>         at: aCompiledMethod
>         ifAbsentPut: [
>             aCompiledMethod parseTree doSemanticAnalysisIn:
> aCompiledMethod methodClass ]
>
>
> where aCompiledMethod is StoreBlessing>>#comment
>
> but the parseTree is nil :(
>
> How this behavior can happen?
>
> Stef
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Compiling a method with a new iv raises DNU

Uko2
Hi Stef.

Can you tell me in which class do you add this? Because it does not happen for every class. There was an issue that one on the rules destroying ASTs, but we solved it about a month ago.

Uko

> On 04 Sep 2015, at 10:45, stepharo <[hidden email]> wrote:
>
> Apparently there is something wrong in the ASTCache.
> The only solution I found to continue to work  was to remove the QAPlugin.
>
>
> Le 4/9/15 10:21, stepharo a écrit :
>> Here is the scenario
>>
>> I added the method
>>
>>    comment
>>
>>            ^ comment
>>
>> and I get now a DNU
>>
>>    doSemanticAnalysisIn:
>>
>>
>> at: aCompiledMethod
>>    ^ self
>>        at: aCompiledMethod
>>        ifAbsentPut: [
>>            aCompiledMethod parseTree doSemanticAnalysisIn: aCompiledMethod methodClass ]
>>
>>
>> where aCompiledMethod is StoreBlessing>>#comment
>>
>> but the parseTree is nil :(
>>
>> How this behavior can happen?
>>
>> Stef
>>
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Compiling a method with a new iv raises DNU

Marcus Denker-4
I checked with stef a bit what it could be…

- first theory: copy-paste of some strange character leads to error in the scanner. But we could not reproduce it, so that was not it
- second: with quality check running we stress far more the reading of code right after accepting a method. So it could uncover strange
bugs in the .changes mechanism (which is very convoluted and old code).

I guess it is the second and we should monitor if this happens more often to find way to reproduce it.

        Marcus

> On 04 Sep 2015, at 11:00, Yuriy Tymchuk <[hidden email]> wrote:
>
> Hi Stef.
>
> Can you tell me in which class do you add this? Because it does not happen for every class. There was an issue that one on the rules destroying ASTs, but we solved it about a month ago.
>
> Uko
>
>> On 04 Sep 2015, at 10:45, stepharo <[hidden email]> wrote:
>>
>> Apparently there is something wrong in the ASTCache.
>> The only solution I found to continue to work  was to remove the QAPlugin.
>>
>>
>> Le 4/9/15 10:21, stepharo a écrit :
>>> Here is the scenario
>>>
>>> I added the method
>>>
>>>   comment
>>>
>>>           ^ comment
>>>
>>> and I get now a DNU
>>>
>>>   doSemanticAnalysisIn:
>>>
>>>
>>> at: aCompiledMethod
>>>   ^ self
>>>       at: aCompiledMethod
>>>       ifAbsentPut: [
>>>           aCompiledMethod parseTree doSemanticAnalysisIn: aCompiledMethod methodClass ]
>>>
>>>
>>> where aCompiledMethod is StoreBlessing>>#comment
>>>
>>> but the parseTree is nil :(
>>>
>>> How this behavior can happen?
>>>
>>> Stef
>>>
>>>
>>
>>
>
>