On Monday, 25 May 2020 at 13:22:36 UTC, Petar Kirov [ZombineDev]
wrote:
On Monday, 25 May 2020 at 13:14:51 UTC, Petar Kirov
[ZombineDev] wrote:
It may be true (of course modulo meta-programming) that it
doesn't make a difference for the calling code, but I
personally want have the guarantees that a function that I'm
doesn't make a difference for the calling code, but personally
I want [to] have the guarantees that a function that I'm
calling is truly @safe (it doesn't contain or call any
@trusted code, transitively, nor it calls any @safe code,
which access global variables initialized by @system
static/module constructors).
This is very far from a rigorous definition of "strong
@safe-ty" - but I hope it's just enough for the casual reader
to understand my intention.
I'm sure this is reasonable for your use-case, but I hope you can
recognize that this definition of safety is far too narrow to be
suitable for a general-purpose programming language (which D
purports to be). Most people would like their @safe code to be
able to do I/O, for example, despite the fact that it necessarily
involves calling @system code under the hood.