https://issues.dlang.org/show_bug.cgi?id=15831
--- Comment #7 from Rainer Schuetze <[email protected]> --- https://github.com/dlang/dmd/pull/5855 yields these symbols: _D13testexpansion__T1sTiZ1@FiZ6Result3fooMFNaNfZv _D13testexpansion__T1sTS0@__T1@TiZ1@FiZ6ResultZ1@F%0Z2@3fooMFNaNfZv _D13testexpansion__T1sTS0@__T1@TS0@__T1@TiZ1@FiZ6ResultZ1@F%1Z2@Z1@F%0Z2@3fooMFNaNfZv _D13testexpansion__T1sTS0@__T1@TS0@__T1@TS0@__T1@TiZ1@FiZ6ResultZ1@F%2Z2@Z1@F%1Z2@Z1@F%0Z2@3fooMFNaNfZv _D13testexpansion__T1sTS0@__T1@TS0@__T1@TS0@__T1@TS0@__T1@TiZ1@FiZ6ResultZ1@F%3Z 2@Z1@F%2Z2@Z1@F%1Z2@Z1@F%0Z2@3fooMFNaNfZv This is a bit longer than the binary compression, but should be about the same when base64 encoding is applied to the latter. Please also note that the encoding has strictly linear size, while the binary compression is limited to a constant factor by maximum encodable match length and dictionary size. Starting with a recursion depth of 16, compiling for win64 crashes the compiler (issue 16229) Starting with a recursion depth of 19, the current compiler also bails out with testexpansion.d(6): Error: function testexpansion.s!(Result).s excessive length 66394404789887526 for symbol, possible recursive expansion? Compilation of the example for win32 with recursion depth 18 takes 3.1 seconds with the current mangling, but is hardly measurable with the mangling in PR 5855. --
