There are few changes required for everyday code. You must be aware not to 
create cycles. We have some primitive warnings for this that can detect some 
cases.

You can use `sink` and `lent` to help the compiler optimize but I'm also 
working on inferring these.

Borrowing is different from move semantics and refcounting, there is an 
[RFC](https://github.com/nim-lang/RFCs/issues/178) covering it.

However, the most common forms of borrowing might also be inferrable, consider 
for example:
    
    
    let x = obj.field # borrow or copy can be left to the optimizer
    f(obj) # can borrow if 'f' is .noSideEffect
    use x
    
    
    Run

Reply via email to