The non-intrusive ad-hoc borrowing scheme…

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Wed Nov 13 12:22:12 UTC 2019


Since Rust style borrowing checks lead to various complications, 
why not embrace testing as an alternative approach. Basically 
providing something like valgrind for borrowing.

You can track shared ownership by letting pointers and slices use 
ref-counting. That is well-known.

In my own attempts to model borrowing in D, I did a tiny little 
twist to it, creating borrowing pointers that will not free when 
the refcount goes to zero. Instead they fail. So you have to 
release the owner explicitly and that can only be done when the 
refcount is zero.

That allows you to track borrowing during debugging/testing, and 
turn it off in release mode. You also avoid the inconveniences 
that Rust comes with.

The downside is that the resulting code is only as safe as the 
testing environment ensures…

Anyway, this is relatively easy to implement if the code base is 
wellbehaved.


More information about the Digitalmars-d mailing list