std.experimental.logger formal review round 3

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Sat Nov 1 11:38:40 PDT 2014


On Saturday, 1 November 2014 at 17:35:37 UTC, David Nadlinger 
wrote:
> There is still a critical issue with std.experimental.logger 
> that would prevent it from being merged right now: The abuse of 
> @trusted all over the code.
>
> For example, the following piece of code compiles with 
> burner/logger at c87e1032:
> ---
> import std.experimental.logger.core;
>
> struct Dangerous {
>     string toString() {
>         *(cast(int*)0xdeadbeef) = 0xcafebabe;
>         return null;
>     }
> }
>
> void main() @safe {
>     logf("%s", Dangerous());
> }
> ---
>
> To be quite honest, I'm rather disappointed that I was able to 
> break @safe-ty
> with the first, most straightforward piece of code I tried. 
> Sure, many people don't understand how dangerous @trusted 
> applied to templates really is. But this issue has already been 
> pointed out multiple times in Robert's code, both in this pull 
> request and other unrelated ones.
>
> David

Oh, I have actually completely missed that. It is critical 
indeed. Will try having a look myself and possibly providing 
patches.


More information about the Digitalmars-d mailing list