On Friday, 24 May 2019 at 13:13:12 UTC, Atila Neves wrote:
Thanks for this. I think the only violation is calling `stringz` on `Z`, and that was due to a poorly designed DbI check on being able to call `stringz`. Allocating generally isn't @system, and freeing is ok to trust since vector is taking care of it for us. I've pushed a fix.
I think you're missing the point. When your function is marked as @safe or @trusted, then any execution of a user-provided @system function is a safety violation.
My `puts`s might not do any harm, but they could just as well be buffer overflows.
