[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