Let me point out the elephant in the room as well.
On 02/25/2017 10:34 PM, Ali Çehreli wrote:
> // In this case a %s is forgotten but it could be any other trivial
> error.
> assert(i == 42, format("Bad parameter:", i));
In addition to the current dangerous behavior of assert, there is the
philosophical argument whether the program can do anything at all after
an assert. Like many others, our friend Chris Wright thinks so:
http://forum.dlang.org/post/[email protected]
On the other hand, I, like many others, have apparently been
hypocritical every time I attempted to generate a message for assert.
That's wishful coding indeed. :)
How about this rule: The message generation code must be
- be nothrow
- have no side-effects, which means the message that it generates must
be written into a pre-allocated space, without going out of bounds (how
to control this?)
- nogc (I think this is implied from the previous two)
The more I learn and understand about computing the more it becomes
crazy. :)
Ali