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
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
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
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
vm-dev@lists.squeakfoundation.org