Вы создаете массив из Int64
, каждый из которых должен храниться в памяти:
julia> sizeof(3)
8
Так что в какой-то момент вам обязательно не хватит памяти - это не связано с к некоторому внутреннему ограничению на количество элементов в массиве, а точнее к размеру всего массива, который, в свою очередь, зависит от размера каждого элемента. Обратите внимание:
julia> sizeof(Int8(3))
1
julia> [Int8(1) for _ in 1:1_000_000_000]
1000000000-element Array{Int8,1}:
1
1
1
⋮
1
1
1
, поэтому заполнение массива меньшим типом данных (8-битное, а не 64-битное целое число) позволяет мне создать массив с большим количеством элементов.