digitalmars.D.bugs - [Issue 2238] New: Internal DMD data corruption
- d-bugmail puremagic.com (35/35) Jul 19 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2238
- Jarrett Billingsley (7/42) Jul 19 2008 DMDWin compresses long(er) symbol names in order to fit them in the
- d-bugmail puremagic.com (9/9) Jul 19 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2238
- d-bugmail puremagic.com (11/11) Aug 29 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2238
- d-bugmail puremagic.com (19/19) Aug 30 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2238
- d-bugmail puremagic.com (9/9) Dec 08 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2238
- d-bugmail puremagic.com (8/8) Aug 25 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2238
- d-bugmail puremagic.com (15/15) Aug 25 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2238
http://d.puremagic.com/issues/show_bug.cgi?id=2238 Summary: Internal DMD data corruption Product: D Version: 1.033 Platform: PC OS/Version: Windows Status: NEW Severity: minor Priority: P4 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: 2korden gmail.com Compiling the code: main.d ~~~~~~ import math.Matrix; void main() { auto a = new Matrix44F(); Matrix44F.add(a, a); } math/Matrix.d ~~~~~~~~~~~~~ module math.Matrix; class Matrix44F { static M add(M)(M a, M b); } produces the following DMD output: Error 42: Symbol Undefined _D4math6Mбrix9х44F32__T3addTCЂ–ЎZЂ„ќFЂ—ќЂґЂ— Looks like some internal data corruption takes place... Changing nearly anything (return type value, number of arguments, module name etc.) makes problem disappear. --
Jul 19 2008
<d-bugmail puremagic.com> wrote in message news:bug-2238-3 http.d.puremagic.com/issues/...http://d.puremagic.com/issues/show_bug.cgi?id=2238 Summary: Internal DMD data corruption Product: D Version: 1.033 Platform: PC OS/Version: Windows Status: NEW Severity: minor Priority: P4 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: 2korden gmail.com Compiling the code: main.d ~~~~~~ import math.Matrix; void main() { auto a = new Matrix44F(); Matrix44F.add(a, a); } math/Matrix.d ~~~~~~~~~~~~~ module math.Matrix; class Matrix44F { static M add(M)(M a, M b); } produces the following DMD output: Error 42: Symbol Undefined _D4math6Mбrix9х44F32__T3addTCЂ–ЎZЂ„ќFЂ—ќЂґЂ— Looks like some internal data corruption takes place... Changing nearly anything (return type value, number of arguments, module name etc.) makes problem disappear.DMDWin compresses long(er) symbol names in order to fit them in the extremely restrictive limits of the OMF format, so the above symbol looks pretty typical for templates on DMDWin. It's odd that it doesn't seem to be resolving correctly though. Maybe one part of the compiler is lz77 compressing the template symbol names and another is MD5 hashing them?
Jul 19 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2238 2korden gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Version|1.033 |1.031 DMD1.029 gives correct error message, but DMD1.031+ doesn't so it's a regression and Windows only (thanks Christian). --
Jul 19 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2238 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID It isn't corrupt data. dmd will compress the identifiers when they get too long, you're seeing the compressed version (because the linker just spits out what it sees). --
Aug 29 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2238 2korden gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|minor |enhancement Status|RESOLVED |REOPENED Resolution|INVALID | Summary|Internal DMD data corruption|Linker shows long identifier | |names in a not human | |readable compressed form on | |Windows Ok, I agree that it's not a bug, but it is an annoying. There could be some mapping from a compressed name too full one, and linker should output correct mangled name. Its output supposed to be read by human, isn't it? It is supposed to help user in tracking the problem, not for confusing him. Besides, showing external data in internal representation isn't very good as it breaks incapsulation :) --
Aug 30 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2238 Bump! Just hit by this one again. How am I supposed to decypher (and fix) errors like: Error 42: Symbol Undefined _D3stl4utiбcont6Vector40__TЂ‡ЊTC2ui7Ђ„ќrol7CяэZЂ‡Ґ9findFirstMFЂќ°SЂЖр8IteraЂѓ‰ Error 42: Symbol Undefined _D3stl4utiбcont6Vector40__TЂ‡ЊTC2ui7Ђ„ќrol7CяэZЂ‡Ґ3endMFZSЂЖО8IteraЂѓ‰ --
Dec 08 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2238 --- Created an attachment (id=441) --> (http://d.puremagic.com/issues/attachment.cgi?id=441) Test case for unhelpful behaviour -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 25 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2238 simon <s.d.hammett googlemail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |s.d.hammett googlemail.com --- I think this is a bug. dmd is hitting an error, outputting no error message, leaving behind a corrupt .obj and then just to add to the confusion is going on to run the link step, resulting in the erroneous linker errors. This situation is less than ideal. At the least dmd should exit with 'unknown error'. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 25 2009