Максимальное количество битов, которое вы можете установить для типа примитива, составляет
8388600 bits
Это ограничение исходит из кода
if (nb < 1 || nb >= (1 << 23) || (nb & 7) != 0)
jl_errorf("invalid number of bits in primitive type %s",
jl_symbol_name((jl_sym_t*)name));
в interpreter.c исходного кода Джулии.
1 << 23
- 1 МБ (1024 * 1024 байта). Таким образом, ваш тип примитива должен быть как минимум на один байт меньше 1 МБ, что составляет максимум 8388600 бит.
Что касается того, почему этот предел выбран, я бы предположил, что выбран только 1 МБ, поскольку размер стека в большинстве операционных систем не очень большой. (по умолчанию 1 или 2 МБ)
Я полагаю, что если вы перекомпилируете Julia с измененным кодом, вы можете изменить этот предел, я не вижу никакой другой причины, кроме размера стека, почему этот предел должен составлять 1 МБ, хотя я действительно не знаю, почему вы хочу этого.