mukul-rathi / bolt

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

Check async exprs region accesses #104

Closed mukul-rathi closed 4 years ago

mukul-rathi commented 4 years ago

Check regions accessed by objects in each object.

Okay if access disjoint regions or if regions that overlap only in safe capabilities. (this is like unpacking into two different linear capabilities).

Can't use regions in conjunction if they share subordinate state, or if there's subordinate state in one region and subordinate state in the other region that are both part of another region (acts as a channel).

Can reuse the same read\locked regions in multiple threads, but not linear/thread regions.