Remix.run Logo
▲ jordan_bonecut an hour ago

Allocations live in their own plane, the root allocated typed being the root node of that plane. For threads, I’m still working on that, don’t have a super cool answer yet

▲0c3ca83 33 minutes ago | parent [-]

how does that prevent use after free? pretty sure your algorithm is either very poorly explained or doesnt' actually work.

▲jordan_bonecut 14 minutes ago | parent | next [-]

Another thing - when a value is moved or dropped the plane’s type changes from T to shape(T). shape(T) contains unspecified data but has the size and alignment of a T. So you couldn’t safely prove that a moved out/dropped shape(T) is a T

▲jordan_bonecut 22 minutes ago | parent | prev [-]

The compiler tracks all of the currently living planes. The compiler tracks from which plane each borrow is borrowed. Once the plane it is borrowed from dies that borrow is no longer valid