D Editions

Quirin Schroll qs.il.paperinik at gmail.com
Wed Jun 19 13:30:35 UTC 2024


On Monday, 17 June 2024 at 22:47:03 UTC, Atila Neves wrote:
> On Friday, 14 June 2024 at 17:24:59 UTC, Quirin Schroll wrote:
>> On Thursday, 30 May 2024 at 18:31:48 UTC, Atila Neves wrote:
>>> https://github.com/atilaneves/DIPs/blob/editions/editions.md
>>
>> The DIP doesn’t mention the addition of new keywords without 
>> breaking identifiers identical to them. I’m thinking of 
>> `impure` here, as it would be the most orthogonal way to 
>> introduce an inverse for `pure`.
>
> I don't think that scales given how many attributes we have.

Of the ones I mean, we have four: `@safe`, `nothrow`, `@nogc`, 
and `pure`. Of those, `@safe` had `@system` from the get-go and 
`throw` was added by DIP 1029 (seems unimplemented). I’m writing 
a DIP to add `@gc`. Then, only `pure` remains without inverse.

There’s also `@live`, but it’s not transitive and it me, it seems 
it makes no outward guarantees (e.g. one can override a `@live` 
function by a non-`@live` one, or assign a non-`@live` function’s 
address to a function pointer variable with `@live`).



More information about the dip.ideas mailing list