Type state analysis

Paul Backus snarwin at gmail.com
Sun Mar 17 15:35:40 UTC 2024


On Sunday, 17 March 2024 at 06:51:23 UTC, Richard (Rikki) Andrew 
Cattermole wrote:
> Latest: 
> https://gist.github.com/rikkimax/eed86a7061445a93f214e41fb6445e40
> Current: 
> https://gist.github.com/rikkimax/eed86a7061445a93f214e41fb6445e40/a8fffb5725904c6f5d74052d9c974a8f5d453fb0

Yet another proposal for a humongous language feature to solve a 
problem that can already be solved without it.

It is possible to achieve temporal safety in D already with 
`scope` (DIP 1000) and `@system` variables (DIP 1035). The 
ergonomics are not great, but they can be improved (e.g., with 
built-in move-on-last-use).

This proposal specifically has the same problem as `@live`: it 
splits `@safe` code into separate "new `@safe`" and "old `@safe`" 
dialects, which are mutually incompatible.

The ideas themselves are not terrible. I would be interested to 
see what this looks like implemented in a research language. But 
I do not think it has any place in D.


More information about the dip.ideas mailing list