<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">On 22.12.2013, at 19:49, "David T. Lewis" &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; wrote:<br><br></div><blockquote type="cite" style="-webkit-text-size-adjust: auto;"><div><span>On Fri, Dec 20, 2013 at 10:31:35PM +0100, Bert Freudenberg wrote:</span><br><blockquote type="cite"><span>Hi all,</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>I'm proud to announce SqueakJS, a new Squeak VM that runs on Javascript:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span> &nbsp; &nbsp;<a href="http://bertfreudenberg.github.io/SqueakJS/">http://bertfreudenberg.github.io/SqueakJS/</a></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>It was inspired by Dan's JSqueak/Potato VM for Java, and similarly only runs the old Squeak 2.2 mini.image for now. But I developed it inside the Lively Kernel, which allowed me to make a nice UI to look inside the VM (in addition to all the Lively tools):</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><span></span><br><span>I don't know if anyone commented on the UI, but I love the VM debugger panels</span><br><span>that display and control the running VM while you use the Squeak mini image</span><br><span>running right next to it.</span><br><span></span><br><span>Dave</span><br></div></blockquote><div><br></div>Thanks :) And there's even some stuff that's not exposed in the UI yet. I use the Lively tools to inspect the VM. Then for example<br><div style="-webkit-text-size-adjust: auto;"><br></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k" style="font-weight: bold;">this</span><span class="p">.</span><span class="nx">breakOnNewMethod</span> <span class="o" style="font-weight: bold;">=</span> <span class="kc" style="font-weight: bold;">true</span><span class="p">;</span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p"><br></span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p">will break when the newest CompiledMethod is executed - which is your next doit.&nbsp;</span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p"><br></span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p">Or, use the Chrome debugger to step through the GC:</span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p"><br></span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;debugger; this.image.fullGC();</span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p"><br></span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p">It's fun - for our sort of folks, anyway ;)</span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p"><br></span></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"><span class="p">- Bert -</span></span></div></body></html>