One document about Go

bearophile bearophileHUGS at lycos.com
Tue Jun 1 16:45:34 PDT 2010


Walter Bright:

>dmd inlines delegates to templates when they are passed as alias parameters.<

A functional language (Scala is partially a functional language) uses functions everywhere, so inlining of closures is a desired optimization feature.


>I know you're a fan of LLVM,<

With some work LLVM can be used to JIT-compile the D compile-time functions, so they can probably run quite faster.

With some more work you can also keep some parts of LLVM around at runtime, to use the compiler as a library at runtime, as C#4 does.

Eventually with more work you can even perform some "lifetime" optimizations, as HotSpot does:
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=18420


>but it would be fair to provide examples when saying things like LLVM does a better job on X.<

You are right, I am sorry. You can ask LDC developers why they have preferred the LLVM inliner instead of the D front-end one. Later I can ask to them.

Bye,
bearophile


More information about the Digitalmars-d mailing list