D Language Foundation April 2024 Monthly Meeting Summary

Dennis dkorpel at gmail.com
Wed Jul 31 15:53:17 UTC 2024


On Wednesday, 31 July 2024 at 08:15:22 UTC, Dukc wrote:
>> Paul thought we should remove any BuildKite tests that relied 
>> on DIP 1000. It was an unstable feature. If you depended on an 
>> unstable feature, your code was going to break. We should not 
>> and could not guarantee that code would continue to build.
>
> Please don't. What's wrong with keeping DIP1000 optional until 
> we have editions, and making it the default in the next 
> edition? That way no-one has to migrate if they can't.

There's nothing wrong with that, it's even the current situation. 
But that doesn't change the Buildkite situation. To clarify, the 
problem is that some dub projects only compile with `dflags 
"-preview=dip1000"` and that any DMD pull request fixing DIP1000 
bugs must ensure those dub projects continue to build with 
`-preview=dip1000`, even when they rely on those bugs.

>> But if you called `getAttributes` on a function, whether you 
>> got `@system` or not depended on which one the compiler saw 
>> first, because `@system` functions were mangled with it and 
>> default functions were not.
>
> Maybe related to https://issues.dlang.org/show_bug.cgi?id=24003 
> ?

It's similar, but not related. Both issues are rooted in the type 
mangle not being a complete description of the type, but the 
mangle is still being used for equality. Therefore two types with 
slight differences may appear equal to the compiler. But in one 
case, the missing information is 'scope is inferred', and in the 
other situation, the missing information is '@system is explicit 
/ default'.

The summary is not entirely accurate by the way:

> because `@system` functions were mangled with it and default 
> functions were not.

It should be:

> because `@system` functions and default functions are mangled 
> exactly the same.


More information about the Digitalmars-d-announce mailing list