<br><br><div class="gmail_quote">On Wed, Mar 20, 2013 at 1:34 PM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@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">
It can be used by external apps but at this time one would be<br>
ill-advised to depend on it.  As my prior note shows, the cog VM does<br>
not signal the LowSpaceSemaphore until it is so maxed out on memory<br>
that the initial GC prior to calling #freeSomeSpace crashes the VM.<br>
There is no chance for any registered memory-hog to act on the<br>
low-memory condition.<br></blockquote><div><br></div><div>Which is a bad bug.  And to be pedantic is actually false.  The Cog VM *does* signal low space, at least sometimes :)  For example the following just triggered low space at depth 476 in a trunk image on Mac OS X.</div>
<div><br></div><div><div>| b |</div><div>Smalltalk garbageCollect.</div><div>b := #assigned.</div><div>b := [:d :r|</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> (d \\ 10) = 0 ifTrue:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>[Display reverse: (0@0 corner: d@d/10)].</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span> d &gt;= 800 ifTrue:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>[[Project current interruptName: &#39;User Interrupt @ &#39;, d printString] newProcess</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>priority: Processor activePriority + 1;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>resume].</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> b value: d + 1 value: (Array new: 1024 * 1024 / 4)].</div>
<div>b value: 0 value: nil</div></div><div><br></div><div>The UserInterrupt thang is to try and reproduce a crash I had when I interrupted the simpler case below which then crashed the VM:</div><div><br></div><div><div><div>
| b |</div><div>Smalltalk garbageCollect.</div><div>b := #assigned.</div><div>b := [:d :r|</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> b value: d + 1 value: (Array new: 1024 * 1024 / 4)].</div>
<div>b value: 0 value: nil</div></div></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In my initial note I tried to ask whether the #lowSpaceThreshold could<br>

simply be increased to fix that but did not get a clear answer.<br></blockquote><div><br></div><div>I don&#39;t know yet.  I have a crash to investigate on Windows that points to the problem being the amount of space Cog reserves for flushing stack pages to the heap as contexts.  Reproducible cases that do crash and don&#39;t take an age to run much appreciated :-/.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, Mar 19, 2013 at 12:21 PM, karl ramberg &lt;<a href="mailto:karlramberg@gmail.com">karlramberg@gmail.com</a>&gt; wrote:<br>

&gt; :-)<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Mar 19, 2013 at 3:07 PM, Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; More accurately: the base image doesn&#39;t have any memory hogs :)<br>
&gt;&gt;<br>
&gt;&gt; frank<br>
&gt;&gt;<br>
&gt;&gt; On 19 March 2013 11:21, karl ramberg &lt;<a href="mailto:karlramberg@gmail.com">karlramberg@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Ok, I see.<br>
&gt;&gt; &gt; So it&#39;s a feature not used in the 4.4 release image.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Karl<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Mar 19, 2013 at 9:12 AM, Georg Gollmann<br>
&gt;&gt; &gt; &lt;<a href="mailto:gollmann@zid.tuwien.ac.at">gollmann@zid.tuwien.ac.at</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Am 18.03.2013 um 23:29 schrieb karl ramberg &lt;<a href="mailto:karlramberg@gmail.com">karlramberg@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I don&#39;t see how #memoryHogs and #freeSomeSpace can work.<br>
&gt;&gt; &gt;&gt; ...<br>
&gt;&gt; &gt;&gt; #freeSomeSpace is not implemented and SystemDictionary&gt;&gt;lowSpaceWatcher<br>
&gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; the only sender of #memoryHogs<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Memory hogs are supposed to implement #freeSomeSpace and register<br>
&gt;&gt; &gt;&gt; themselves with the lowSpaceWatcher.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Kind regards<br>
&gt;&gt; &gt;&gt; Georg<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>