When passing around a large isbits object without modification, does Julia push a copy onto the stack each time it’s passed as an argument? Eg. in this code
using StaticArrays
@noinline f(x) = g(x)
@noinline g(x) = h(x)
@noinline h(x) = sum(x)
f(SVector(1:20...))
Does the stack grow by 4 * sizeof(SVector(1:20...))
? Is there an upper-bound beyond which Julia just heap-allocates the object?