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

Reply via email to