<div dir="ltr">Hi All,<br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jun 20, 2015 at 6:26 PM, Eliot Miranda <span dir="ltr"><<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>... at <a href="http://www.mirandabanda.org/files/Cog/VM/VM.r3386" target="_blank">http://www.mirandabanda.org/files/Cog/VM/VM.r3386</a></div><div><br></div><div>CogVM binaries as per VMMaker.oscog-eem.1370/r3386</div><div><br></div><div>Add the ARMv5/ARMv6 Cog Spur JIT VM!</div></div></blockquote><div><br></div><div>It's very satisfying to release a JIT for a new (for Cog) ISA. Thanks to Lars Wassermann and Tim Rowledge for lots of hard work on the JIT, which I participated in too. And thanks to Doug McPherson for lots of work in other parts of the ARM build. This is great.</div><div><br></div><div>The main caveat is that this has only been tested on Raspberry Pi running Raspbian. We're interested to hear of experience with other ARM linux systems.</div><div><br></div><div>All is not perfect. I've been able to update a Spur image completely and run almost all tests. But currently there's a segfault coming from SSL. Anyone who's got expertise with SSL and ARM is encouraged to take a look. Here's the current stack trace for the segfault:</div><div><br></div><div><div>Program received signal SIGILL, Illegal instruction.</div><div>0xb5fd4600 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0</div><div>(gdb) where</div><div>#0 0xb5fd4600 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0</div><div>#1 0xb5fd0fe4 in OPENSSL_cpuid_setup ()</div><div> from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0</div><div>#2 0xb6fe8254 in ?? () from /lib/ld-linux-armhf.so.3</div><div>#3 0x0029db18 in ?? ()</div><div>#4 0x0029db18 in ?? ()</div><div>Backtrace stopped: previous frame identical to this frame (corrupt stack?)</div><div>(gdb) call printStackCallStackOf (framePointer)</div><div>0xbefab924 I SqueakSSL>initialize 0x619df8: a(n) SqueakSSL</div><div>0xbefab93c M SqueakSSL class(Behavior)>new 0x1a3f6c0: a(n) SqueakSSL class</div><div>0xbefab954 M SqueakSSLTest>setUp 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefab96c M [] in SqueakSSLTest(TestCase)>runCase 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefab988 M BlockClosure>on:do: 0x44d640: a(n) BlockClosure</div><div>0xbefab9b0 M [] in SqueakSSLTest(TestCase)>timeout:after: 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefab9d0 M BlockClosure>ensure: 0x44d6e0: a(n) BlockClosure</div><div>0xbefab9f8 M SqueakSSLTest(TestCase)>timeout:after: 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefaba18 M [] in SqueakSSLTest(TestCase)>runCase 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefaba38 M BlockClosure>ensure: 0x44d810: a(n) BlockClosure</div><div>0xbefaba54 M SqueakSSLTest(TestCase)>runCase 0x18a9f08: a(n) SqueakSSLTest</div><div><br></div></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>Add explicit read barriers to primitives which access an argument as the</div><div>receiver (i.e. the mirror primitives). Don't check if the actual receiver is</div><div>used. Simplify failure where appropriate cuz the primitives will be retried.</div><div><br></div><div>Add -fwrapv to all linux gcc builds (to insist on 2's complement arithmetic)</div><div>and add makeallclean, making makeall do the dirty build.</div><div><br></div><div>Provide a -exitonwarn command line switch for the Mac and Unix VMs to allow for</div><div>CI testing of asserts.</div><div><br></div><div>Unix: restore the SCCS revision after the version number in -version output.</div><div><br></div><div>Spur:</div><div>Remember to count shrink requests</div><div><br></div><div>Cogit:</div><div>Fix bug in rewriting compiler primitives on module unload, etc. The old code</div><div>didn't change the assignment to the primitiveFunctionPointer, which is needed</div><div>for correct management of failing primitive calls on Spur. Simplify the post</div><div>compile hook to eliminate the label parameter; this is local to the Cogit.</div><div><br></div><div>ARM Cogit:</div><div>Use out-of-line literals for compactness.</div><span class="HOEnZb"><font color="#888888">-- <br><div>best,<div>Eliot</div></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>