Remix.run Logo
zozbot234 5 hours ago

> infer or constrain the amount of copies and allocations a piece of code has

That's exactly what substructural logic/type systems allows you to do. Affine and linear types are one example of substructural type systems, but you can also go further in limiting moves, exchanges/swaps etc. which helps model scenarios where allocation and deallocation must be made explicit.

NeutralForest 4 hours ago | parent | next [-]

I don't think it's been integrated in any mainstream language though.

johnbender 3 hours ago | parent | next [-]

https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/line...

Experimental and of course one can debate whether Haskell is mainstream but I figured it merits a mention.

DonaldPShimoda 4 hours ago | parent | prev [-]

I think by default Rust uses affine types, but that's about the extent of it.

NeutralForest 4 hours ago | parent [-]

I know some research languages are playing around with linear types, I wonder if we'll see it show up in some language or another.

boltzmann-brain 3 hours ago | parent | prev [-]

do they allow the following? https://news.ycombinator.com/item?id=46859860