On Friday, 20 May 2016 at 09:48:15 UTC, ZombineDev wrote:
On Thursday, 19 May 2016 at 22:16:03 UTC, Walter Bright wrote:
On 5/19/2016 6:45 AM, Andrei Alexandrescu wrote:
I very much advocate slapping a 64-long random string for all Voldermort returns and calling it a day. I bet Liran's code will get a lot quicker to build and
smaller to boot.

Let's see how far we get with compression first.

  https://github.com/dlang/dmd/pull/5793

Using 64 character random strings will make symbolic debugging unpleasant.

Unfortunately, the PR doesn't cure the root cause, but only provides linear 45-55% improvement, which doesn't scale with the exponential growth of the symbol size:


    case        time to compile     du -h   strings file | wc -c
NG-case before      0m19.708s       339M        338.23M
NG-case  after      0m27.006s       218M        209.35M
OK-case before      0m1.466s         16M         15.33M
OK-case  after      0m1.856s         11M          9.28M

For more info on the measurements:
https://github.com/dlang/dmd/pull/5793#issuecomment-220550682

IMO, the best way forward is:
+ The compiler should lower voldemort types, according to the scheme that Steve suggested (http://forum.dlang.org/post/nhkmo7$ob5$1...@digitalmars.com) + After that, during symbol generation (mangling) if a symbol starts getting larger than some threshold (e.g. 800 characters), the mangling algorithm should detect that and bail out by generating some unique id instead. The only valuable information that the symbol must include is the module name and location (line and column number) of the template instantiation.

Reply via email to