On Fri, Aug 23, 2013 at 12:35 PM, Jonathan S. Shapiro <[email protected]>wrote:
> The first objective is to validate and bootstrap the *language*. There is > a *lot* of infrastructure that needs to be built before any sort of > production-capable implementation becomes possible. The more of that we can > do in BitC itself, the happier we are going to be. But in order to do that, > we need to have a running version of BitC to bootstrap in. The less > investment we need to make in order to have a bootstrap implementation, the > better. CLR is merely a collection of features that facilitate a bootstrap > implementation. Nothing more. > Unsurprisingly, I'm 110% in support of this direction. Since it sounds like you've answered your question about which runtime to start with (CLR), what are the next steps? I'm particularly curious how you think bitc-the-second differs from Nemerle1/2, since it has modular compilation, inference, variants, pure-functional, and compile-time-metaprogramming. Is the biggest differentiator the region typing, or are you trying to do something different with inference and polymorphism? AOT may be no big deal in your mind, but the fact is that there exists not >> open source optimization infrastructure that attempts to target >> garbage-collected languages. >> > Mono seems darn close to an open-source implementation of an AOT optimization infrastructure (which admittedly could use work, but it's quite capable and even supports LLVM as a backend for AOT). The problem with Mono performance is interesting. It's very possible that > two or three people, contributing actively, could make a huge improvement > in Mono performance. But as you note, the JIT implementation in mono was a > fairly small fraction of the effort. It's not at all out of the question > that one could simply build a new and better JIT and re-use most of the > library infrastructure investment that Mono has already made. This seems true. I think there is just proportionally less open-source activity around CLR because the main end-user system supporting CLR is Windows. Compare that to the Javascript community, where there are several competing runtime scrambling to each re-add the same performance optimizations (including PIC). I think this is already changing because of mono-team's work on their excellent Xamarin/Mono C# mobile development direction. However, this is more focused on Mono/LLVM/AOT since AFAIK iOS does not allow JIT.
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
