July 12, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | In article <e92428$2aet$1@digitaldaemon.com>, Don Clugston says... > >Walter Bright wrote: >> Derek Parnell wrote: >>> On Tue, 11 Jul 2006 15:53:11 +1000, Walter Bright <newshound@digitalmars.com> wrote: >>> >>>> James Pelcis wrote: >>>>> I think that the error messages are good, even if they aren't perfect. My point is that those four pieces of code are essentially the same but all four produce different error messages. Could they all be made the same? >>>> >>>> I like to keep error messages generated by different parts of the compiler slightly different - makes it easier to track them down. >>> >>> Try using message IDs like most professional designers do. They are LOTS more easier to track, document and maintain. >> >> LOL. I use message IDs in the C++ compiler. I like using the text ones better. (And the issue is the same, if message X comes up, I like it generated in one place, which means each message ID must be used only once.) > >Once we have a 1.0 release, it might be good to have a grep the source to generate a list all of the possible error messages, then put them in a Wiki page. Not a bad idea. By the way, we already have a small list of common compiler errors and their possible solutions: http://www.prowiki.org/wiki4d/wiki.cgi?ErrorMessages/CompilerErrors jcc7 |
July 12, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote: > Derek Parnell wrote: > >On Tue, 11 Jul 2006 15:53:11 +1000, Walter Bright > <newshound@digitalmars.com> wrote: > > > > > James Pelcis wrote: > > > > I think that the error messages are good, even if they aren't perfect. My point is that those four pieces of code are essentially the same but all four produce different error messages. Could they all be made the same? > > > > > > I like to keep error messages generated by different parts of the compiler slightly different - makes it easier to track them down. > > > > Try using message IDs like most professional designers do. They are LOTS more easier to track, document and maintain. > > LOL. I use message IDs in the C++ compiler. I like using the text ones better. (And the issue is the same, if message X comes up, I like it generated in one place, which means each message ID must be used only once.) I don't see a controversy here. Look at Microsoft C++ compilers: they display both an error ID and a sensible text message. -- |
July 12, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail Attachments: | d-bugmail@puremagic.com schrieb am 2006-07-11: > http://d.puremagic.com/issues/show_bug.cgi?id=249 > module test1; > > typedef foo bar; > typedef bar foo; > > void main () { > foo blah; > } > > C:\programs>dmd test1.d -v > parse test1 > semantic test1 > semantic2 test1 > semantic3 test1 > Stack overflow > > > Without an error message, this can be almost impossible to track down. Added to DStress as http://dstress.kuehne.cn/nocompile/t/typedef_16_A.d http://dstress.kuehne.cn/nocompile/t/typedef_16_B.d http://dstress.kuehne.cn/nocompile/t/typedef_16_C.d Thomas |
July 12, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sean Kelly | Sean Kelly wrote:
> Perhaps a context ID would be useful? Could even encode it into the message ID--set the upper N bits as the message pointer and the lower N bits as the location. Still not quite as easy to track down as a search for an embedded string though, I'll admit.
I find that grepping for the string works without problems.
|
July 12, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Khropov | Andrei Khropov wrote:
> I don't see a controversy here. Look at Microsoft C++ compilers: they display
> both an error ID and a sensible text message.
Displaying the ID pushes the useful part of the message off to the right where it wraps or you have to use the scroll bar.
Message IDs are useful for:
1) Memory is extremely tight, and you don't want to load the error messages into memory unless an actual error occurs.
2) You store the messages as a Windows 'resource', which was done because of (1).
3) You want to be able to ship the message file off to someone else who can translate them to foreign languages, so the application can be internationalized without changing the executable.
4) You're writing some automated error message parsing tool.
None of these are an issue for dmd right now. If they ever do become an issue, it can be changed.
|
July 12, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote: > Andrei Khropov wrote: > > I don't see a controversy here. Look at Microsoft C++ compilers: they display both an error ID and a sensible text message. > > Displaying the ID pushes the useful part of the message off to the right where it wraps or you have to use the scroll bar. Hmm, IMHO it's the matter of proper formatting. It may look like: ----------------------------------- test2.d(3): error E1234: circular reference of typedef bar ----------------------------------- or ----------------------------------- test2.d(3): error E1234: circular reference of typedef bar ----------------------------------- vs present ---------------------------------- test2.d(3): circular reference of typedef bar ---------------------------------- Anyway most people now have more horizonal space than 80 chars :) > > Message IDs are useful for: > > 1) Memory is extremely tight, and you don't want to load the error messages into memory unless an actual error occurs. > > 2) You store the messages as a Windows 'resource', which was done because of > (1). I agree that these are not important issues now. > > 3) You want to be able to ship the message file off to someone else who can translate them to foreign languages, so the application can be internationalized without changing the executable. This maybe an issue. I haven't ever seen localized compilers however. > > 4) You're writing some automated error message parsing tool. I think this point is important. Message ID may also serve as a good pointer to documentation that explains the issue in more detail (good IDE may actually turn it into a hyperlink). -- |
July 12, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | On Thu, 13 Jul 2006 05:15:40 +1000, Walter Bright <newshound@digitalmars.com> wrote: > Sean Kelly wrote: >> Perhaps a context ID would be useful? Could even encode it into the message ID--set the upper N bits as the message pointer and the lower N bits as the location. Still not quite as easy to track down as a search for an embedded string though, I'll admit. > > I find that grepping for the string works without problems. The commercial code that we write uses message ids because the text of the message is locale-dependant. We provide local-language text for each of the messages, external to the source code. The message text is not embedded in the source. -- Derek Parnell Melbourne, Australia |
July 13, 2006 Re: [Issue 249] New: circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to Derek Parnell | Derek Parnell wrote:
> The commercial code that we write uses message ids because the text of the message is locale-dependant. We provide local-language text for each of the messages, external to the source code. The message text is not embedded in the source.
If your app needs to do locale-dependent messages, that's the way to do it.
|
July 18, 2006 [Issue 249] circular typedef and alias bugs | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=249 jpelcis@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #4 from jpelcis@gmail.com 2006-07-18 16:37 ------- Fixed DMD 0.163. Circular typedefs are detected. -- |
Copyright © 1999-2021 by the D Language Foundation