[Vm-dev] [WORKAROUND] Re: walkback while generating external plugins

Levente Uzonyi leves at caesar.elte.hu
Thu May 27 14:24:40 UTC 2021


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
>>
>>


More information about the Vm-dev mailing list