<br><br><div class="gmail_quote">On Tue, Nov 30, 2010 at 5:14 PM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Hi,<br>
<br>
I&#39;m away and cannot check this right now, but if you look in the<br>
SqS/VMMaker archive there there are a number of recent updates that<br>
may address this problem. See the Montecello update comments for<br>
VMMaker-dtl.188, VMMaker-dtl.199, and VMMaker-dtl.200 for summaries.<br>
These updates would not be in any of the released VMs at this point,<br>
but I have a hunch that they will take care of this problem.<br></blockquote><div><br>Hi Dave. Ok...after a couple of hours I could compile a new VM for MacOS with VMMaker 205 and integrating all my changes :)<br>So....this was something I have to do since several months already hehhehe<br>

<br>Now, as you guessed, something  was related to that. Now, these are the results:<br><br>normal:<br><br>Smalltalk garbageCollect   481957728<br>Smalltalk primBytesLeft 5738200<br><br>with -memory 1500m<br><br>Smalltalk garbageCollect    482093452<br>

Smalltalk primBytesLeft 6444200 <br> <br><br>Now, at least it is not negative. But I wonder....shouldn&#39;t I have more bytes left when I send 1500m ? <br>how can I be sure that the VM is actually tacking into account this parameter?<br>

can I check some parameter in Smalltalk vmParameterAt:<br>?<br><br>thanks!<br><br>mariano<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Dave<br>
<div><div></div><div><br>
<br>
On Tue, Nov 30, 2010 at 02:43:50PM +0100, Mariano Martinez Peck wrote:<br>
&gt;<br>
&gt; Hi folks. I am using the standard SqueakVM  4.2.5beta1U.<br>
&gt; If I run normaly the VM with a normal Pharo image and I print Smalltalk<br>
&gt; garbageCollect -&gt; I get something like  492130460<br>
&gt;<br>
&gt; Now...if I run the vm with the parameter -memory 1500m  and I then print<br>
&gt; Smalltalk garbageCollect -&gt; I get a NEGATIVE number like:  -619402660<br>
&gt;<br>
&gt; I guess there is a problem in somewhere like ObjectMemory &gt;&gt; bytesLeft:<br>
&gt; but I don&#39;t know...<br>
&gt;<br>
&gt; Anyway, the problem in my case is in SmalltalkImage:<br>
&gt;<br>
&gt; okayToProceedEvenIfSpaceIsLow<br>
&gt;     &quot;Return true if either there is enough memory to do so safely or if the<br>
&gt; user gives permission after being given fair warning.&quot;<br>
&gt;<br>
&gt;     self garbageCollectMost &gt; self lowSpaceThreshold ifTrue: [^ true].<br>
&gt; &quot;quick&quot;<br>
&gt;     self garbageCollect &gt; self lowSpaceThreshold ifTrue: [^ true].  &quot;work<br>
&gt; harder&quot;<br>
&gt;<br>
&gt;     ^ self confirm:<br>
&gt; &#39;WARNING: There is not enough space to start the low space watcher.<br>
&gt; If you proceed, you will not be warned again, and the system may<br>
&gt; run out of memory and crash. If you do proceed, you can start the<br>
&gt; low space notifier when more space becomes available simply by<br>
&gt; opening and then closing a debugger (e.g., by hitting Cmd-period.)<br>
&gt; Do you want to proceed?&#39;<br>
&gt;<br>
&gt;<br>
&gt; Since both of the first answers false because, of course garbageCollectMost<br>
&gt; and garbageCollect are negative....<br>
&gt; then I have that poup all the time.<br>
&gt;<br>
&gt; To fix this I have to posibilities:<br>
&gt;<br>
&gt; 1) Just patch this particular method to:<br>
&gt;<br>
&gt; self garbageCollectMost.<br>
&gt; self primBytesLeft &gt; self lowSpaceThreshold ifTrue: [^ true].  &quot;quick&quot;<br>
&gt; self garbageCollect<br>
&gt; self primBytesLeft &gt; self lowSpaceThreshold ifTrue: [^ true].  &quot;work harder&quot;<br>
&gt;<br>
&gt; Notice that primBytesLeft is answering correct. Wait..I don&#39;t know if<br>
&gt; correct, but at least possitive:  5691396<br>
&gt; I think this is possitive because the primitive is not receiving a<br>
&gt; parameter, and thus, Interpreter &gt;&gt; primitiveBytesLeft<br>
&gt; evaluates the first part of the method, which just does self sizeOfFree:<br>
&gt; freeBlock , and not the second part where it does self bytesLeft: aBool.<br>
&gt;<br>
&gt; 2) understand why it is negative and fix it from the VM side (I have no idea<br>
&gt; how to do this).<br>
&gt;<br>
&gt; Now, in addition, I wonder if there may be other places broken because of<br>
&gt; this....I am having some crashed and I don&#39;t know why :(<br>
&gt;<br>
&gt; Thanks in advance,<br>
&gt;<br>
&gt; Mariano<br>
<br>
</div></div></blockquote></div><br>