mukul-rathi / bolt

Bolt is a language with in-built data-race freedom!
MIT License
564 stars 51 forks source link

Type check relaxed linearity of references #101

Closed mukul-rathi closed 4 years ago

mukul-rathi commented 4 years ago

Do not allow fields that are linear to be aliased.

Allow temporary aliasing of references. However, when aliased, only allow access to regions that are not themselves linear, nor contain references to linear objects.

Use liveness analysis to determine if aliases are live at each point

Prevent assignment of linear variables to fields of objects - only allow stack-bound "let" aliasing.