how to print to stdout in plugin code

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

how to print to stdout in plugin code

Robert Withers-2
 

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