On Apr 13, 2012 10:10 AM, "Jonathan S. Shapiro" <[email protected]> wrote:
>> After we have a zero-pause runtime, we can spend time and research on
alternative techniques such as regions and advancements to value-types to
relieve pressure on the GC system.
>
> That's backwards. The region and other advances are available to us
today. The pausless collectors are still not understood well enough to be
mainstream yet.

I'm working on a longer response to some other points, but i think this
divide above deserves some digging into on both sides. Here is my
reasoning. Im very interested to hear yours.

If our goal is a typesafe systems runtime to represent all programs (i.e. a
replacement for c and c-shlibs), we need a general purpose typesafe heap
memory reclamation scheme. Regions, refcounting, and linear-types _alone_
can not represent all programs. Thus, if we wish to create a typesafe
runtime to represent all programs, these solutions can only serve as an
optimization for a subset of such a system. They can only represent all
programs by combining them with manual-management (which is not typesafe)
or gc (which brings us back to my point).

The only type-safe heap reclamation schemes im aware of which are capable
of representing all programs are (a) some variation of mark-sweep-compact
tracing gc, and (b) ref-counting, with some variation of mark-sweep cycle
finding.  Therefore, one of these two schemes is a good candidate for the
base of a typesafe runtime (once it meets our no-pause/low-jitter
requirement) to replace c/shlibs/malloc, wheras regions et. al. are only
suitable as optimizations within such a system.

What is your argument?

Do you believe regions and such are capable of representing all heap
reclamation needs and we simply don't know how? It seems to me any other
argument devolves into gc or manual management, which simply proves my
point.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to