> 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. > > > 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 think CIL is a improvement but to go further you are really talking about re-use ( including team factors such as discovery) , versioning and contracts and I ask is the problem of modularity at the lib / dll/code level inherently flawed especially in a 8+ core world ? Consider Browsers - is the current plugin solution good ? The problem is so bad that some browsers are going as far as having no plugins Apple and IE11 Metro for example .. SOA services are the right idea if a bit heavy and some advocates like Juval Lowey are even going as far as 1 class = 1 service ( which i disagree with) , however SOA is constrained by cross machine limitations . I also note Multi processing is moving to message parsing "agent" libraries . To me you want to break a program ( or OS / runtime) downs into as many services as practical (and a run time that facilitates this in an asynchronous , resilient and highly parallel way . These services can use different allocation methods including manual / static / ref counting or even be scheduled to not receive messages ( like the browser example you gave ) and hence solve the GC problem. > > 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. > If you can deal with 15% what is wrong with a ref counting collector ? There are advanced ones but even primitives ones can run a mark /sweep to remove cycles when the programmer wants - eg levels loads , when there is a dialog etc . These are probably of interest http://www.managedruntime.org/webfm_send/4 C4 http://www.managedruntime.org <http://www.managedruntime.org/webfm_send/4> a run time based on C4 Is interesting that C4 does incur significant pauses for small ( 4G) heaps (obviously for the current thread) > > 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. > There needs to be something done buts its difficult , the problem has been around for a long time.. many solutions and attempts have been made , many languages were written to address the modularity concept but they dont really get there., Ben
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
