Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

We're still on the nightly toolchain and that's annoying #1927

Open
cbiffle opened this issue Nov 20, 2024 · 0 comments
Open

We're still on the nightly toolchain and that's annoying #1927

cbiffle opened this issue Nov 20, 2024 · 0 comments
Labels
build Affects or requires changes in the build system developer-experience Fixing this would have a positive impact on developer experience kernel Relates to the Hubris kernel userlib Related to userlib, the fundamental library used by tasks

Comments

@cbiffle
Copy link
Collaborator

cbiffle commented Nov 20, 2024

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), 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.

...and as far as I can tell, that's it.

@cbiffle cbiffle added kernel Relates to the Hubris kernel developer-experience Fixing this would have a positive impact on developer experience userlib Related to userlib, the fundamental library used by tasks build Affects or requires changes in the build system labels Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Affects or requires changes in the build system developer-experience Fixing this would have a positive impact on developer experience kernel Relates to the Hubris kernel userlib Related to userlib, the fundamental library used by tasks
Projects
None yet
Development

No branches or pull requests

1 participant