--001a11c367020dfd8204db6ef8ce
Content-Type: text/plain; charset=UTF-8

On Sun, Apr 28, 2013 at 6:29 PM, SASADA Koichi <ko1 / atdot.net> wrote:

> (2013/04/29 1:19), Magnus Holm wrote:
> > In hindsight I think that the sliding views-technique is only required
> > if you have multiple threads running at the same time. In CRuby there
> > will only be a single thread running Ruby code so this becomes easier.
> > For a concurrent tracer (tracing/marking objects as the Ruby thread
> > runs) the most important thing is to get a consistent view of the heap.
>
> Please read my previous message: "I don't think it is acceptable for
> CRuby (because CRuby moves memory areas!)".
>
> Concurrent tracing needs an assumption that "do not move (free) memory
> area except sweeping timing". Current CRuby does.
> For example: "ary << obj". Yes, the CRuby's memory management strategy
> (assumption) is different from normal interpreters.


I was not aware of that.

What exactly does "moving memory areas" mean? Do you have any links?

--001a11c367020dfd8204db6ef8ce
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir="ltr">On Sun, Apr 28, 2013 at 6:29 PM, SASADA Koichi <span dir="ltr">&lt;<a href="mailto:ko1 / atdot.net" target="_blank">ko1 / atdot.net</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">(2013/04/29 1:19), Magnus Holm wrote:<br>
&gt; In hindsight I think that the sliding views-technique is only required<br>
&gt; if you have multiple threads running at the same time. In CRuby there<br>
&gt; will only be a single thread running Ruby code so this becomes easier.<br>
&gt; For a concurrent tracer (tracing/marking objects as the Ruby thread<br>
&gt; runs) the most important thing is to get a consistent view of the heap.<br>
<br>
</div>Please read my previous message: &quot;I don&#39;t think it is acceptable for<br>
<div class="im">CRuby (because CRuby moves memory areas!)&quot;.<br>
<br>
</div>Concurrent tracing needs an assumption that &quot;do not move (free) memory<br>
area except sweeping timing&quot;. Current CRuby does.<br>
For example: &quot;ary &lt;&lt; obj&quot;. Yes, the CRuby&#39;s memory management strategy<br>
(assumption) is different from normal interpreters.</blockquote><div><br></div><div style>I was not aware of that.</div><div style><br></div><div style>What exactly does &quot;moving memory areas&quot; mean? Do you have any links?</div>

</div><br></div></div>

--001a11c367020dfd8204db6ef8ce--