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
