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@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

Reply via email to