<commit_before># Contributing to Cranelift

## Welcome!

Cranelift is a very ambitious project with many goals, and while we're
confident we can achieve some of them, we see many opportunities for people
to get involved and help us achieve even more.

### Ask questions! Give feedback!

This is a relatively young project, and not everything we hope to do with it
is reflected in the code or documentation yet. If you see things that seem
missing or that don't make sense, or even that just don't work the way you
expect them to, we're interested to hear about it!

We have a [Cranelift chat on Gitter], and questions are also welcome as issues
in the [Cranelift issue tracker]. Some folks also hang out in the #cranelift
IRC channel on [irc.mozilla.org].

[Cranelift chat on Gitter]: https://gitter.im/CraneStation/Lobby
[Cranelift issue tracker]: https://github.com/CraneStation/cranelift/issues/new
[irc.mozilla.org]: https://wiki.mozilla.org/IRC

### Mentoring

We're happy to mentor people, whether you're learning Rust, learning about
compiler backends, learning about machine code, learning about how Cranelift
does things, or all together at once.

We tag issues in the issue tracker marked [good first issue] when we can, so
that's sometimes a good place to get started. Also, we encourage people to just
look around and find things they're interested in. This a good time to get
involved, as there aren't a lot of things set in stone yet.

[good first issue]: https://github.com/CraneStation/cranelift/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22

## Coding Guidelines

For the most part, Cranelift follows common Rust conventions and
[pull request] (PR) workflows, though we do have a few additional things to
be aware of.

[pull request]: https://help.github.com/articles/about-pull-requests/

### rustfmt

All PRs must be formatted according to the current stable [rustfmt], and this
is checked in the continuous integration tests. See the [rustfmt quickstart]
for setup.

[format-all.sh] is a script for running the appropriate version of rustfmt,
which may be convenient when there are multiple versions installed.

[rustfmt]: https://github.com/rust-lang-nursery/rustfmt<commit_msg>Clarify that we use rustfmt-preview.<commit_after># Contributing to Cranelift

## Welcome!

Cranelift is a very ambitious project with many goals, and while we're
confident we can achieve some of them, we see many opportunities for people
to get involved and help us achieve even more.

### Ask questions! Give feedback!

This is a relatively young project, and not everything we hope to do with it
is reflected in the code or documentation yet. If you see things that seem
missing or that don't make sense, or even that just don't work the way you
expect them to, we're interested to hear about it!

We have a [Cranelift chat on Gitter], and questions are also welcome as issues
in the [Cranelift issue tracker]. Some folks also hang out in the #cranelift
IRC channel on [irc.mozilla.org].

[Cranelift chat on Gitter]: https://gitter.im/CraneStation/Lobby
[Cranelift issue tracker]: https://github.com/CraneStation/cranelift/issues/new
[irc.mozilla.org]: https://wiki.mozilla.org/IRC

### Mentoring

We're happy to mentor people, whether you're learning Rust, learning about
compiler backends, learning about machine code, learning about how Cranelift
does things, or all together at once.

We tag issues in the issue tracker marked [good first issue] when we can, so
that's sometimes a good place to get started. Also, we encourage people to just
look around and find things they're interested in. This a good time to get
involved, as there aren't a lot of things set in stone yet.

[good first issue]: https://github.com/CraneStation/cranelift/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22

## Coding Guidelines

For the most part, Cranelift follows common Rust conventions and
[pull request] (PR) workflows, though we do have a few additional things to
be aware of.

[pull request]: https://help.github.com/articles/about-pull-requests/

### rustfmt

All PRs must be formatted according to rustfmt, and this is checked in the
continuous integration tests. We use the current stable [rustfmt-preview]
version. See the [rustfmt quickstart] for setup.

[format-all.sh] is a script for running the appropriate version of rustfmt,
which may be convenient when there are multiple versions installed.

[rustfmt-preview]: https://github.com/rust-lang-nursery/rustfmt
{'fraction_non_alphanumeric': 0.07192162101981742, 'fraction_numerical': 0.0031173458027165444, 'mean_word_length': 4.729591836734694, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 12, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6090624', 'n_tokens_mistral': 1280, 'n_tokens_neox': 1236, 'n_words': 621}