Quality of errors in DMD
Chris Wright via Digitalmars-d
digitalmars-d at puremagic.com
Fri Sep 2 14:54:59 PDT 2016
On Friday, 2 September 2016 at 21:16:02 UTC, Walter Bright wrote:
> assert()s are there to check that impossible situations in the
> compiler don't actually happen. They are not for diagnosing
> errors in user code.
There are three things that will ideally happen when someone sees
an assert:
* They'll submit a bug report to bugzilla.
* They'll come up with a reasonably simple test case to add to
the bug report.
* They'll find an immediate workaround for their code so they can
get on with their life and not have to wait until the next
compiler release.
The second and third would be greatly benefitted by the compiler
attempting to tell us where the problem was encountered. For
instance, if the assert was triggered while trying to generate
code for function
dmud.eventqueue.EventQueue!(Fiber).scheduleNear, I would know to
look first and foremost at that function.
Yes, if I'm rebuilding my code often, I'll be able to narrow
things down automatically, but I'm not as virtuous as I would
like. And with templates, things get harder.
More information about the Digitalmars-d
mailing list