-
Notifications
You must be signed in to change notification settings - Fork 206
Open
Labels
buildAffects or requires changes in the build systemAffects or requires changes in the build systemdeveloper-experienceFixing this would have a positive impact on developer experienceFixing this would have a positive impact on developer experiencekernelRelates to the Hubris kernelRelates to the Hubris kerneluserlibRelated to userlib, the fundamental library used by tasksRelated to userlib, the fundamental library used by tasks
Description
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 Allow kernel to be built with stable toolchain. #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.
aapoalas
Metadata
Metadata
Assignees
Labels
buildAffects or requires changes in the build systemAffects or requires changes in the build systemdeveloper-experienceFixing this would have a positive impact on developer experienceFixing this would have a positive impact on developer experiencekernelRelates to the Hubris kernelRelates to the Hubris kerneluserlibRelated to userlib, the fundamental library used by tasksRelated to userlib, the fundamental library used by tasks