# ARM notification group

**Github Label:** [O-ARM] <br>
**Ping command:** `@rustbot ping arm`

[O-ARM]: https://github.com/rust-lang/rust/labels/O-ARM

This list will be used to ask for help both in diagnosing and testing
ARM-related issues as well as suggestions on how to resolve
interesting questions regarding our ARM support.

The group also has an associated Zulip channel ([`#t-compiler/arm`])
where people can go to pose questions and discuss ARM-specific
topics.

So, if you are interested in participating, please sign up for the
ARM group! To do so, open a PR against the [rust-lang/team]
repository. Just [follow this example][eg], but change the username to
your own!

[`#t-compiler/arm`]: https://rust-lang.zulipchat.com/#narrow/stream/242906-t-compiler.2Farm
[rust-lang/team]: https://github.com/rust-lang/team
[eg]: https://github.com/rust-lang/team/pull/358
