I still do not know how I could print debug info to stdout, in a Squeak Plugin primitive. Hopefully I'll learn. This would be such a blessing! Please guide me!
In the meantime, I have written all GF methods as primitives, including #decode:twoS:, #runEuclideanAlgorithm adn #dividePoly:, though these 3 are not being called from the DecoderWithPlugin or GFPolyWithPlugin. The only new primitive is GFPoly>>#initializeFiled:coefficients:. Here are the numbers, with RSFEC Tests only.
---
WITH RSPlugin {RSFEC Tests}
- 47765 tallies, 61320 msec.
Overall performance increase with and without RSPlugin: 54% ((116473 - 53364) / 116473) asFloat * 100 54.183372970559695
Total WITH RSPlugin rates (13687 + 14730 + 24947) 53364
Without RSPlugin 116473
RSFEC 53% ((13687 + 14730)/ 53364) asFloat * 100 53.25125552807136 Numerical 47% (24947 / 53364) asFloat * 100 46.748744471928646
**Leaves** Unpluginized (12303 + 1384) 13687 20.1% {12303ms} RSFECDecoderWithPlugin>>decode:twoS: 2.3% {1384ms} RSFECDecoderWithPlugin>>runEuclideanAlgorithmPoly:poly:rDegrees:
Pluginized (7532 +2877 + 2262 + 1200 + 859) 14730 12.3% {7532ms} RSFECGenericGFPoly class>>newField:coefficients: 4.7% {2877ms} RSFECDecoderWithPlugin>>primFindErrorLocationsDegree:coefficients:fieldSize: 3.7% {2262ms} RSFECGenericGFPolyWithPlugin>>addOrSubtractPoly: 2.0% {1200ms} RSFECDecoderWithPlugin>>findErrorMagnitudes:errorLocations: 1.4% {859ms} RSFECGenericGFWithPlugin>>log:
Numerical (4269 + 3571 + 2909 + 2820 + 2093 + 1602 + 1578 + 1530 + 1383 + 877 + 847 + 815 + 653) 24947 7.0% {4269ms} LargePositiveInteger(Integer)>>bitShift: 5.8% {3571ms} SecureHashAlgorithm>>finalHash 4.7% {2909ms} ByteArray class(Behavior)>>new: 4.6% {2820ms} LargePositiveInteger>>+ 3.4% {2093ms} IdentityDictionary(Dictionary)>>at:ifAbsent: 2.6% {1602ms} ByteSymbol(Object)>>-> 2.6% {1578ms} WeakIdentityKeyDictionary(WeakKeyDictionary)>>at:ifAbsent: 2.5% {1530ms} SecureHashAlgorithm>>hashInteger:seed: 2.3% {1383ms} SecureRandom>>nextRandom160 1.4% {877ms} SmallInteger(Magnitude)>>between:and: 1.4% {847ms} ByteArray>>unsignedLongAt:put:bigEndian: 1.3% {815ms} [] Delay>>wait 1.1% {653ms} SmallInteger(Integer)>>timesRepeat:
-- --- Kindly, Robert
vm-dev@lists.squeakfoundation.org