Hubris still requires the nightly toolchain to build, and that's annoying. It makes toolchain updates hard for several reasons:
We're on nightly because we use unstable features, which (as the term suggests) are unstable. These can be broken at any time. This is not a hypothetical risk, either; it happens on most updates.
Dependencies detect that we're on nightly and they, too, have an unstable feature free-for-all. So the set of features that can break us is larger than the set we actually use. There's no commonly supported way to stop dependencies from doing this crap.
If a new Rust fix or feature drops, we can't just bump to the released toolchain, we need to figure out which nightly version roughly corresponds to the version we want. Because features get backported, it's entirely possible that no nightly toolchain directly corresponds to the released version.
As of this writing, the things keeping us on nightly are:
feature(naked_functions): used in the kernel (though I'm attempting to fix this, see #1926), in userlib, and in a couple lpc55-specific low level libraries. I suspect all uses of naked_functions can be replaced by global_asm!, which is good, because the way naked_functions works has changed in fundamental ways after about 1.83.
feature(used_with_arg): I...have no idea why we're using this. But we are. It only appears in the test suite?
-Z emit-stack-sizes: yes, our recent stack size monitoring requires nightly. This is annoying, but, we could make it optional.
Hubris still requires the nightly toolchain to build, and that's annoying. It makes toolchain updates hard for several reasons:
As of this writing, the things keeping us on nightly are:
feature(naked_functions)
: used in the kernel (though I'm attempting to fix this, see #1926), inuserlib
, and in a couple lpc55-specific low level libraries. I suspect all uses ofnaked_functions
can be replaced byglobal_asm!
, which is good, because the waynaked_functions
works has changed in fundamental ways after about 1.83.feature(used_with_arg)
: I...have no idea why we're using this. But we are. It only appears in the test suite?-Z emit-stack-sizes
: yes, our recent stack size monitoring requires nightly. This is annoying, but, we could make it optional....and as far as I can tell, that's it.