First Draft: Static Single Assignment
monkyyy
crazymonkyyy at gmail.com
Mon Nov 17 02:01:40 UTC 2025
On Monday, 17 November 2025 at 01:09:48 UTC, Walter Bright wrote:
> On 11/16/2025 4:18 PM, monkyyy wrote:
>> On Sunday, 16 November 2025 at 22:08:02 UTC, Nick Treleaven
>> wrote:
>>>
>>> So I assume `typeof(&f)` would be `const int*`?
>>
>> if its not `final int*` it would be repeating the ref type
>> theory failures and its supposedly in the same group as const
>
> Fortunately, `final` is a storage class and not a type, so type
> theory does not apply.
Type theory is in laws of physics, length * time = mph; square
cube laws etc. You dont get to avoid it. The math people uses big
stupid words to sound smarter(while being dumber), while they are
busy proving 1+1==2 in 300 pages, Im going to tell ya if I put a
T in a T[] and then I grab an element out of the box, I expect a
T.
`alias S=T[]; assert(is(typeof(S.init[0])==T));`
Ref breaks this so I get to convert all refs to pointers in all
apis thats have a depth larger then 1; I don't actually care
about a safetyism keyword (and if its like const it is one) but
for metaprogramming you should have it just work. Otherwise
phoboes v3 will be even slower.
if its not a `(final int)*` you should double check the behavior
of nested final types `final(final int*)*[]` for type theory
concerns. So that its consistent and compiles with basic meta
programming patterns.
More information about the dip.development
mailing list