On 08/10/2015 06:30 PM, Martin Nowak via dmd-internals wrote: > Regarding the ddmd switch I'd suggest to first make a spec story to > understand and break down what needs to be done. We should closely > coordinate this with people from the GDC and LDC team.
From an email conversation with Walter and Daniel: On 08/11/2015 10:11 AM, Walter Bright wrote: > > > On 8/11/2015 12:41 AM, Daniel Murphy wrote: >> You need to sign off on the generated D source, > > It passes the test suite, right? Then let's just switch to it. I expect > we'll fix it up over time, after all, that's the point. > >> and we need to pick >> host compilers for each major platforms that produce a fast enough dmd >> binary. > > Let's use 2.068 dmd for that. When ldc/gdc are up to 2.068, we can > switch to them if necessary. > Please don't underestimate the problem. If we release a self-hosted compiler that is 30% slower, then the message between the lines is that's b/c of D is slower than C++. And we already had some major slowdowns in the past versions, adding another 30% risks to kill one of D's major selling points (compile times have been stressed a lot as major advantage but aren't nearly as fast as they used to be). I just took these numbers from dmd/ddmd master (ddmd was compiled with -O -inline -release). relative numbers: https://dawg.eu/dmd_vs_ddmd_time.html absolute numbers: https://dawg.eu/dmd_vs_ddmd_time.html#abs And the profiles of both are very similar, e.g. comparing the relative times spend compiling dub. https://dawg.eu/dmd_vs_ddmd_prof.svg The _d_new* and _memcpy times in ddmd are compensated by malloc time in dmd, so the only real difference is TemplateInstance::semantic which is only good for 1%. A uniformely slowdown of 30% b/c of an inferior backend isn't something we can resolve. So the necessity for ldc/gdc is already clear.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ dmd-internals mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/dmd-internals
