<div dir="ltr"><div>&gt;&gt; Tim says a multi-core VM is coming for the new Pi.  </div><div><br></div><div>&gt; Are you *sure* that&#39;s what Tim said?<br></div><div><br></div>Of course my over hopeful misinterpretation is possible.<div><br></div><div>&quot;Squeak runs quite well on a Pi, especially a pi2 - and we&#39;re working on the Cog dynamic translation VM right now, which should with luck triple typical performance.&quot;  - timrowledge » Thu Feb 19, 2015 <br></div><div><a href="https://www.raspberrypi.org/forums/viewtopic.php?f=63&amp;t=100804&amp;p=698818&amp;hilit=Squeak#p698818">https://www.raspberrypi.org/forums/viewtopic.php?f=63&amp;t=100804&amp;p=698818&amp;hilit=Squeak#p698818</a><br></div><div><br></div><div><div>&gt; The trick to getting rid of long delays is more a function of preallocating everything you can than getting rid of GC&#39;s (I&#39;ve done some highly interactive stuff in GC environments and preventing GC&#39;s is impractical except over short periods of time, minimizing their frequency and duration is very doable)  One of the things I think I</div><div>recently saw that should help you in this regard is FFI memory pinning if you&#39;re calling out to external code.</div></div><div><br></div><div>Thanks.  Maybe when I find, make, or build a better place to work, I&#39;ll be able to tackle some of that.  I wouldn&#39;t be surprised if a VM is as easy as a compiler once one actually starts working on it.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 5, 2015 at 6:31 PM, Phil (list) <span dir="ltr">&lt;<a href="mailto:pbpublist@gmail.com" target="_blank">pbpublist@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"><span class="">On Sun, 2015-07-05 at 17:12 -0700, Kirk Fraser wrote:<br>
&gt; I used Cuis at first to display hand written G-Codes in graphic form<br>
&gt; for a printed circuit board.  I kept up with Cuis through a few<br>
&gt; versions and found a couple of bugs for Juan.  Eventually Casey<br>
&gt; advised going to Squeak so I did. Perhaps my requests were getting<br>
&gt; annoying.<br>
&gt;<br>
<br>
</span>Perhaps you misinterpreted what Casey said?  Definitely have all options<br>
(Squeak, Pharo, Cuis etc.) as part of your toolkit.  Squeak in<br>
particular has a very active mailing lists and you&#39;ll find a lot of<br>
existing code to play with.  I personally do most of my development in<br>
Cuis, some in Pharo (for things like Seaside that don&#39;t yet exist in<br>
Cuis), and a bit still in Squeak.  They all have their place depending<br>
on your needs.  Given your emphasis on performance, I would think that<br>
Cuis is going to be the place where you can maximize it. (all the above<br>
Smalltalk variants use essentially the same core VM, it&#39;s the plugins<br>
and images that really differ)<br>
<span class=""><br>
&gt; I&#39;m mostly interested in using a multi-core Squeak with GC control for<br>
&gt; my robot.  Tim says a multi-core VM is coming for the new Pi.  He<br>
&gt; hasn&#39;t answered on GC control.  With muliti-core a user need not see<br>
&gt; GC control but the system should provide 100% GC free service even if<br>
&gt; behind the scenes it momentarily toggles one GC off and lets the other<br>
&gt; complete.<br>
&gt;<br>
<br>
</span>Are you *sure* that&#39;s what Tim said?  I see a thread where he&#39;s talking<br>
about *build* performance (i.e. compiling the C code for the VM) on a<br>
quad-core with the caveat &#39;even if Squeak can&#39;t directly take<br>
advantage&#39; (i.e. no multi-core VM)<br>
<span class=""><br>
&gt;<br>
&gt; With real time driving, which I hope my robot will do some day,<br>
&gt; getting rid of all 100ms delays is vital.<br>
&gt;<br>
<br>
</span>The trick to getting rid of long delays is more a function of<br>
preallocating everything you can than getting rid of GC&#39;s (I&#39;ve done<br>
some highly interactive stuff in GC environments and preventing GC&#39;s is<br>
impractical except over short periods of time, minimizing their<br>
frequency and duration is very doable)  One of the things I think I<br>
recently saw that should help you in this regard is FFI memory pinning<br>
if you&#39;re calling out to external code.<br>
<div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 5, 2015 at 4:54 PM, Dan Norton &lt;<a href="mailto:dnorton@mindspring.com">dnorton@mindspring.com</a>&gt;<br>
&gt; wrote:<br>
&gt;         On 5 Jul 2015 at 16:22, Kirk Fraser wrote:<br>
&gt;<br>
&gt;<br>
&gt;         &gt;<br>
&gt;         &gt; We should ask why do people want to teach Python instead of<br>
&gt;         &gt; Smalltalk?  Why do people veer<br>
&gt;         &gt; away from Smalltalk with add-ons like Etoys, Scratch, and<br>
&gt;         many other<br>
&gt;         &gt; paradigms like Patterns<br>
&gt;         &gt; and CRC cards, which aren&#39;t as good for commercial<br>
&gt;         programming, thus<br>
&gt;         &gt; really aren&#39;t as good to<br>
&gt;         &gt; teach children?  What can be done to remodel Squeak to<br>
&gt;         provide all<br>
&gt;         &gt; the features more<br>
&gt;         &gt; commercially popular languages have?<br>
&gt;         &gt;<br>
&gt;         &gt; Earlier a post saying a boss didn&#39;t want a GUI that a<br>
&gt;         combination of<br>
&gt;         &gt; buttons would bring up all<br>
&gt;         &gt; sorts of things his employees shouldn&#39;t be playing with.  So<br>
&gt;         put a<br>
&gt;         &gt; cleaner commercial GUI on the<br>
&gt;         &gt; list. Maybe the preferences switch could be in its own file<br>
&gt;         or as<br>
&gt;         &gt; the first character in Sources to<br>
&gt;         &gt; reduce file count.  The Changes file shouldn&#39;t be needed in<br>
&gt;         a<br>
&gt;         &gt; deployed application.  Is there any<br>
&gt;         &gt; way to cut the deployment image down to one file containing<br>
&gt;         both the<br>
&gt;         &gt; Sources and VM like an<br>
&gt;         &gt; .exe in any other language?<br>
&gt;         &gt;<br>
&gt;         &gt; I&#39;ve written on the need to fix Garbage Collection control<br>
&gt;         so it can<br>
&gt;         &gt; be turned off like Python allows<br>
&gt;         &gt; to enable Squeak to be used for real time projects like self<br>
&gt;         driving<br>
&gt;         &gt; cars, since a 100ms delay can<br>
&gt;         &gt; veer 8 feet off course, fully into a lane of oncoming<br>
&gt;         traffic.<br>
&gt;         &gt;<br>
&gt;         &gt; Recently I learned from a UC Berkeley website it takes 100ms<br>
&gt;         to<br>
&gt;         &gt; recognize the objects in a<br>
&gt;         &gt; picture too.  Does that mean the future will have a cloud in<br>
&gt;         every<br>
&gt;         &gt; car and Squeak needing to<br>
&gt;         &gt; conduct image analysis in hundreds of cooperating cores to<br>
&gt;         get safe<br>
&gt;         &gt; real time performance?<br>
&gt;         &gt;<br>
&gt;         &gt; The state of Squeak for all its benefits seems like a<br>
&gt;         collection of<br>
&gt;         &gt; law statutes, a big set of text<br>
&gt;         &gt; contributed by years of legislation that nobody can remember<br>
&gt;         all of<br>
&gt;         &gt; and some of which makes little<br>
&gt;         &gt; sense.  Maybe a major rewrite starting from zero would help?<br>
&gt;         &gt;<br>
&gt;<br>
&gt;<br>
&gt;         &quot; like a collection of law statutes&quot; is a good analogy. Cuis<br>
&gt;         seems like a major rewrite of Squeak and is simpler, easier to<br>
&gt;         understand. What do you think of Cuis?<br>
&gt;<br>
&gt;<br>
&gt;         &gt; The GUI - while it has many nice features, it somehow seems<br>
&gt;         to lack<br>
&gt;         &gt; the crisp precision, ease,<br>
&gt;         &gt; and speed of commercial software like Solidworks.  I like<br>
&gt;         how<br>
&gt;         &gt; Squeak comes up and is ready to<br>
&gt;         &gt; go far quicker than say Amazon&#39;s Audible application but<br>
&gt;         Squeak<br>
&gt;         &gt; graphics aren&#39;t so fast or easy<br>
&gt;         &gt; to program as Solidworks.<br>
&gt;         &gt;<br>
&gt;         &gt; Recently I saw a couple of short videos on two moderate size<br>
&gt;         robots<br>
&gt;         &gt; where users extolled their<br>
&gt;         &gt; ease of programming.  Perhaps Smalltalk needs a new top<br>
&gt;         level rule<br>
&gt;         &gt; based language to improve<br>
&gt;         &gt; programmer efficiency.  I&#39;m working on this one.  And as my<br>
&gt;         &gt; prototype was so easy, it angers me<br>
&gt;         &gt; to think of all the time I spent being both ignorant and<br>
&gt;         afraid<br>
&gt;         &gt; after seeing various compiler books<br>
&gt;         &gt; like the &quot;Dragon Book&quot; intentionally make compiler writing a<br>
&gt;         &gt; difficult graduate level course instead<br>
&gt;         &gt; of an easy advanced beginner level assignment.<br>
&gt;         &gt;<br>
&gt;         &gt; But one thing I have in common with my Raspberry Pi, when my<br>
&gt;         &gt; utilization is maxed for too long, I<br>
&gt;         &gt; overheat and shut down.  I can write simple stuff like this<br>
&gt;         when<br>
&gt;         &gt; it&#39;s too hot to do real work.  But<br>
&gt;         &gt; even multiple cores get too hot when they are maxed out.  So<br>
&gt;         a real<br>
&gt;         &gt; time computer needs heat<br>
&gt;         &gt; control or cooling overkill in case a vital complex<br>
&gt;         situation clogs<br>
&gt;         &gt; the bandwidth.  Well, pray about<br>
&gt;         &gt; it.<br>
&gt;<br>
&gt;<br>
&gt;          - Dan<br>
&gt;<br>
&gt;<br>
&gt;         _______________________________________________<br>
&gt;         Beginners mailing list<br>
&gt;         <a href="mailto:Beginners@lists.squeakfoundation.org">Beginners@lists.squeakfoundation.org</a><br>
&gt;         <a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/beginners</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Beginners mailing list<br>
&gt; <a href="mailto:Beginners@lists.squeakfoundation.org">Beginners@lists.squeakfoundation.org</a><br>
&gt; <a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/beginners</a><br>
<br>
<br>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@lists.squeakfoundation.org">Beginners@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/beginners</a><br>
</div></div></blockquote></div><br></div>