<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Dec 16, 2015 at 3:20 PM, 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"><br>
On Thu, Dec 17, 2015 at 4:13 AM, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; There are constraints here.  The VM assumes the following memory order:<br>
&gt;<br>
&gt; Low addresses:<br>
&gt;     machine code zone<br>
&gt;     new space<br>
&gt;     first heap segment<br>
&gt;<br>
&gt; High addresses<br>
&gt;     subsequent heap segments</blockquote><div><br></div><div>I know new space &lt; old space is relied on for store buffer checks. Is the relative order of the code zone and the heap ever used?</div><div><br></div><div>Thinking long term, this reliance on ordering is bad for address space randomization or having multiple heaps in the same process (e.g., having concurrent actors with fast messaging). The Dart VM uses object alignment to distinguish object age, though it doesn&#39;t have immediate characters or floats contending for that bit.</div></div></div></div>