I've got a really REALLY elusive bug which as far as I can tell boils down 
to this line of code:

shuffleFields!(A, getb(A), getc(A), geta(A))

where the intent is to reassign A.a, A.b, A.c:

shuffleFields!(A, a, b, c) = (A.a = b; A.b = c; A.c = a)

and where

geta(A)= A.a # etc

The thing is that this line behaves differently in julia 0.4 and julia 0.5, 
and it also behaves differently in julia 0.5 and julia 0.5 stepped through 
with Gallium. Is this some kind of undefined behaviour? I would have 
expected geta, getb and getc to be evaluated first and for their values to 
be passed to the function, but the behaviour I'm seeing on julia 0.5 is 
like it's evaluating them lazily. Have I missed something?

Reply via email to