On Thursday, 8 February 2018 at 03:29:54 UTC, Timothee Cour wrote:
while hacking into druntime and adding temporary debug
information (eg with custom logging etc) I had a hard time
making things compile because lots of functions are pure
nothrow safe, resulting in compile errors when my custom
debugging functions are not pure nothrow safe.
How about adding flags ` -ignore_pure` (and perhaps
-ignore_safe -ignore_nothrow) to allow code to compile ignoring
safe, pure, nothrow mismatches?
This would be meant for temporary debugging obviously,
production code would not enable these flags.
my workaround for nothrow and safe attributes is to call via
wrapNothrow!fun:
@trusted
nothrow auto wrapNothrow(alias fun, T...)(T a){
import std.exception;
try{
return fun(a);
}
catch(Exception t){
assert(0, t.msg);
}
}
What would be a workaround to wrap a non-pure function?
This comes up every 2-3 months - we really need a better solution.
-> assumeNogc:
https://forum.dlang.org/post/[email protected]
Other threads:
https://forum.dlang.org/post/[email protected]
We really need better out-of-the-box solutions for this. There's
debug, which already allows impure code in pure code.
It should be possible to use `debug` in same way for `@nogc`,
`@safe` and `nothrow`.