@system blocks and safer @trusted (ST) functions
clap at trap.com
Sun Jul 25 22:05:26 UTC 2021
On Sunday, 25 July 2021 at 21:32:00 UTC, Paul Backus wrote:
> On Sunday, 25 July 2021 at 20:36:09 UTC, claptrap wrote:
>> So no that doesn't prove what you say it does, it doesn't mean
>> favouriteNumber needs checking, it means the @system block
>> needs checking. favouriteNumber knows nothing about the array
>> length, to assume it does or it should is bad design.
> Strictly speaking, you're right; it is the `@system` block that
> needs checking, not `favoriteNumber`.
> However, any time you change `favoriteNumber`, you have to
> *re-check* the `@system` block. From a maintenance perspective,
> this is no different from `favoriteNumber` itself requiring
> manual checking--if someone submits a PR that changes
> `favoriteNumber`, and you accept it without any manual review,
> you risk introducing a memory-safety bug.
Im sorry but it's nonsense.
You get an OOB error, it points you at the system block, you add
bounds checking, job done.
Changing favouriteNumber doesnt introduce a bug, the bug was
*already* there in the system block.
You cant expect favouriteNumber to be responsible for other code
doing stupid things with its result.
More information about the Digitalmars-d