walkback while generating external plugins

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

walkback while generating external plugins

Robert Withers-2
 
Hi,

I am getting a walkback when generating new external plugins:
RSErasurePlugin and RSFECPlugin. The culprit seems to be a super call to
InterpreterPlugin class>>#declareCVarsIn:, called from RSErasurePlugin
class>>declareCVarsIn:. I snipped the stack to pertinent frames. Thx!

27 May 2021 7:44:38.719538 am

VM: unix - Smalltalk
Image: Squeak6.0alpha [latest update: #20535]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/rabbit/vm-dev/opensmalltalk-vm/image
Trusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/secure
Untrusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/My Squeak

ByteSymbol(Object)>>doesNotUnderstand: #removeVariable:ifAbsent:
     Receiver: #cg
     Arguments and temporary variables:
         aMessage:     removeVariable: 'translatedMethodCache' ifAbsent: nil
         exception:     MessageNotUnderstood:
ByteSymbol>>removeVariable:ifAbsent:
         resumeValue:     nil
     Receiver's instance variables:
#cg

RSErasurePlugin class(InterpreterPlugin class)>>declareCVarsIn:
     Receiver: RSErasurePlugin
     Arguments and temporary variables:
         aCCodeGenerator:     #cg
     Receiver's instance variables:
         superclass:     InterpreterPlugin
         methodDict:     a
MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
CompiledMethod...etc...
         format:     65542
         instanceVariables:     #('logTable' 'expTable'
'multiplicationTable')
         organization:     ('arithmetic' add:by: divide:by: exp:power:
galoisMultiply:by: subtractFrom:by:...etc...
         subclasses:     {RSErasurePluginSimulator}
         name:     #RSErasurePlugin
         classPool:     nil
         sharedPools:     nil
         environment:     Smalltalk
         category:     #CryptographyRSFECPlugin
         timeStamp:     3799545237

RSErasurePlugin class>>declareCVarsIn:
     Receiver: RSErasurePlugin
     Arguments and temporary variables:
         cg:     a VMPluginCodeGenerator
     Receiver's instance variables:
         superclass:     InterpreterPlugin
         methodDict:     a
MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
CompiledMethod...etc...
         format:     65542
         instanceVariables:     #('logTable' 'expTable'
'multiplicationTable')
         organization:     ('arithmetic' add:by: divide:by: exp:power:
galoisMultiply:by: subtractFrom:by:...etc...
         subclasses:     {RSErasurePluginSimulator}
         name:     #RSErasurePlugin
         classPool:     nil
         sharedPools:     nil
         environment:     Smalltalk
         category:     #CryptographyRSFECPlugin
         timeStamp:     3799545237

--
---
Kindly,
Robert



Reply | Threaded
Open this post in threaded view
|

[WORKAROUND] Re: walkback while generating external plugins

Robert Withers-2
 
I got past this by removing the call to super>>#declareCVarsIn: from
RSFECPlugin class>>#declareCVarsIn:, just like DESPlugin & DSAPlugin.
SHA2Plugin still calls the super method, which does not walkback.

---
Kindly,
Robert


On 5/27/21 7:48 AM, Robert Withers wrote:

> Hi,
>
> I am getting a walkback when generating new external plugins:
> RSErasurePlugin and RSFECPlugin. The culprit seems to be a super call to
> InterpreterPlugin class>>#declareCVarsIn:, called from RSErasurePlugin
> class>>declareCVarsIn:. I snipped the stack to pertinent frames. Thx!
>
> 27 May 2021 7:44:38.719538 am
>
> VM: unix - Smalltalk
> Image: Squeak6.0alpha [latest update: #20535]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /home/rabbit/vm-dev/opensmalltalk-vm/image
> Trusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/secure
> Untrusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/My Squeak
>
> ByteSymbol(Object)>>doesNotUnderstand: #removeVariable:ifAbsent:
>       Receiver: #cg
>       Arguments and temporary variables:
>           aMessage:     removeVariable: 'translatedMethodCache' ifAbsent: nil
>           exception:     MessageNotUnderstood:
> ByteSymbol>>removeVariable:ifAbsent:
>           resumeValue:     nil
>       Receiver's instance variables:
> #cg
>
> RSErasurePlugin class(InterpreterPlugin class)>>declareCVarsIn:
>       Receiver: RSErasurePlugin
>       Arguments and temporary variables:
>           aCCodeGenerator:     #cg
>       Receiver's instance variables:
>           superclass:     InterpreterPlugin
>           methodDict:     a
> MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
> CompiledMethod...etc...
>           format:     65542
>           instanceVariables:     #('logTable' 'expTable'
> 'multiplicationTable')
>           organization:     ('arithmetic' add:by: divide:by: exp:power:
> galoisMultiply:by: subtractFrom:by:...etc...
>           subclasses:     {RSErasurePluginSimulator}
>           name:     #RSErasurePlugin
>           classPool:     nil
>           sharedPools:     nil
>           environment:     Smalltalk
>           category:     #CryptographyRSFECPlugin
>           timeStamp:     3799545237
>
> RSErasurePlugin class>>declareCVarsIn:
>       Receiver: RSErasurePlugin
>       Arguments and temporary variables:
>           cg:     a VMPluginCodeGenerator
>       Receiver's instance variables:
>           superclass:     InterpreterPlugin
>           methodDict:     a
> MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
> CompiledMethod...etc...
>           format:     65542
>           instanceVariables:     #('logTable' 'expTable'
> 'multiplicationTable')
>           organization:     ('arithmetic' add:by: divide:by: exp:power:
> galoisMultiply:by: subtractFrom:by:...etc...
>           subclasses:     {RSErasurePluginSimulator}
>           name:     #RSErasurePlugin
>           classPool:     nil
>           sharedPools:     nil
>           environment:     Smalltalk
>           category:     #CryptographyRSFECPlugin
>           timeStamp:     3799545237
>
> --
> ---
> Kindly,
> Robert
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [WORKAROUND] Re: walkback while generating external plugins

Levente Uzonyi
 
Hi Robert,

According to your stack trace, the argument of #declareCVarsIn: is not a
CCodeGenerator but the symbol #cg. And that is what causes the problem.
I think you may not be running the right code to generate the plugin
sources.


Levente

On Thu, 27 May 2021, Robert Withers wrote:

>
> I got past this by removing the call to super>>#declareCVarsIn: from
> RSFECPlugin class>>#declareCVarsIn:, just like DESPlugin & DSAPlugin.
> SHA2Plugin still calls the super method, which does not walkback.
>
> ---
> Kindly,
> Robert
>
>
> On 5/27/21 7:48 AM, Robert Withers wrote:
>> Hi,
>>
>> I am getting a walkback when generating new external plugins:
>> RSErasurePlugin and RSFECPlugin. The culprit seems to be a super call to
>> InterpreterPlugin class>>#declareCVarsIn:, called from RSErasurePlugin
>> class>>declareCVarsIn:. I snipped the stack to pertinent frames. Thx!
>>
>> 27 May 2021 7:44:38.719538 am
>>
>> VM: unix - Smalltalk
>> Image: Squeak6.0alpha [latest update: #20535]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir /home/rabbit/vm-dev/opensmalltalk-vm/image
>> Trusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/secure
>> Untrusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/My Squeak
>>
>> ByteSymbol(Object)>>doesNotUnderstand: #removeVariable:ifAbsent:
>>       Receiver: #cg
>>       Arguments and temporary variables:
>>           aMessage:     removeVariable: 'translatedMethodCache' ifAbsent: nil
>>           exception:     MessageNotUnderstood:
>> ByteSymbol>>removeVariable:ifAbsent:
>>           resumeValue:     nil
>>       Receiver's instance variables:
>> #cg
>>
>> RSErasurePlugin class(InterpreterPlugin class)>>declareCVarsIn:
>>       Receiver: RSErasurePlugin
>>       Arguments and temporary variables:
>>           aCCodeGenerator:     #cg
>>       Receiver's instance variables:
>>           superclass:     InterpreterPlugin
>>           methodDict:     a
>> MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
>> CompiledMethod...etc...
>>           format:     65542
>>           instanceVariables:     #('logTable' 'expTable'
>> 'multiplicationTable')
>>           organization:     ('arithmetic' add:by: divide:by: exp:power:
>> galoisMultiply:by: subtractFrom:by:...etc...
>>           subclasses:     {RSErasurePluginSimulator}
>>           name:     #RSErasurePlugin
>>           classPool:     nil
>>           sharedPools:     nil
>>           environment:     Smalltalk
>>           category:     #CryptographyRSFECPlugin
>>           timeStamp:     3799545237
>>
>> RSErasurePlugin class>>declareCVarsIn:
>>       Receiver: RSErasurePlugin
>>       Arguments and temporary variables:
>>           cg:     a VMPluginCodeGenerator
>>       Receiver's instance variables:
>>           superclass:     InterpreterPlugin
>>           methodDict:     a
>> MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
>> CompiledMethod...etc...
>>           format:     65542
>>           instanceVariables:     #('logTable' 'expTable'
>> 'multiplicationTable')
>>           organization:     ('arithmetic' add:by: divide:by: exp:power:
>> galoisMultiply:by: subtractFrom:by:...etc...
>>           subclasses:     {RSErasurePluginSimulator}
>>           name:     #RSErasurePlugin
>>           classPool:     nil
>>           sharedPools:     nil
>>           environment:     Smalltalk
>>           category:     #CryptographyRSFECPlugin
>>           timeStamp:     3799545237
>>
>> --
>> ---
>> Kindly,
>> Robert
>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: [WORKAROUND] Re: walkback while generating external plugins

Robert Withers-2
 
Yep, that was the issue. Plugin now generating. Thanks!

Now to realize a plugin implementation..., to speed up my RS code.

---
Kindly,
Robert


On 5/27/21 10:24 AM, Levente Uzonyi wrote:

> Hi Robert,
>
> According to your stack trace, the argument of #declareCVarsIn: is not a
> CCodeGenerator but the symbol #cg. And that is what causes the problem.
> I think you may not be running the right code to generate the plugin
> sources.
>
>
> Levente
>
> On Thu, 27 May 2021, Robert Withers wrote:
>
>> I got past this by removing the call to super>>#declareCVarsIn: from
>> RSFECPlugin class>>#declareCVarsIn:, just like DESPlugin & DSAPlugin.
>> SHA2Plugin still calls the super method, which does not walkback.
>>
>> ---
>> Kindly,
>> Robert
>>
>>
>> On 5/27/21 7:48 AM, Robert Withers wrote:
>>> Hi,
>>>
>>> I am getting a walkback when generating new external plugins:
>>> RSErasurePlugin and RSFECPlugin. The culprit seems to be a super call to
>>> InterpreterPlugin class>>#declareCVarsIn:, called from RSErasurePlugin
>>> class>>declareCVarsIn:. I snipped the stack to pertinent frames. Thx!
>>>
>>> 27 May 2021 7:44:38.719538 am
>>>
>>> VM: unix - Smalltalk
>>> Image: Squeak6.0alpha [latest update: #20535]
>>>
>>> SecurityManager state:
>>> Restricted: false
>>> FileAccess: true
>>> SocketAccess: true
>>> Working Dir /home/rabbit/vm-dev/opensmalltalk-vm/image
>>> Trusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/secure
>>> Untrusted Dir /home/rabbit/vm-dev/opensmalltalk-vm/image/My Squeak
>>>
>>> ByteSymbol(Object)>>doesNotUnderstand: #removeVariable:ifAbsent:
>>>        Receiver: #cg
>>>        Arguments and temporary variables:
>>>            aMessage:     removeVariable: 'translatedMethodCache' ifAbsent: nil
>>>            exception:     MessageNotUnderstood:
>>> ByteSymbol>>removeVariable:ifAbsent:
>>>            resumeValue:     nil
>>>        Receiver's instance variables:
>>> #cg
>>>
>>> RSErasurePlugin class(InterpreterPlugin class)>>declareCVarsIn:
>>>        Receiver: RSErasurePlugin
>>>        Arguments and temporary variables:
>>>            aCCodeGenerator:     #cg
>>>        Receiver's instance variables:
>>>            superclass:     InterpreterPlugin
>>>            methodDict:     a
>>> MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
>>> CompiledMethod...etc...
>>>            format:     65542
>>>            instanceVariables:     #('logTable' 'expTable'
>>> 'multiplicationTable')
>>>            organization:     ('arithmetic' add:by: divide:by: exp:power:
>>> galoisMultiply:by: subtractFrom:by:...etc...
>>>            subclasses:     {RSErasurePluginSimulator}
>>>            name:     #RSErasurePlugin
>>>            classPool:     nil
>>>            sharedPools:     nil
>>>            environment:     Smalltalk
>>>            category:     #CryptographyRSFECPlugin
>>>            timeStamp:     3799545237
>>>
>>> RSErasurePlugin class>>declareCVarsIn:
>>>        Receiver: RSErasurePlugin
>>>        Arguments and temporary variables:
>>>            cg:     a VMPluginCodeGenerator
>>>        Receiver's instance variables:
>>>            superclass:     InterpreterPlugin
>>>            methodDict:     a
>>> MethodDictionary(#add:by:->(RSErasurePlugin>>#add:by: "a
>>> CompiledMethod...etc...
>>>            format:     65542
>>>            instanceVariables:     #('logTable' 'expTable'
>>> 'multiplicationTable')
>>>            organization:     ('arithmetic' add:by: divide:by: exp:power:
>>> galoisMultiply:by: subtractFrom:by:...etc...
>>>            subclasses:     {RSErasurePluginSimulator}
>>>            name:     #RSErasurePlugin
>>>            classPool:     nil
>>>            sharedPools:     nil
>>>            environment:     Smalltalk
>>>            category:     #CryptographyRSFECPlugin
>>>            timeStamp:     3799545237
>>>
>>> --
>>> ---
>>> Kindly,
>>> Robert
>>>
>>>