<div dir="ltr">Wow!  Ben&#39;s article and slides shows Ralph Johnson&#39;s suggestion several steps closer to real life and on computer vision for robots.  <div><br></div><div>I&#39;m still thinking a laser range finder is not necessary since humans don&#39;t have them.  We get by with eyes that can measure distances with or without stereo enhancement and the stereo image facility helps us see things neither eye can make out alone.  </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 14, 2015 at 5:30 AM, Kirk Fraser <span dir="ltr">&lt;<a href="mailto:overcomer.man@gmail.com" target="_blank">overcomer.man@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">Ben,<div><br></div><div>Thanks for the FPGA idea and links.  I&#39;ve seen Parallax released their microcontroller design to public so their community can make their own microcontroller FPGA&#39;s.  Getting Smalltalk code into silicon would be great for a second version of my robot after the prototype works.  Or it could be a useful step in dealing with computer vision.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Kirk</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 14, 2015 at 4:42 AM, Ben Coman <span dir="ltr">&lt;<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Smalltalk FPGA may be of interest...<br>
<br>
<a href="http://www.slideshare.net/esug/luc-fabresse-iwst2014" rel="noreferrer" target="_blank">http://www.slideshare.net/esug/luc-fabresse-iwst2014</a><br>
<br>
<a href="http://esug.org/data/ESUG2014/IWST/Papers/iwst2014_From%20Smalltalk%20to%20Silicon_Towards%20a%20methodology%20to%20turn%20Smalltalk%20code%20into%20FPGA.pdf" rel="noreferrer" target="_blank">http://esug.org/data/ESUG2014/IWST/Papers/iwst2014_From%20Smalltalk%20to%20Silicon_Towards%20a%20methodology%20to%20turn%20Smalltalk%20code%20into%20FPGA.pdf</a><br>
<br>
cheers -ben<br>
<div><div><br>
On Tue, Jul 14, 2015 at 11:55 AM, Kirk Fraser &lt;<a href="mailto:overcomer.man@gmail.com" target="_blank">overcomer.man@gmail.com</a>&gt; wrote:<br>
&gt; Hi Casey,<br>
&gt;<br>
&gt; Thanks for the suggestion.  I will have multiple connected controller boards<br>
&gt; and with your suggestion maybe I&#39;ll try a Pi for each limb and each webcam<br>
&gt; or maybe your ARM9 suggestion.<br>
&gt;<br>
&gt; To prove it&#39;s good as a human in performance I want it to do minor<br>
&gt; acrobatics like cartwheels and balancing tricks, maybe a Chuck Norris kick<br>
&gt; or jumping over a fence with one hand on a post.  Or like those free-running<br>
&gt; videos. Stuff I could not do myself. But it all waits on money.  Maybe I&#39;ll<br>
&gt; make better progress next year when social security kicks in.<br>
&gt;<br>
&gt; As far as human performance goals, one professor wrote it takes 200 cycles<br>
&gt; per second to hop on one leg.  Somewhere I read human touch can sense 1 in<br>
&gt; 32,000 of an inch.  I don&#39;t have the other figures yet.  I may not be able<br>
&gt; to drive an arm as fast as a human boxer - 200 mph but as long as it&#39;s fast<br>
&gt; enough to drive a vehicle on a slow road (not I5) that might be enough until<br>
&gt; faster computers are here.<br>
&gt;<br>
&gt; The vision system seems like a major speed bottle neck.  Maybe a mini-cloud<br>
&gt; can take one 64th of the image for each processor analyze it, then assemble<br>
&gt; larger object detection in time for the next frame.  The DARPA Atlas robot<br>
&gt; used 4 cores for each camera I think.  But a mini-cloud set off nearby to<br>
&gt; process vision and return either the objects with measurements or<br>
&gt; instructions would be a lot of work.   The more I write, the more I see why<br>
&gt; the head of DARPA&#39;s robots said they cost 1-2 million as you have to hire a<br>
&gt; team of programmers or make a really intricate learning program.<br>
&gt;<br>
&gt; Kirk<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Jul 13, 2015 at 5:58 PM, Casey Ransberger &lt;<a href="mailto:casey.obrien.r@gmail.com" target="_blank">casey.obrien.r@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hey Kirk,<br>
&gt;&gt;<br>
&gt;&gt; I like Ralph&#39;s suggestion of doing the time/timing specific stuff on a<br>
&gt;&gt; dedicated microcontroller.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;d recommend going one better: use more than one microcontroller. Robots<br>
&gt;&gt; need to do a lot in parallel; if the robot has to stop driving in order to<br>
&gt;&gt; think, that&#39;s a problem (although the converse would be decidedly human!)<br>
&gt;&gt; Anyway, it sounds like real-time is not negotiable in your view, so green<br>
&gt;&gt; threads won&#39;t cut it either.<br>
&gt;&gt;<br>
&gt;&gt; Mine has... six controllers in total. That&#39;s not counting the ARM9 which<br>
&gt;&gt; is more like a full computer (e.g., Linux.)<br>
&gt;&gt;<br>
&gt;&gt; I think six anyway. Could be more hiding in there. Two drive sensors,<br>
&gt;&gt; three drive motors, one is wired up close to the ARM board to coordinate the<br>
&gt;&gt; other controllers on behalf of what the Linux system wants them doing.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m curious, have you figured out what the average, best, and worst case<br>
&gt;&gt; latencies are on human reflexes? In my view, matching or beating that<br>
&gt;&gt; benchmark is where the money probably is.<br>
&gt;&gt;<br>
&gt;&gt; --C<br>
&gt;&gt;<br>
&gt;&gt; On Jul 6, 2015, at 12:39 PM, Kirk Fraser &lt;<a href="mailto:overcomer.man@gmail.com" target="_blank">overcomer.man@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Ralph Johnson,<br>
&gt;&gt;<br>
&gt;&gt; That&#39;s an excellent suggestion and an excellent story, thank you very<br>
&gt;&gt; much!  Letting the human interface in Smalltalk program the robot controller<br>
&gt;&gt; instead of being the robot controller sounds good.<br>
&gt;&gt;<br>
&gt;&gt; My robot uses a network of Parallax microcontroller chips to drive<br>
&gt;&gt; hydraulic valves, which can be programmed via USB for simple tasks like<br>
&gt;&gt; moving one joint from point A to B but since each controller has 8 cores<br>
&gt;&gt; more complex tasks like grasping or walking can be done on the MCU&#39;s or on a<br>
&gt;&gt; small Raspberry Pi or other hardware in a non-GC or controllable GC<br>
&gt;&gt; language.<br>
&gt;&gt;<br>
&gt;&gt; A harder part to wrap my head around is handling the webcam vision system<br>
&gt;&gt; and artificial intelligence while remaining time sensitive enough to do time<br>
&gt;&gt; critical tasks like cartwheels and other acrobatic choreography.<br>
&gt;&gt;<br>
&gt;&gt; I know in effect my human mind shuts down most of its intellectual<br>
&gt;&gt; pursuits when engaged in heavy physical activity - maybe the robot must do<br>
&gt;&gt; the same - think more creatively when idling and pay closer attention while<br>
&gt;&gt; working. That takes care of the Ai timing.<br>
&gt;&gt;<br>
&gt;&gt; The heavy load of vision processing appears to need a mini-cloud of cores<br>
&gt;&gt; to reduce time to identify and measure objects from contours and other<br>
&gt;&gt; information.  To guarantee performance they would also need to run a non-GC<br>
&gt;&gt; language that could be programmed from Squeak interactively as new objects<br>
&gt;&gt; are being learned.  I haven&#39;t worked with a laser range finder but I suspect<br>
&gt;&gt; they use it to narrow the focus onto moving objects to process video in more<br>
&gt;&gt; detail in those areas.<br>
&gt;&gt;<br>
&gt;&gt; The current buzzword &quot;co-robots&quot; meaning robots that work beside or<br>
&gt;&gt; cooperatively with people working in symbiotic relationships with human<br>
&gt;&gt; partners suggests everyone will need a robot friend, which will require an<br>
&gt;&gt; artificial intelligence capable of intelligent thought.  As most Americans<br>
&gt;&gt; are Christian it would make sense for a human compatible AI to be based on<br>
&gt;&gt; the Bible.  That is what I would love to work on.  But that level of thought<br>
&gt;&gt; needs a creative CG environment like Squeak at present.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ve been thinking that using a Smalltalk GUI to issue command rules to<br>
&gt;&gt; set an agenda for automatic text analysis and editing might be fun, letting<br>
&gt;&gt; the computer do the editing instead of me.  That way it could update the AI<br>
&gt;&gt; knowledge like when a preferred synonym is discovered, without taking human<br>
&gt;&gt; time to do much of it beyond the setup.<br>
&gt;&gt;<br>
&gt;&gt; Your wikipedia entry shows a webpage and blog that apparently are dead<br>
&gt;&gt; links.  Would you be interested in being a team member on my SBIR/STTR grant<br>
&gt;&gt; application(s) for AI and Robots responding to:<br>
&gt;&gt; <a href="http://www.nsf.gov/publications/pub_summ.jsp?ods_key=nsf15505" rel="noreferrer" target="_blank">http://www.nsf.gov/publications/pub_summ.jsp?ods_key=nsf15505</a>  I&#39;ve<br>
&gt;&gt; enlisted help in writing the application from Oregon&#39;s Small Business<br>
&gt;&gt; Development Center and will meet with an SBIR road trip in August I&#39;m told.<br>
&gt;&gt; (I was also told I need a Ph.D. on my team since I don&#39;t have one.)<br>
&gt;&gt;<br>
&gt;&gt; Kirk Fraser<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Jul 6, 2015 at 4:19 AM, Ralph Johnson &lt;<a href="mailto:johnson@cs.uiuc.edu" target="_blank">johnson@cs.uiuc.edu</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Here is another possibility.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Take a look at Symbolic Sound, a company that makes a system called Kyma.<br>
&gt;&gt;&gt; <a href="http://kyma.symbolicsound.com/" rel="noreferrer" target="_blank">http://kyma.symbolicsound.com/</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This company has been around for over twenty years.   Its product has<br>
&gt;&gt;&gt; always been the fastest music synthesis system in the world that gives you<br>
&gt;&gt;&gt; total control over your sound.  And by &quot;total&quot;, I mean it gives you the<br>
&gt;&gt;&gt; ability to mathematically specify each sound wave.   If you want, which is<br>
&gt;&gt;&gt; actually too much detail for most people.   And it is all written in<br>
&gt;&gt;&gt; Smalltalk.  Not Squeak, of course, since Squeak wasn&#39;t around then.   But it<br>
&gt;&gt;&gt; could have been done in Squeak.   And perhaps they ported it to Squeak.   I<br>
&gt;&gt;&gt; haven&#39;t talked to them for a long time so I don&#39;t know what they did, but<br>
&gt;&gt;&gt; from the screen shots I think it is still a very old version of VisualWorks.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Anyway, how do they make it so fast?  How can they make something that<br>
&gt;&gt;&gt; can be used for hours without any GC pauses?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The trick is that the sound is produced on an attached DSP.   The GUI is<br>
&gt;&gt;&gt; in Smalltalk on a PC, and it generates code for the DSP.   It is non-trivial<br>
&gt;&gt;&gt; making the compiler so fast that when you press &quot;play&quot;, it can immediately<br>
&gt;&gt;&gt; start up the DSP and start producing sound.  It does this (rather, it did<br>
&gt;&gt;&gt; this, since they might have changed the way it works) by just producing<br>
&gt;&gt;&gt; enough code to run the DSP for a few seconds and then starting the DSP while<br>
&gt;&gt;&gt; it generates the rest of the code.   Kyma literally is writing the program<br>
&gt;&gt;&gt; into DSP memory at the same time as the DSP is running the program,<br>
&gt;&gt;&gt; producing sound.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Anyway, maybe that is the right approach to programming robots.   You<br>
&gt;&gt;&gt; don&#39;t even need to use two computers.   Imagine you had two computers, one<br>
&gt;&gt;&gt; running Squeak and the other a simple, real-time machine designed for<br>
&gt;&gt;&gt; controlling robots, but not very sophisticated.  Squeak programs the simple<br>
&gt;&gt;&gt; computer, and can change its program dynamically.  The simple computer has<br>
&gt;&gt;&gt; no gc.   Since Squeak is a VM on a computer, the real-time computer can be a<br>
&gt;&gt;&gt; VM, too.  So, you could be running them both on your PC, or you could run<br>
&gt;&gt;&gt; them on two separate computers for better performance.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I would be happy to talk more about this.  But I&#39;d like to talk about the<br>
&gt;&gt;&gt; beginning of Kyma.   The owners of Symbolic Sound are Carla Scaletti and<br>
&gt;&gt;&gt; Kurt Hebel.   Carla has a PhD in music, and Kurt in Electrical Engineering.<br>
&gt;&gt;&gt; I met Carla after she had her PhD.  She wanted to get a MS in computer<br>
&gt;&gt;&gt; science so she could prove her computer music expertise, and she ended up<br>
&gt;&gt;&gt; getting it with me.   She took my course on OOP&amp;D that used Smalltalk.  For<br>
&gt;&gt;&gt; her class project (back in 1987, I think) she wrote a Smalltalk program that<br>
&gt;&gt;&gt; ran on the Mac and that produced about ten seconds of sound, but it took<br>
&gt;&gt;&gt; several minutes to do it.   Hardly real time.   However, she was used to<br>
&gt;&gt;&gt; using a supercomputer (a Cray?) to generate sounds that still weren&#39;t real<br>
&gt;&gt;&gt; time, so she was very pleased that she could do it on the Mac at all, and<br>
&gt;&gt;&gt; though Smalltalk was slower than Fortran, in her opinion the ease of use was<br>
&gt;&gt;&gt; so great that she didn&#39;t mind the speed difference.   As she put it, the<br>
&gt;&gt;&gt; speed difference between a Mac and a Cray was bigger than between Smalltalk<br>
&gt;&gt;&gt; and Fortran.  She ended up turning this into the first version of Kyma and<br>
&gt;&gt;&gt; that became the subject of her MS thesis.   I can remember when she showed<br>
&gt;&gt;&gt; it in class.  She was the only woman in the class, and the other students<br>
&gt;&gt;&gt; knew she was a musician, i.e. not *really* a programmer.  She was quiet<br>
&gt;&gt;&gt; during class, so they had not had a chance to have their prejudices<br>
&gt;&gt;&gt; remedied.  Her demo at the end of the semester blew them away.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Kurt had built a DSP that their lab used.   (The lab was part of the<br>
&gt;&gt;&gt; Plato project, I believe, one of the huge number of creative results of this<br>
&gt;&gt;&gt; very significant project at Illinois.)   It was called the Capybara.  This<br>
&gt;&gt;&gt; was before the time when you could just buy a good DSP on a chip, but that<br>
&gt;&gt;&gt; time came very soon and then they used the commercial chips.  For her MS,<br>
&gt;&gt;&gt; she converted her system to use the Capybara, and this was when she figured<br>
&gt;&gt;&gt; out how to make it start making music within a fraction of a second of<br>
&gt;&gt;&gt; pressing the &quot;play&quot; button.  Kurt also used Smalltalk with the Capybara.<br>
&gt;&gt;&gt; His PhD was about automatically designing digital filters, and his software<br>
&gt;&gt;&gt; also generated code for the Capybara, though it was actually quite different<br>
&gt;&gt;&gt; from Kyma.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The two of them worked on several different projects over the next few<br>
&gt;&gt;&gt; years, but kept improving Kyma.   Along the way Kurt started building boards<br>
&gt;&gt;&gt; that had several commercial DSPs on them.  Eventually they decided to go<br>
&gt;&gt;&gt; commercial and started Symbolic Sound.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; -Ralph Johnson<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Sun, Jul 5, 2015 at 9:05 PM, Kirk Fraser &lt;<a href="mailto:overcomer.man@gmail.com" target="_blank">overcomer.man@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Tim says a multi-core VM is coming for the new Pi.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt; Are you *sure* that&#39;s what Tim said?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Of course my over hopeful misinterpretation is possible.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &quot;Squeak runs quite well on a Pi, especially a pi2 - and we&#39;re working on<br>
&gt;&gt;&gt;&gt; the Cog dynamic translation VM right now, which should with luck triple<br>
&gt;&gt;&gt;&gt; typical performance.&quot;  - timrowledge » Thu Feb 19, 2015<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href="https://www.raspberrypi.org/forums/viewtopic.php?f=63&amp;t=100804&amp;p=698818&amp;hilit=Squeak#p698818" rel="noreferrer" target="_blank">https://www.raspberrypi.org/forums/viewtopic.php?f=63&amp;t=100804&amp;p=698818&amp;hilit=Squeak#p698818</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt; The trick to getting rid of long delays is more a function of<br>
&gt;&gt;&gt;&gt; &gt; preallocating everything you can than getting rid of GC&#39;s (I&#39;ve done some<br>
&gt;&gt;&gt;&gt; &gt; highly interactive stuff in GC environments and preventing GC&#39;s is<br>
&gt;&gt;&gt;&gt; &gt; impractical except over short periods of time, minimizing their frequency<br>
&gt;&gt;&gt;&gt; &gt; and duration is very doable)  One of the things I think I<br>
&gt;&gt;&gt;&gt; recently saw that should help you in this regard is FFI memory pinning<br>
&gt;&gt;&gt;&gt; if you&#39;re calling out to external code.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks.  Maybe when I find, make, or build a better place to work, I&#39;ll<br>
&gt;&gt;&gt;&gt; be able to tackle some of that.  I wouldn&#39;t be surprised if a VM is as easy<br>
&gt;&gt;&gt;&gt; as a compiler once one actually starts working on it.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Sun, Jul 5, 2015 at 6:31 PM, Phil (list) &lt;<a href="mailto:pbpublist@gmail.com" target="_blank">pbpublist@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Sun, 2015-07-05 at 17:12 -0700, Kirk Fraser wrote:<br>
&gt;&gt;&gt;&gt;&gt; &gt; I used Cuis at first to display hand written G-Codes in graphic form<br>
&gt;&gt;&gt;&gt;&gt; &gt; for a printed circuit board.  I kept up with Cuis through a few<br>
&gt;&gt;&gt;&gt;&gt; &gt; versions and found a couple of bugs for Juan.  Eventually Casey<br>
&gt;&gt;&gt;&gt;&gt; &gt; advised going to Squeak so I did. Perhaps my requests were getting<br>
&gt;&gt;&gt;&gt;&gt; &gt; annoying.<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Perhaps you misinterpreted what Casey said?  Definitely have all<br>
&gt;&gt;&gt;&gt;&gt; options<br>
&gt;&gt;&gt;&gt;&gt; (Squeak, Pharo, Cuis etc.) as part of your toolkit.  Squeak in<br>
&gt;&gt;&gt;&gt;&gt; particular has a very active mailing lists and you&#39;ll find a lot of<br>
&gt;&gt;&gt;&gt;&gt; existing code to play with.  I personally do most of my development in<br>
&gt;&gt;&gt;&gt;&gt; Cuis, some in Pharo (for things like Seaside that don&#39;t yet exist in<br>
&gt;&gt;&gt;&gt;&gt; Cuis), and a bit still in Squeak.  They all have their place depending<br>
&gt;&gt;&gt;&gt;&gt; on your needs.  Given your emphasis on performance, I would think that<br>
&gt;&gt;&gt;&gt;&gt; Cuis is going to be the place where you can maximize it. (all the above<br>
&gt;&gt;&gt;&gt;&gt; Smalltalk variants use essentially the same core VM, it&#39;s the plugins<br>
&gt;&gt;&gt;&gt;&gt; and images that really differ)<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; I&#39;m mostly interested in using a multi-core Squeak with GC control<br>
&gt;&gt;&gt;&gt;&gt; &gt; for<br>
&gt;&gt;&gt;&gt;&gt; &gt; my robot.  Tim says a multi-core VM is coming for the new Pi.  He<br>
&gt;&gt;&gt;&gt;&gt; &gt; hasn&#39;t answered on GC control.  With muliti-core a user need not see<br>
&gt;&gt;&gt;&gt;&gt; &gt; GC control but the system should provide 100% GC free service even if<br>
&gt;&gt;&gt;&gt;&gt; &gt; behind the scenes it momentarily toggles one GC off and lets the<br>
&gt;&gt;&gt;&gt;&gt; &gt; other<br>
&gt;&gt;&gt;&gt;&gt; &gt; complete.<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Are you *sure* that&#39;s what Tim said?  I see a thread where he&#39;s talking<br>
&gt;&gt;&gt;&gt;&gt; about *build* performance (i.e. compiling the C code for the VM) on a<br>
&gt;&gt;&gt;&gt;&gt; quad-core with the caveat &#39;even if Squeak can&#39;t directly take<br>
&gt;&gt;&gt;&gt;&gt; advantage&#39; (i.e. no multi-core VM)<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt; &gt; With real time driving, which I hope my robot will do some day,<br>
&gt;&gt;&gt;&gt;&gt; &gt; getting rid of all 100ms delays is vital.<br>
&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; The trick to getting rid of long delays is more a function of<br>
&gt;&gt;&gt;&gt;&gt; preallocating everything you can than getting rid of GC&#39;s (I&#39;ve done<br>
&gt;&gt;&gt;&gt;&gt; some highly interactive stuff in GC environments and preventing GC&#39;s is<br>
&gt;&gt;&gt;&gt;&gt; impractical except over short periods of time, minimizing their<br>
&gt;&gt;&gt;&gt;&gt; frequency and duration is very doable)  One of the things I think I<br>
&gt;&gt;&gt;&gt;&gt; recently saw that should help you in this regard is FFI memory pinning<br>
&gt;&gt;&gt;&gt;&gt; if you&#39;re calling out to external code.<br>
&gt;&gt;&gt;&gt;&gt;<br>
</div></div><div><div>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@lists.squeakfoundation.org" target="_blank">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>
</div></div></blockquote></div><br></div>