Framework for escape set

Richard (Rikki) Andrew Cattermole richard at cattermole.co.nz
Mon Sep 23 11:11:17 UTC 2024


I think it is time to bump this as there hasn't been any replies in four 
days.

Right now, this will be the proposal I'll take to development (some 
minor modifications locally).

It solves issues of DIP1000 by:

- Multiple outputs.
- Replace the abomination that is DIP1000 attributes, with clear 
differentiation between where to escape to and what the relationship is.
- Inferred attributes.
- Will give better error messages.
- Allow escape set to grow then shrink down before erroring (more code 
will be valid, that is valid).
- Tuple-like variables will have their lifetimes of each element tracked 
separately.
- Reference counting is describable, and therefore can be made safe, is 
unblocked.

All of the above features are things people have had issues with 
DIP1000, replacing the framework that the analysis works in should 
resolve all of the design level issues with it (at least the ones I can 
think of that are reasonable to fix).

It has a nice side effect of offering the framework needed for type 
state analysis at very little additional cost to it.



More information about the dip.ideas mailing list