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
