On Tue, Apr 10, 2012 at 12:26 PM, Jonathan S. Shapiro <[email protected]>wrote:

> It's also worth noting that *malloc* can be expensive!
>>
>
...even an expensive malloc does not stop all threads.

I'm sad to see folks still continuing this discussion of how such-and-such
pause is okay in so-and-so situation. This might be okay for a
whole-program Haskell compile, however, this doesn't fly in an industry
wide modular systems runtime.

Software is built with leverage, layer upon layer of abstractions combined
together. When we write a modular library, we have no idea who is going to
use it and for what, and with how large a heap, and under what conditions.
Any runtime which serves a subset of the industry is going to get a subset
of the support. If we want a runtime to have a chance of eclipsing the
C-shlib, it needs to have everyone's support, for every application -- and
reporting from the industry, I'll say that stop-the-world is more
unacceptable than some here seem to realize.

All the PL research in the world is not going to get us a system to replace
the C-shlib runtime if it ignores the nearly universal need for
no-world-stop, modular compilation, and modular forward upgradability. Just
consider where these whole-program functional or inference languages would
be if there were no c-shared libraries beneath them.

I'm really happy with the CIL increments over JVM. structs are a really
needed mechanism to get data-cache locality and avoid some
heap-allocations. Modular assemblies are a really necessary improvement
over JVM style "string-name class loading". Type-instantiation is a really
important performance and data-cache locatlity improvement over
type-erasure.

I'm thrilled to (as a result of this thread) to see the work by the Azul
folks to make a no-world-stop compacting GC in their C4 collector. If it
works as well as they claim, it could really help us move the industry
forward. I'll gladly take a 15% single-threaded performance hit to end the
world-stop -- in every one of my applications.

These pieces seem so close. Whether it's in an industry wide CIL+C4,
JVM2+C4, or something else entirely, we need to bring these pieces together
and make something that can really move modular systems programming and
shared libraries past the "era of C".  It's hard to say when it will occur,
but I predict it can only occur once we privide a typesafe environment with
no world-stop, modular compilation, and modular forward upgradability --
just like C-shlibs have had for decades.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to