Hi,
I'm trying to understand the bug report at
https://github.com/andrewcooke/CRC.jl/issues/4 which has
julia> using CRC
julia> crc32c = crc(CRC_32_C)
handler (generic function with 3 methods)
julia> a = b"hello world";
julia> crc32c(a)
0xc99465aa
julia> resize!(a, 5)
ERROR: cannot resize array with shared data
in resize! at ./array.jl:545
but I can find no docs on what "shared data" for arrays means. All I have found is the C code at
https://github.com/JuliaLang/julia/blob/master/src/array.c which, tbh, is a little opaque (what is a->how? how can i reset a->shared?)
It sounds like the array code is doing something like reference counting and refusing to be mutable when there are references? How do I decrement the count?
Is there any documentation on sharing of arrays?
My guess is that a caller could work round this by making a copy, but that seems inefficient. Especially since my code simply iterates through the data and then "no longer cares".
Sorry, this email is very vague. Given the lack of docs (nothing about sharing in the manual i can see) I wonder if I've stumbled over some internal detail that should not be exposed to users?
Any help appreciated,
Andrew