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

Robert Withers robert.withers at pm.me
Thu May 27 15:02:13 UTC 2021


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



More information about the Vm-dev mailing list