replace shallowCopy for ARC/ORC - #4
Conversation
|
Hi @ringabout, thank you for the PR. But I must say I am confused - isn't there a mechanism to share storage with ORC? The whole point of the |
Imo, strings and seqs cannot be shared with ARC/ORC in a safe way. It can be either moved or copied. Sometimes it can be optimized using |
|
I think the only workaround that can actually work in this case without changing semantics is creating some |
|
You could use a cow string implementation internally. |
|
I think I will go with double indirection as soon as I have time |
I'm not sure how to achieve that while keeping this test work proc rotate*(s: string, i: int): RotatedString
test "underlying strings are shared":
var
x = "Hello, world"
y = x.rotate(5)
y[0] = 'f'
check x[5] == 'f' |
Hello,
shallowCopyhas been removed for ARC/ORC since it does a deep copy with ARC/ORC → nim-lang/Nim#20070I don't know a good alternative for
shallowCopy.ref nim-lang/Nim#19972