<div dir="ltr">Hi Henry,<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Sep 25, 2013 at 1:14 AM, Henrik Johansen <span dir="ltr">&lt;<a href="mailto:henrik.s.johansen@veloxit.no" target="_blank">henrik.s.johansen@veloxit.no</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><div style="word-wrap:break-word"><br><div><div>On Sep 24, 2013, at 9:58 , Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt; wrote:</div>
<br><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Sep 23, 2013 at 3:10 PM, Nicolas Cellier <span dir="ltr">&lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">

Isn&#39;t Eliot just implementing this feature, having a segment of non relocatable objects?<br></div></blockquote><div><br></div><div>Sort of.  Spur will allow any object in old space to stay still, and through become can move any object to old space very simply.  So instead of having a special fixed space segment it has a best-bit compaction algorithm that doesn&#39;t slide objects, but moves them into holes.  With this kind of compaction it is very easy to leave objects put.</div>

<div><br></div><div>A further advantage of Spur is that objects have 64-bit alignment so passing arrays to e.g. code using sse instructions, won&#39;t cause potential alignment faults.</div></div></div></div></blockquote>
<br></div><div>Not to be a drag, but SSE operations have 16-byte alignment requirement.</div><div>With 8-byte aligmnent of first indexable slot, you&#39;d still need to use aligned loads/stores.</div></div></blockquote><div>
<br></div><div>Talking out-of-line with someone who has lots of experience with Smalltalk memory management it came to me that the pinning primitive could (and should) take an aligmnet argument).  So one says e.g.</div><div>
<br></div><div>buffer := (ByteArray new: 1024) pinWithByteAlignment: 16</div></div><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>