digitalmars.D - demangle doesn't work with __ModuleInfoZ __initZ __arrayZ
- Timothee Cour (2/2) May 26 2013 Is there any plan to support demangling of those: __ModuleInfoZ __initZ
- Daniel Murphy (3/5) May 26 2013 http://d.puremagic.com/issues/
- Timothee Cour (2/8) May 28 2013
- deadalnix (4/7) May 26 2013 I have a lot of stuff that do not demangle properly with any
- Peter Alexander (3/10) May 27 2013 Am I the only person that worries greatly about the length of
- David Nadlinger (17/19) May 27 2013 No, I do as well. My units of measurement project suffered from
- Maxim Fomin (4/23) May 27 2013 This also breaks forum software which shows one line string.
- Peter Alexander (4/11) May 27 2013 The symbols typically contain a lot of repeated sub strings.
- deadalnix (3/15) May 27 2013 The way template are mangled in super redundant. This can
- David Nadlinger (3/5) May 27 2013 At this point, ABI stability is still is a long way out anyway.
- Timothee Cour (13/35) May 28 2013 Are you referring to the way that a template name is repeated twice in i...
- Martin Nowak (2/4) May 28 2013 How would you mangle them instead?
- deadalnix (3/9) May 28 2013 templateSymbolKKKtepplateArguments
- Steven Schveighoffer (6/8) May 28 2013 Nothing is breakage before shared library support is ready. And it's
- David Nadlinger (15/17) May 28 2013 This comment makes me slightly nervous, as I think even then, we
- Steven Schveighoffer (15/30) May 28 2013 Like it or not, dynamic library support means we need to pay more
- Johannes Pfau (11/28) May 29 2013 We only have to do the library versioning right. If we increase the
- Mike Wey (7/8) May 29 2013 The phobos make file currently builds libphobos2.so.0.63.0 and uses
- Walter Bright (6/8) Dec 06 2013 Rather than a new scheme, a simple and effective approach is to compress...
- H. S. Teoh (15/27) Dec 06 2013 Looking like noise shouldn't be a problem, as long as ddemangle is
- Andrei Alexandrescu (18/29) May 27 2013 T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6Repeat...
- Peter Alexander (3/6) May 27 2013 Surely a better solution would be to use a lossless compression?
- Diggory (3/11) May 27 2013 It could even be (somewhat) backward compatible if you have a
- deadalnix (5/13) May 27 2013 I'd begin with the mangling of template. It is by definition
- Martin Nowak (2/3) May 28 2013 Yeah, I would hate to loose the ability to demangle a symbol.
- Andrei Alexandrescu (4/8) May 28 2013 Well we'd need a scheme that compresses to text, e.g. binary compression...
- deadalnix (3/6) May 27 2013 Reverse lookup never worked for this kind of symbols in the first
- Jacob Carlborg (17/34) May 28 2013 eVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5ra...
- Martin Nowak (3/4) May 28 2013 I wouldn't really call this code bloat, as it only affects your object
- David Nadlinger (3/7) May 28 2013 And unstripped executables.
- Max Samukha (2/14) Dec 07 2013 No. That's a significant problem.
Is there any plan to support demangling of those: __ModuleInfoZ __initZ __arrayZ ?
May 26 2013
"Timothee Cour" <thelastmammoth gmail.com> wrote in message news:mailman.207.1369611513.13711.digitalmars-d puremagic.com...Is there any plan to support demangling of those: __ModuleInfoZ __initZ __arrayZ ?http://d.puremagic.com/issues/
May 26 2013
ok, reported here: bugzilla:10189 On Sun, May 26, 2013 at 9:03 PM, Daniel Murphy <yebblies nospamgmail.com>wrote:"Timothee Cour" <thelastmammoth gmail.com> wrote in message news:mailman.207.1369611513.13711.digitalmars-d puremagic.com...Is there any plan to support demangling of those: __ModuleInfoZ __initZ __arrayZ ?http://d.puremagic.com/issues/
May 28 2013
On Sunday, 26 May 2013 at 23:38:33 UTC, Timothee Cour wrote:Is there any plan to support demangling of those: __ModuleInfoZ __initZ __arrayZ ?I have a lot of stuff that do not demangle properly with any tools. I give you one, just for fun :D D1d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement1004__T28parseDeclarationOrExpressionS6781d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement13__dgliteral23TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ28parseDeclarationOrExpressionMFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement2029__T14parseAmbiguousS17161d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement1004__T28parseDeclarationOrExpressionS6781d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement13__dgliteral23TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ28parseDeclarationOrExpressionM12__dgliteral9TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3
May 26 2013
On Monday, 27 May 2013 at 04:12:23 UTC, deadalnix wrote:On Sunday, 26 May 2013 at 23:38:33 UTC, Timothee Cour wrote:Am I the only person that worries greatly about the length of symbols in D?Is there any plan to support demangling of those: __ModuleInfoZ __initZ __arrayZ ?I have a lot of stuff that do not demangle properly with any tools. I give you one, just for fun :D D1d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement1004__T28parseDeclarationOrExpressionS6781d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement13__dgliteral23TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ28parseDeclarationOrExpressionMFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement2029__T14parseAmbiguousS17161d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement1004__T28parseDeclarationOrExpressionS6781d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement13__dgliteral23TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ28parseDeclarationOrExpressionM12__dgliteral9TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3
May 27 2013
On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:Am I the only person that worries greatly about the length of symbols in D?No, I do as well. My units of measurement project suffered from very non-negligible code bloat due to symbol name length, and even if that was a rather extraordinary endeavor to begin with, "normal" D code is affected just as well. For example, try this one from the std.algorithm unit tests: ——— _D3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3Zip8opAssignMFNcS3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3ZipZS3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3Zip ——— That's 13 kilobytes of data for a single symbol name! And the whole file also crashes the MinGW as when debug info generation is enabled, with the following rather hilarious error message: "Fatal error: can't close N:/Build/Work/ldc2-llvm3.3-release/runtime/phobos_std_algorithm_debug.o: File too big" So, yes, your guess on Twitter a few days ago was correct. David
May 27 2013
On Monday, 27 May 2013 at 16:18:34 UTC, David Nadlinger wrote:On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:This also breaks forum software which shows one line string. Interesting issue here is whether mangling would be reduced (I guess it wouldn't).Am I the only person that worries greatly about the length of symbols in D?No, I do as well. My units of measurement project suffered from very non-negligible code bloat due to symbol name length, and even if that was a rather extraordinary endeavor to begin with, "normal" D code is affected just as well. For example, try this one from the std.algorithm unit tests: ——— <13 kb of mangling> ——— That's 13 kilobytes of data for a single symbol name! And the whole file also crashes the MinGW as when debug info generation is enabled, with the following rather hilarious error message: "Fatal error: can't close N:/Build/Work/ldc2-llvm3.3-release/runtime/phobos_std_algorithm_debug.o: File too big" So, yes, your guess on Twitter a few days ago was correct. David
May 27 2013
On Monday, 27 May 2013 at 16:18:34 UTC, David Nadlinger wrote:On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:The symbols typically contain a lot of repeated sub strings. Perhaps there is a better mangling scheme that encodes it with some kind of prefix tree?Am I the only person that worries greatly about the length of symbols in D?——— <snip> ——— That's 13 kilobytes of data for a single symbol name!
May 27 2013
On Monday, 27 May 2013 at 18:14:59 UTC, Peter Alexander wrote:On Monday, 27 May 2013 at 16:18:34 UTC, David Nadlinger wrote:The way template are mangled in super redundant. This can probably be fixed easily, but this is a breakage.On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:The symbols typically contain a lot of repeated sub strings. Perhaps there is a better mangling scheme that encodes it with some kind of prefix tree?Am I the only person that worries greatly about the length of symbols in D?——— <snip> ——— That's 13 kilobytes of data for a single symbol name!
May 27 2013
On Monday, 27 May 2013 at 18:22:41 UTC, deadalnix wrote:The way template are mangled in super redundant. This can probably be fixed easily, but this is a breakage.At this point, ABI stability is still is a long way out anyway. David
May 27 2013
The way template are mangled in super redundant.Are you referring to the way that a template name is repeated twice in its mangled representation ? eg: template ABC(T){struct ABC{}} writeln(ABC!int.mangleof); // S5tests18main10__T3ABCTiZ3ABC =3D> corresponding to ABC!(int).ABC How would we distinguish such cases (eponymous templates) from non-eponymous ones: template ABC(T){struct a1{} struct a2} here we need: ABC!(int).a1 and ABC!(int).a2. Maybe these 2 cases should be distinguished. On Mon, May 27, 2013 at 11:22 AM, deadalnix <deadalnix gmail.com> wrote:On Monday, 27 May 2013 at 18:14:59 UTC, Peter Alexander wrote:ixOn Monday, 27 May 2013 at 16:18:34 UTC, David Nadlinger wrote:On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:The symbols typically contain a lot of repeated sub strings. Perhaps there is a better mangling scheme that encodes it with some kind of pref=Am I the only person that worries greatly about the length of symbols in D?=97=97=97 <snip> =97=97=97 That's 13 kilobytes of data for a single symbol name!tree?The way template are mangled in super redundant. This can probably be fixed easily, but this is a breakage.
May 28 2013
On 05/27/2013 08:22 PM, deadalnix wrote:The way template are mangled in super redundant. This can probably be fixed easily, but this is a breakage.How would you mangle them instead?
May 28 2013
On Tuesday, 28 May 2013 at 12:56:15 UTC, Martin Nowak wrote:On 05/27/2013 08:22 PM, deadalnix wrote:templateSymbolKKKtepplateArguments Where KKK is anything, really, as long as it is unambiguous.The way template are mangled in super redundant. This can probably be fixed easily, but this is a breakage.How would you mangle them instead?
May 28 2013
On Mon, 27 May 2013 14:22:40 -0400, deadalnix <deadalnix gmail.com> wrote:The way template are mangled in super redundant. This can probably be fixed easily, but this is a breakage.Nothing is breakage before shared library support is ready. And it's almost ready... This should be addressed sooner rather than later. And I think it's really important. -Steve
May 28 2013
On Tuesday, 28 May 2013 at 19:01:00 UTC, Steven Schveighoffer wrote:Nothing is breakage before shared library support is ready. And it's almost ready...This comment makes me slightly nervous, as I think even then, we shouldn't be too quick to commit to ABI stability. Quite on the contrary, we need to make sure to aggressively tell users that they can't expect two pieces D code that were not compiled with the exact same compiler version to interoperate. One of the reasons is that we keep breaking ABI compatibility in Phobos with just about every single release. And the more important and fundamental one is that we don't actually have a well-defined ABI right now (i.e. that is actually documented in the spec), which would also need to be actually implementable by all of DMD, GDC and LDC. Not to mention the many quirks and bugs in the current implementation. David
May 28 2013
On Tue, 28 May 2013 17:13:59 -0400, David Nadlinger <see klickverbot.at> wrote:On Tuesday, 28 May 2013 at 19:01:00 UTC, Steven Schveighoffer wrote:Like it or not, dynamic library support means we need to pay more attention to ABI breakage. People will complain about what largely is not really a problem (since code is statically compiled, you essentially build it every time anyway). This isn't to say we can't put a big fat warning, but we will have to resist a new onslaught of "please don't release this compiler, it breaks all my customer's installations!" complaints.Nothing is breakage before shared library support is ready. And it's almost ready...This comment makes me slightly nervous, as I think even then, we shouldn't be too quick to commit to ABI stability. Quite on the contrary, we need to make sure to aggressively tell users that they can't expect two pieces D code that were not compiled with the exact same compiler version to interoperate.One of the reasons is that we keep breaking ABI compatibility in Phobos with just about every single release.Again, this isn't a huge issue when everything is static. When things are dynamic, you can't even be sure what the target system HAS on it, stability is really important.And the more important and fundamental one is that we don't actually have a well-defined ABI right now (i.e. that is actually documented in the spec), which would also need to be actually implementable by all of DMD, GDC and LDC. Not to mention the many quirks and bugs in the current implementation.That has to be resolved too, but it may not be as interesting to someone who wants to fix mangling. We can accept both fixes simultaneously :) -Steve
May 28 2013
Am Tue, 28 May 2013 18:26:08 -0400 schrieb "Steven Schveighoffer" <schveiguy yahoo.com>:On Tue, 28 May 2013 17:13:59 -0400, David Nadlinger <see klickverbot.at> wrote:We only have to do the library versioning right. If we increase the major version with every release we can break the ABI as much as we want. Older applications the will always use the old shared libraries, newer application the new ones. This means you'll have 3-4 copies of phobos/druntime on your system, but I don't think that is an issue. I agree with David that stabilizing the ABI is not a good idea right now. We don't have a standard ABI, toString/toHash might need to be removed which will break everything, we have some modules in phobos that should be replaced ASAP (std.stream, std.xml)...On Tuesday, 28 May 2013 at 19:01:00 UTC, Steven Schveighoffer wrote:Like it or not, dynamic library support means we need to pay more attention to ABI breakage. People will complain about what largely is not really a problem (since code is statically compiled, you essentially build it every time anyway).Nothing is breakage before shared library support is ready. And it's almost ready...This comment makes me slightly nervous, as I think even then, we shouldn't be too quick to commit to ABI stability. Quite on the contrary, we need to make sure to aggressively tell users that they can't expect two pieces D code that were not compiled with the exact same compiler version to interoperate.
May 29 2013
On 05/29/2013 09:09 AM, Johannes Pfau wrote:We only have to do the library versioning right.The phobos make file currently builds libphobos2.so.0.63.0 and uses libphobos2.so.0.63 as the soname. So an app linked with the shared phobos will be using libphobos2.so.0.63, the .63 comes from the dmd/phobos version and can be dropped when the ABI is stable. -- Mike Wey
May 29 2013
On 5/27/2013 11:14 AM, Peter Alexander wrote:The symbols typically contain a lot of repeated sub strings. Perhaps there is a better mangling scheme that encodes it with some kind of prefix tree?Rather than a new scheme, a simple and effective approach is to compress using lzw. Lzw is nicely reversible, too, though the symbols will look like tty noise in the linker maps and the debugger. One approach is to lzw them only if they exceed a certain length, and to leave a prefix that makes some sense to the user, like the function name.
Dec 06 2013
On Fri, Dec 06, 2013 at 03:26:53PM -0800, Walter Bright wrote:On 5/27/2013 11:14 AM, Peter Alexander wrote:Looking like noise shouldn't be a problem, as long as ddemangle is updated to be able to interpret them. I doubt very many people can demangle D symbols in their head anyway; most would use ddemangle. Leaving the function name in is a good compromise, though not strictly necessary if ddemangle can interpret the lzw noise. On that note, core.demangle seriously needs to be able to demangle *all* mangled symbols (like module ctors, typeinfos, vtables, etc.), not just function symbols. Running `nm program | ddemangle` still leaves about half the symbols mangled, which is annoying when you're trying to figure out what those symbols are referring to. T -- Marketing: the art of convincing people to pay for what they didn't need before which you can't deliver after.The symbols typically contain a lot of repeated sub strings. Perhaps there is a better mangling scheme that encodes it with some kind of prefix tree?Rather than a new scheme, a simple and effective approach is to compress using lzw. Lzw is nicely reversible, too, though the symbols will look like tty noise in the linker maps and the debugger. One approach is to lzw them only if they exceed a certain length, and to leave a prefix that makes some sense to the user, like the function name.
Dec 06 2013
On 5/27/13 12:18 PM, David Nadlinger wrote:On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8Sequ enceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typ econs12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons1 2__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3Zip8opAssignMFNcS3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3s td8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typ econs12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353s td9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9alg orithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3ZipZS3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cart esianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianP roductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__ T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91_ _T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6Rep eatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3ZipAm I the only person that worries greatly about the length of symbols in D?No, I do as well. My units of measurement project suffered from very non-negligible code bloat due to symbol name length, and even if that was a rather extraordinary endeavor to begin with, "normal" D code is affected just as well. For example, try this one from the std.algorithm unit tests: ——— _D3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__———At some point Walter and I were talking about generating an MD hash for very long names. That has some disadvantages (i.e. no easy reverse lookup) but it may work. Andrei
May 27 2013
On Monday, 27 May 2013 at 20:14:35 UTC, Andrei Alexandrescu wrote:At some point Walter and I were talking about generating an MD hash for very long names. That has some disadvantages (i.e. no easy reverse lookup) but it may work.Surely a better solution would be to use a lossless compression? With the amount of repetition you should get very high ratios.
May 27 2013
On Monday, 27 May 2013 at 20:34:30 UTC, Peter Alexander wrote:On Monday, 27 May 2013 at 20:14:35 UTC, Andrei Alexandrescu wrote:It could even be (somewhat) backward compatible if you have a marker at the front indicating whether it's compressed or not.At some point Walter and I were talking about generating an MD hash for very long names. That has some disadvantages (i.e. no easy reverse lookup) but it may work.Surely a better solution would be to use a lossless compression? With the amount of repetition you should get very high ratios.
May 27 2013
On Monday, 27 May 2013 at 20:34:30 UTC, Peter Alexander wrote:On Monday, 27 May 2013 at 20:14:35 UTC, Andrei Alexandrescu wrote:I'd begin with the mangling of template. It is by definition redundant, and changing it without any compression scheme can already drastically reduce the pathologic cases demonstrated in this thread.At some point Walter and I were talking about generating an MD hash for very long names. That has some disadvantages (i.e. no easy reverse lookup) but it may work.Surely a better solution would be to use a lossless compression? With the amount of repetition you should get very high ratios.
May 27 2013
On 05/27/2013 10:34 PM, Peter Alexander wrote:Surely a better solution would be to use a lossless compression?Yeah, I would hate to loose the ability to demangle a symbol.
May 28 2013
On 5/28/13 8:57 AM, Martin Nowak wrote:On 05/27/2013 10:34 PM, Peter Alexander wrote:Well we'd need a scheme that compresses to text, e.g. binary compression followed by base64? AndreiSurely a better solution would be to use a lossless compression?Yeah, I would hate to loose the ability to demangle a symbol.
May 28 2013
On Monday, 27 May 2013 at 20:14:35 UTC, Andrei Alexandrescu wrote:At some point Walter and I were talking about generating an MD hash for very long names. That has some disadvantages (i.e. no easy reverse lookup) but it may work.Reverse lookup never worked for this kind of symbols in the first place.
May 27 2013
On 2013-05-27 18:18, David Nadlinger wrote:On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:eVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3st d8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8 SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5 range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3Zip8opAssignMFNcS3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16c artesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct 16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceV Ayaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8 typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6RepeatZ3ZipZS3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5Tupl eZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3s td5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range2008__T6RepeatT S3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapR esultZ6joinerFS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatTS3std5range91__T6RepeatTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ6RepeatZ3ZipZ9MapResultZ6ResultZ6 RepeatZ3ZipAm I the only person that worries greatly about the length of symbols in D?No, I do as well. My units of measurement project suffered from very non-negligible code bloat due to symbol name length, and even if that was a rather extraordinary endeavor to begin with, "normal" D code is affected just as well. For example, try this one from the std.algorithm unit tests: ——— _D3std5range4308__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std9algorithm987__T6joinerTS3std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct744__T9MapResultS2353std9algorithm182__T16cartesianProductTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceZ16cartesianProduct16__funcliteral177TS3std5range472__T3ZipTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTkZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range57__T8SequenceVAyaa1_6eTS3std8typecons12__T5TupleTiZ5TupleZ8SequenceTS3std5range91__T6RepeatTS3std5range57__T8Sequenc——— That's 13 kilobytes of data for a single symbol name! And the whole file also crashes the MinGW as when debug info generation is enabled, with the following rather hilarious error message: "Fatal error: can't close N:/Build/Work/ldc2-llvm3.3-release/runtime/phobos_std_algorithm_debug.o: File too big"That's just insane. -- /Jacob Carlborg
May 28 2013
On 05/27/2013 06:18 PM, David Nadlinger wrote:non-negligible code bloatI wouldn't really call this code bloat, as it only affects your object files, the linker and the runtime linker.
May 28 2013
On Tuesday, 28 May 2013 at 13:06:01 UTC, Martin Nowak wrote:On 05/27/2013 06:18 PM, David Nadlinger wrote:And unstripped executables. Davidnon-negligible code bloatI wouldn't really call this code bloat, as it only affects your object files, the linker and the runtime linker.
May 28 2013
On Monday, 27 May 2013 at 15:22:21 UTC, Peter Alexander wrote:On Monday, 27 May 2013 at 04:12:23 UTC, deadalnix wrote:No. That's a significant problem.On Sunday, 26 May 2013 at 23:38:33 UTC, Timothee Cour wrote:Am I the only person that worries greatly about the length of symbols in D?Is there any plan to support demangling of those: __ModuleInfoZ __initZ __arrayZ ?I have a lot of stuff that do not demangle properly with any tools. I give you one, just for fun :D D1d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement1004__T28parseDeclarationOrExpressionS6781d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement13__dgliteral23TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ28parseDeclarationOrExpressionMFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement2029__T14parseAmbiguousS17161d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement1004__T28parseDeclarationOrExpressionS6781d6parser9statement308__T14parseStatementTS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ14parseStatementFKS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZC1d3ast9statement9Statement13__dgliteral23TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3lexMFAyaZ5LexerZ28parseDeclarationOrExpressionM12__dgliteral9TS1d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZ159__T3lexS1431d8semantic8semantic12SemanticPass35__T5parseTC1d8location10FileSourceZ5parseMFC1d8location10FileSourceAAyaZC1d3ast7dmodule6Module11__lambda125TAyaZ3
Dec 07 2013