<html><head></head><body>
<p><b>Hey Nicolas! All tests are Green</b><b>!</b> <b>226% increase
in speed!</b> <br/>
<br/>
In squeak 5.3 on linux64, <b>with the plugins</b>. Your fixes to
DESPlugin resolved the only issue with them! I am so grateful for
your help. I regenerated them, using 2719, and they are published
here. <br/>
<br/>
<a class="moz-txt-link-freetext" href="https://www.dropbox.com/sh/yhv253rwrhq0q5p/AAB7PKP2KPiGpDnIyule2h_Ia?dl=0">https://www.dropbox.com/sh/yhv253rwrhq0q5p/AAB7PKP2KPiGpDnIyule2h_Ia?dl=0</a><br/>
<br/>
We would welcome any of such offerings from other platforms,
published here as well.<br/>
<br/>
---</p>
<p>The current Cryptography code for 5.3 is <br/>
</p>
<h1>Cryptography-v5.3-rww.118<br/>
<br/>
<a class="moz-txt-link-freetext" href="http://www.squeaksource.com/@qKpleED0lBkWy2gu/bmQatj-3">http://www.squeaksource.com/@qKpleED0lBkWy2gu/bmQatj-3</a></h1>
<p>---</p>
<p>The following are two parts of two profiles of running the
Cryptography tests, with and without the plugins.<br/>
</p>
<p><b>WITHOUT PLUGINS</b><br/>
- 2375 tallies, 2414 msec.<br/>
<br/>
**Leaves**<br/>
17.3% {418ms} ThirtyTwoBitRegister>>leftRotateBy:<br/>
13.4% {324ms} ThirtyTwoBitRegister>>bitXor:<br/>
12.2% {295ms} ThirtyTwoBitRegister>>+=<br/>
7.0% {169ms} []
SystemProgressMorph(Morph)>>updateDropShadowCache<br/>
5.2% {126ms} ThirtyTwoBitRegister>>bitAnd:<br/>
3.7% {88ms} CryptoElGamalTest(TestCase)>>timeout:after:<br/>
3.4% {81ms} ThirtyTwoBitRegister>>load:<br/>
3.3% {79ms} SmallInteger>>digitLength<br/>
2.3% {55ms} GrafPort>>copyBits<br/>
2.2% {53ms} ThirtyTwoBitRegister>>bitOr:<br/>
2.1% {52ms} ByteArray>>bitXor:<br/>
1.7% {42ms} DisplayScreen(Form)>>depth<br/>
1.7% {42ms} SHA1>>hashStream:<br/>
1.6% {39ms} GrafPort>>fillRoundRect:radius:<br/>
1.4% {35ms} SHA256NonPrimitive>>expandedBlock:<br/>
1.4% {35ms} ThirtyTwoBitRegister>>bitShift:<br/>
1.3% {33ms} ThirtyTwoBitRegister class>>new<br/>
1.2% {28ms} Point>>=<br/>
<br/>
**Memory**<br/>
old +16,777,216 bytes<br/>
young -17,706,008 bytes<br/>
used -928,792 bytes<br/>
free +17,706,008 bytes<br/>
<br/>
**GCs**<br/>
full 0 totalling 0 ms (0% uptime)<br/>
incr 227 totalling 44 ms (1.8% uptime), avg 0.2 ms<br/>
tenures 315 (avg 0 GCs/tenure)<br/>
root table 0 overflows<br/>
<br/>
<b>WITH PLUGINS</b><br/>
- 1056 tallies, 1073 msec.<br/>
<br/>
**Leaves**<br/>
16.4% {176ms} []
SystemProgressMorph(Morph)>>updateDropShadowCache<br/>
7.4% {79ms} CryptoElGamalTest(TestCase)>>timeout:after:<br/>
6.2% {66ms} Point>>=<br/>
5.4% {58ms} ByteArray>>bitXor:<br/>
4.5% {48ms} DisplayScreen(Form)>>depth<br/>
3.9% {42ms} GrafPort>>fillRoundRect:radius:<br/>
3.8% {41ms}
GrafPort(BitBlt)>>basicDisplayString:from:to:at:strikeFont:kern:<br/>
3.4% {37ms} SmallInteger(Number)>>isZero<br/>
3.4% {37ms} SHA1>>hashStream:<br/>
3.2% {35ms} GrafPort>>copyBits<br/>
2.6% {27ms} SHA1>>finalHash<br/>
2.5% {26ms} ThirtyTwoBitRegister>>byteAt:<br/>
2.4% {25ms} SmallInteger(Number)>>negative<br/>
2.2% {23ms} SystemProgressMorph(Morph)>>setProperty:toValue:<br/>
2.1% {22ms} SmallInteger>>digitLength<br/>
1.8% {19ms} SHA256WithPrimitive(SHA256)>>hashStream:<br/>
1.8% {19ms} OrderedCollection>>do:<br/>
1.6% {17ms} ThirtyTwoBitRegister>>bitXor:<br/>
1.5% {16ms}
LargePositiveInteger(Integer)>>asByteArrayOfSize:<br/>
<br/>
**Memory**<br/>
old +16,777,216 bytes<br/>
young -20,673,880 bytes<br/>
used -3,896,664 bytes<br/>
free +20,673,880 bytes<br/>
<br/>
**GCs**<br/>
full 0 totalling 0 ms (0% uptime)<br/>
incr 53 totalling 12 ms (1.1% uptime), avg 0.2 ms<br/>
tenures 0<br/>
root table 0 overflows<br/>
</p>
<p>In comparing the times, 2414 / 1073 = <b>226% increase in speed</b>
of running the profile. That's pretty fast! What are my
#tinyBenchmarks?<br/>
<br/>
tinyBenchmarks = '2,500,000,000 bytecodes/sec; 180,000,000
sends/sec'.<br/>
</p>
<p>Thanks for all the help. You all rock! <br/>
<br/>
K, r<br/>
</p>
<div class="moz-cite-prefix">On 3/4/20 4:23 PM, Nicolas Cellier
wrote:<br/>
</div>
<blockquote type="cite" cite="mid:CAKnRiT41d__-UH0SqgO+XvEfNxeySQ0ePJqRrr7235onW=-6FQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<div dir="ltr">
<div>Hi Robert,</div>
<div>
<div><br/>
</div>
<div>If I save a Squeak5.3-19431-64bit.image with the
Cryptography package preloaded,</div>
<div>and put a simple test in a file <a href="http://test-crypto.st" moz-do-not-send="true">test-crypto.st</a>,
for example:</div>
<div><br/>
</div>
<div>CryptoDESTest suite run.!</div>
<div><br/>
</div>
</div>
<div>Then the Simulator invocation should be something like
(with my own path):</div>
<div><br/>
</div>
<div>| sis |<br/>
sis := StackInterpreterSimulator newWithOptions:
#(ObjectMemory Spur64BitMemoryManager).<br/>
sis desiredNumStackPages: 8.<br/>
sis assertValidExecutionPointersAtEachStep: false. <br/>
sis openOn:
'/Users/nicolas/Smalltalk/Squeak/trunk/Squeak5.3-19431-64bit.image'.<br/>
sis systemAttributes<br/>
at: 2 put: '/Users/nicolas/Smalltalk/Squeak/trunk/<a href="http://test-crypto.st" moz-do-not-send="true">test-crypto.st</a>'.<br/>
sis openAsMorph; run</div>
<div><br/>
</div>
</div>
<br/>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Le mer. 4 mars 2020 à 20:26,
Robert via Squeak-dev <<a href="mailto:squeak-dev@lists.squeakfoundation.org" moz-do-not-send="true">squeak-dev@lists.squeakfoundation.org</a>>
a écrit :<br/>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hi Eliot,</p>
<p>Do I want too? Or am I obligated? Very well then, I am
trying the StackVMSimulator. Should I debug down to a
primitive call to a cryptoplugin? Or what should I do?
I'll need to prep an image. <br/>
<br/>
I will need to get another Pi.<br/>
</p>
<p>kindly,<br/>
robert<br/>
</p>
<div>On 3/4/20 11:43 AM, Eliot Miranda wrote:<br/>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Rob,</div>
<div dir="ltr"><br/>
<blockquote type="cite">On Mar 4, 2020, at 7:57 AM,
Robert via Squeak-dev <a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank" moz-do-not-send="true"><squeak-dev@lists.squeakfoundation.org></a>
wrote:<br/>
<br/>
</blockquote>
</div>
<blockquote type="cite">
<div dir="ltr">
<p>Are there instructions for building Bochs, Nicolas?<br/>
</p>
</div>
</blockquote>
<div><br/>
</div>
If you want to work on the cryptography plugins then as
Nicolas suggests you can use the
StackInterpreterSimulator. You don’t need to use the JIT
to work on a plugin, and the StackInterpreterSimulator is
probably twice as fast as the JIT simulator
(CogVMSimulator) since it isn’t simulating machine code,
only interpreting bytecode.
<div><br/>
<blockquote type="cite">
<div dir="ltr">
<p> tyk, r<br/>
</p>
<div>On 3/4/20 10:50 AM, Robert wrote:<br/>
</div>
<blockquote type="cite">
<p>Hi yo hehr, Nicolas,<br/>
</p>
<p>I tried the first block, in the simulation
window, but it was missing BochsIA64 or some. I
then ran the third block, a StackVM as you
suggested. I ran it against my Cryptography
repair image, rabbit, and very slooowly
reselected the tests and ran them, in
proogrress...<br/>
<br/>
We sure would be appreciating etwas help, as if
there was a little angel out there who offers
plugin repair and SHA512 code/plugin. Praying
for an angel! <br/>
<br/>
tyk, r<br/>
</p>
<div>On 3/4/20 8:50 AM, Nicolas Cellier wrote:<br/>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Hi Robert,</div>
<div>normally, most of VM/plugins development
should take place with the VM-simulation
from within the SpurVMMaker.image (unless
the plugin extensively call C functions from
external libraries).</div>
<div>You will find a Worksapce with some
simulation examples.</div>
<div>Then you might detect the error from
within Smalltalk with debuggers etc...<br/>
</div>
<div>I recommend simulating a Stack VM for a
beginning (or you'll need to compile the
Bochs plugin, which is currently difficult
on linux...).<br/>
</div>
</div>
<br/>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Le mer. 4
mars 2020 à 14:40, Robert via Squeak-dev
<<a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank" moz-do-not-send="true">squeak-dev@lists.squeakfoundation.org</a>>
a écrit :<br/>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p>Hi Levente,<br/>
<br/>
Yes, I see what you are saying. Without
the Crypto plugins, all the Crypto tests
run green. <br/>
<br/>
With the Crypto plugins, things get
messed up. ByteArray
class>>#fromHexString: still
completes, but the KeyHolder>>#key
SEG-FAULTS the vm (called from <b>CryptoRC2Test>>#testARC2</b>).
Additionally, the following two tests
fail: <b>CryptoDESTest>>#testDESCBC</b>
and <b>CryptoDESTest>>#testTripleDESCBC.</b>
<br/>
<br/>
The SEG-FAULT comes from this code:<br/>
<br/>
KeyHolder new<br/>
data: KeyHolderData new;<br/>
encryptKey: #(0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0) asByteArray;<br/>
key<br/>
<br/>
tyk, r<br/>
</p>
<div>On 3/4/20 8:10 AM, Levente Uzonyi
wrote:<br/>
</div>
<blockquote type="cite">
<pre>Hi Robert,
I just ran all test cases of Cryptography-v5.3-rww.118.mcz in a fresh 5.3
image on 64-bit linux using the stock VM (no Cryptography plugins), and
all the tests are green.
ByteArray class >> #fromHexString: and methods sent by it were last
modified in 2010, and they do not accept non-hexadecimal digits in the
input string.
Levente
On Wed, 4 Mar 2020, Robert via Squeak-dev wrote:
</pre>
<blockquote type="cite">
<pre>In squeak 5.3, building ByteArrays from HEX strings are now failing,
after years of passing within the Cryptography tests.
The first doIt works, while the other two are now failing in the
#readHexFrom: method...
PASSING
ByteArray fromHexString: '06a9214036b8a15b512e03d534120006'
FAILING
ByteArray fromHexString: '16rc286696d887c9aa0611bbb3e2025a45a'
ByteArray fromHexString: '00000000 00000000'
This is causing multiple test failures in the Cryptography test suite.
tyk, r
</pre>
</blockquote>
</blockquote>
</div>
<br/>
</blockquote>
</div>
</blockquote>
</blockquote>
<span></span><br/>
</div>
</blockquote>
</div>
</blockquote>
</div>
<br/>
</blockquote>
</div>
</blockquote>
</body></html>