On Thursday, 9 October 2014 at 17:31:32 UTC, Dicebot wrote:
On Thursday, 9 October 2014 at 16:33:53 UTC, Johannes Pfau
wrote:
I think Walter sometimes suggested that it would be valid for a
compiler to not unwind Errors at all (in release mode), but
simply kill
the program and dump a error message. This would finally allow
us to
optimize nothrow functions.
I think this is reasonable in general but as long as assert
throws Error and assert is encouraged to be used in unittest
blocks such implementation would mark compiler as unusable for
me.
Can it simply skip unwinding up to the next not-nothrow function?
I.e. destructors of objects (and finally/scope(exit)) inside
`nothrow` functions will not be executed, but unwinding will
continue as normal at the first function up the call stack that
supports it?
Would this work for both GDC and LDC? If yes, your unittest
framework will probably continue to work as is.