<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">&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</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&#39;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&#39;re interested to hear of experience with other ARM linux systems.</div><div><br></div><div>All is not perfect.  I&#39;ve been able to update a Spur image completely and run almost all tests.  But currently there&#39;s a segfault coming from SSL.  Anyone who&#39;s got expertise with SSL and ARM is encouraged to take a look.  Here&#39;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&gt;initialize 0x619df8: a(n) SqueakSSL</div><div>0xbefab93c M SqueakSSL class(Behavior)&gt;new 0x1a3f6c0: a(n) SqueakSSL class</div><div>0xbefab954 M SqueakSSLTest&gt;setUp 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefab96c M [] in SqueakSSLTest(TestCase)&gt;runCase 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefab988 M BlockClosure&gt;on:do: 0x44d640: a(n) BlockClosure</div><div>0xbefab9b0 M [] in SqueakSSLTest(TestCase)&gt;timeout:after: 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefab9d0 M BlockClosure&gt;ensure: 0x44d6e0: a(n) BlockClosure</div><div>0xbefab9f8 M SqueakSSLTest(TestCase)&gt;timeout:after: 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefaba18 M [] in SqueakSSLTest(TestCase)&gt;runCase 0x18a9f08: a(n) SqueakSSLTest</div><div>0xbefaba38 M BlockClosure&gt;ensure: 0x44d810: a(n) BlockClosure</div><div>0xbefaba54 M SqueakSSLTest(TestCase)&gt;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&#39;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&#39;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&#39;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>