Dmitry Olshansky
2012-08-13 16:47:49 UTC
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).
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
Dmitry Olshansky