Thread overview | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
August 13, 2012 DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
I seriously consider writing a simple postprocessor for dmd's output.
Once dmd became able to recover from errors and crawl on it started to produce horrific amounts of redundant text on failure.
Observe for instance that there are only 6 + 2 = 8 lines of interest:
uni.d(3699): Error: template instance uni.icmp!(char,wchar) error instantiating
uni.d(3683): Error: undefined identifier fullCasedMatch
uni.d(3686): Error: undefined identifier fullCasedMatch
uni.d(3699): Error: template instance uni.icmp!(char,dchar) error instantiating
uni.d(3683): Error: undefined identifier fullCasedMatch
uni.d(3686): Error: undefined identifier fullCasedMatch
uni.d(3699): Error: template instance uni.icmp!(wchar,char) error instantiating
uni.d(3683): Error: undefined identifier fullCasedMatch
uni.d(3686): Error: undefined identifier fullCasedMatch
uni.d(3699): Error: template instance uni.icmp!(wchar,wchar) error instantiating
uni.d(3683): Error: undefined identifier fullCasedMatch
uni.d(3686): Error: undefined identifier fullCasedMatch
uni.d(3699): Error: template instance uni.icmp!(wchar,dchar) error instantiating
uni.d(3683): Error: undefined identifier fullCasedMatch
uni.d(3686): Error: undefined identifier fullCasedMatch
uni.d(3699): Error: template instance uni.icmp!(dchar,char) error instantiating
I'd ideally see this:
uni.d(3683): Error: undefined identifier fullCasedMatch
uni.d(3686): Error: undefined identifier fullCasedMatch
--- !! During instantiation of ---
uni.d(3699): template instance uni.icmp!(char,dchar)
uni.d(3699): template instance uni.icmp!(char,wchar)
uni.d(3699): template instance uni.icmp!(char,dchar)
uni.d(3699): template instance uni.icmp!(wchar,wchar)
uni.d(3699): template instance uni.icmp!(wchar,dchar)
uni.d(3699): template instance uni.icmp!(dchar,char)
-------
... other errors
Other food for thought is to try to indicate explicitly which errors
are related vs unrelated, which are collateral, like failed template instantiation that rolls out the whole path of failure (but one have to read the text carefully to get where it starts).
--
Dmitry Olshansky
|
August 14, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dmitry Olshansky | On 13/08/12 18:47, Dmitry Olshansky wrote: > I seriously consider writing a simple postprocessor for dmd's output. > Once dmd became able to recover from errors and crawl on it started to > produce horrific amounts of redundant text on failure. > > Observe for instance that there are only 6 + 2 = 8 lines of interest: Spurious or repeated error messages should be considered to be bugs. Please put test cases in Bugzilla. A long time ago, the compiler used to spew reams of garbage all the time. Now it rarely happens. > Other food for thought is to try to indicate explicitly which errors > are related vs unrelated, which are collateral, like failed template > instantiation that rolls out the whole path of failure (but one have to > read the text carefully to get where it starts). That's already happening. Supplemental messages don't have the word 'Error' at the start of the error message. There are still cases where |
August 14, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | On 14/08/12 08:59, Don Clugston wrote:
> On 13/08/12 18:47, Dmitry Olshansky wrote:
>> I seriously consider writing a simple postprocessor for dmd's output.
>> Once dmd became able to recover from errors and crawl on it started to
>> produce horrific amounts of redundant text on failure.
>>
>> Observe for instance that there are only 6 + 2 = 8 lines of interest:
>
> Spurious or repeated error messages should be considered to be bugs.
> Please put test cases in Bugzilla. A long time ago, the compiler used to
> spew reams of garbage all the time. Now it rarely happens.
>
>> Other food for thought is to try to indicate explicitly which errors
>> are related vs unrelated, which are collateral, like failed template
>> instantiation that rolls out the whole path of failure (but one have to
>> read the text carefully to get where it starts).
>
> That's already happening. Supplemental messages don't have the word
> 'Error' at the start of the error message.
One fairly easy way to solve this, would be that once a template *instantiation* has failed, the template *definition* would be marked as doubtful, and any further instantiation using that definition would have all error messages suppressed. If an error occurred, a single error would be produced stating that the template instantiation failed.
The downside would be that if the template instantiation failed for a completely different reason the second time, its root cause error would not be shown. But this latest release is the only time such errors have been shown anyway.
|
August 14, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | On Tuesday, 14 August 2012 at 08:48:14 UTC, Don Clugston wrote:
> On 14/08/12 08:59, Don Clugston wrote:
>> On 13/08/12 18:47, Dmitry Olshansky wrote:
>>> I seriously consider writing a simple postprocessor for dmd's output.
>>> Once dmd became able to recover from errors and crawl on it started to
>>> produce horrific amounts of redundant text on failure.
>>>
>>> Observe for instance that there are only 6 + 2 = 8 lines of interest:
>>
>> Spurious or repeated error messages should be considered to be bugs.
>> Please put test cases in Bugzilla. A long time ago, the compiler used to
>> spew reams of garbage all the time. Now it rarely happens.
>>
>>> Other food for thought is to try to indicate explicitly which errors
>>> are related vs unrelated, which are collateral, like failed template
>>> instantiation that rolls out the whole path of failure (but one have to
>>> read the text carefully to get where it starts).
>>
>> That's already happening. Supplemental messages don't have the word
>> 'Error' at the start of the error message.
>
> One fairly easy way to solve this, would be that once a template *instantiation* has failed, the template *definition* would be marked as doubtful, and any further instantiation using that definition would have all error messages suppressed. If an error occurred, a single error would be produced stating that the template instantiation failed.
>
> The downside would be that if the template instantiation failed for a completely different reason the second time, its root cause error would not be shown. But this latest release is the only time such errors have been shown anyway.
Personally I loved the way Turbo Pascal used to work with compile failure on the first error.
Thanks to the fast compile times, it was easier and faster to fix-compile-find_next_error, than try to sort out the real errors from a dump of error messages.
But I seem to be in the minority regarding compiler error messages.
--
Paulo
|
August 14, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paulo Pinto | On 14/08/12 11:32, Paulo Pinto wrote: > On Tuesday, 14 August 2012 at 08:48:14 UTC, Don Clugston wrote: >> On 14/08/12 08:59, Don Clugston wrote: >>> On 13/08/12 18:47, Dmitry Olshansky wrote: >>>> I seriously consider writing a simple postprocessor for dmd's output. >>>> Once dmd became able to recover from errors and crawl on it started to >>>> produce horrific amounts of redundant text on failure. >>>> >>>> Observe for instance that there are only 6 + 2 = 8 lines of interest: >>> >>> Spurious or repeated error messages should be considered to be bugs. >>> Please put test cases in Bugzilla. A long time ago, the compiler used to >>> spew reams of garbage all the time. Now it rarely happens. >>> >>>> Other food for thought is to try to indicate explicitly which errors >>>> are related vs unrelated, which are collateral, like failed template >>>> instantiation that rolls out the whole path of failure (but one have to >>>> read the text carefully to get where it starts). >>> >>> That's already happening. Supplemental messages don't have the word >>> 'Error' at the start of the error message. >> >> One fairly easy way to solve this, would be that once a template >> *instantiation* has failed, the template *definition* would be marked >> as doubtful, and any further instantiation using that definition would >> have all error messages suppressed. If an error occurred, a single >> error would be produced stating that the template instantiation failed. >> >> The downside would be that if the template instantiation failed for a >> completely different reason the second time, its root cause error >> would not be shown. But this latest release is the only time such >> errors have been shown anyway. > > Personally I loved the way Turbo Pascal used to work with compile > failure on the first error. > > Thanks to the fast compile times, it was easier and faster to > fix-compile-find_next_error, than try to sort out the real errors from a > dump of error messages. To the best of my knowledge, DMD gives very few error messages which are not real. Every release, I eliminate a couple more spurious ones. It's starting to be difficult to find them. Seriously, if you are finding ANY error messages for things which are not real errors, that is a bug. > > But I seem to be in the minority regarding compiler error messages. > > -- > Paulo |
August 14, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paulo Pinto | On 8/14/12 5:32 AM, Paulo Pinto wrote:
> Personally I loved the way Turbo Pascal used to work with compile
> failure on the first error.
>
> Thanks to the fast compile times, it was easier and faster to
> fix-compile-find_next_error, than try to sort out the real errors from a
> dump of error messages.
>
> But I seem to be in the minority regarding compiler error messages.
I guess the "head" command can be of use here!
Andrei
|
August 14, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | On 14-Aug-12 12:48, Don Clugston wrote: > On 14/08/12 08:59, Don Clugston wrote: >> On 13/08/12 18:47, Dmitry Olshansky wrote: >>> I seriously consider writing a simple postprocessor for dmd's output. >>> Once dmd became able to recover from errors and crawl on it started to >>> produce horrific amounts of redundant text on failure. >>> >>> Observe for instance that there are only 6 + 2 = 8 lines of interest: >> >> Spurious or repeated error messages should be considered to be bugs. >> Please put test cases in Bugzilla. A long time ago, the compiler used to >> spew reams of garbage all the time. Now it rarely happens. >> Will do. >>> Other food for thought is to try to indicate explicitly which errors >>> are related vs unrelated, which are collateral, like failed template >>> instantiation that rolls out the whole path of failure (but one have to >>> read the text carefully to get where it starts). >> >> That's already happening. Supplemental messages don't have the word >> 'Error' at the start of the error message. > > One fairly easy way to solve this, would be that once a template > *instantiation* has failed, the template *definition* would be marked as > doubtful, and any further instantiation using that definition would have > all error messages suppressed. If an error occurred, a single error > would be produced stating that the template instantiation failed. > I think it would be nice to merge different template instantiation failures with identical lists of error messages (or simply same lines). In my case all of them have the same error list (2 lines), in general it may end up having few different groups of failed instantiations > The downside would be that if the template instantiation failed for a > completely different reason the second time, its root cause error would > not be shown. Yes, see the idea above. |
August 17, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don Clugston | Am Tue, 14 Aug 2012 12:15:35 +0200 schrieb Don Clugston <dac@nospam.com>: > Seriously, if you are finding ANY error messages for things which are not real errors, that is a bug. What about errors that are a result of erroneous types being used. Sometimes I read foo!(bar, _error_) in the error output and wonder if that helps me any, since the error is obviously farther above. -- Marco |
August 17, 2012 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marco Leise | On 08/17/2012 02:17 PM, Marco Leise wrote:
> Am Tue, 14 Aug 2012 12:15:35 +0200
> schrieb Don Clugston<dac@nospam.com>:
>
>> Seriously, if you are finding ANY error messages for things which are
>> not real errors, that is a bug.
>
> What about errors that are a result of erroneous types being
> used. Sometimes I read foo!(bar, _error_) in the error output
> and wonder if that helps me any, since the error is obviously
> farther above.
>
The user should never see _error_.
|
August 11, 2015 Re: DMD diagnostic - any way to remove identical lines from final dmd error log? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Timon Gehr | On Friday, 17 August 2012 at 13:10:52 UTC, Timon Gehr wrote: > On 08/17/2012 02:17 PM, Marco Leise wrote: >> Am Tue, 14 Aug 2012 12:15:35 +0200 >> schrieb Don Clugston<dac@nospam.com>: >> >>> Seriously, if you are finding ANY error messages for things which are >>> not real errors, that is a bug. >> >> What about errors that are a result of erroneous types being >> used. Sometimes I read foo!(bar, _error_) in the error output >> and wonder if that helps me any, since the error is obviously >> farther above. >> > > The user should never see _error_. just filed: https://issues.dlang.org/show_bug.cgi?id=14905 |
Copyright © 1999-2021 by the D Language Foundation