Even though I wasn't too aware of this shared memory thing, I have to say
it never caused problems in practice (that I know of...).
I did a function that prints variables that points to the same place, just
for fun (it's really cool you can do that easily):
julia> x = rand(10,10);
julia> y = vec(x);
julia> whosShared()
y <-> x
function whosShared()
m = Main
n = Array(String,0)
pts = Array(Ptr{Float64},0)
for v in names(m)
if isdefined(m,v) && typeof(eval(m,v)) <: Array
push!(n,string(v))
push!(pts, pointer(eval(m,v)))
end
end
for i=1:length(n)
for j=(i+1):length(n)
if pts[i] == pts[j]
println( string( n[i], " <-> ", n[j] ) )
end
end
end
end