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

Robert Withers robert.withers at pm.me
Thu May 27 12:40:54 UTC 2021


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