|
1 |
| -# unsafe-code-guidelines |
| 1 | +[![Travis-CI Status]][travis] [![UCG Book]][ucg_book] |
2 | 2 |
|
3 |
| -[![Travis-CI Status]][travis] |
4 |
| - |
5 |
| -Home for the Unsafe Code Guidelines (UCG) effort. The goal of the Unsafe |
6 |
| -Code Guidelines effort is to collaboratively produce a "reference |
7 |
| -guide" for writing unsafe code that what kinds of things unsafe code |
8 |
| -can and cannot do. |
9 |
| - |
10 |
| -## Active area of discussion |
11 |
| - |
12 |
| -At any given time, the UCG working group is focused on one particular |
13 |
| -**area**. The current area is [**Validity Invariants**][currentarea] -- |
14 |
| -read that link for more background and information. You can find the |
15 |
| -[current discussion threads here][threads]. |
16 |
| - |
17 |
| -Ideas for future "areas of discussion" are represented as [issues |
18 |
| -labeled with the "proposed discussion topic" |
19 |
| -label](https://github.com/rust-rfcs/unsafe-code-guidelines/labels/proposed%20discussion%20topic). Feel |
20 |
| -free to open more such issues if you have a question that doesn't |
21 |
| -match any of the existing issues! |
22 |
| - |
23 |
| -We follow the [Rust code of |
24 |
| -conduct](https://www.rust-lang.org/en-US/conduct.html). Any concerns |
25 |
| -should be addressed to [the moderation |
26 |
| -team](https://www.rust-lang.org/team.html#Moderation-team) |
27 |
| -immediately. |
| 3 | +[travis]: https://travis-ci.com/rust-lang/unsafe-code-guidelines |
| 4 | +[Travis-CI Status]: https://travis-ci.com/rust-lang/unsafe-code-guidelines.svg?branch=master |
| 5 | +[UCG Book]: https://img.shields.io/badge/UCG%20Book-Unsafe%20Code%20Guidelines%20Book-blue.svg |
| 6 | +[ucg_book]: https://rust-lang.github.io/unsafe-code-guidelines |
28 | 7 |
|
29 |
| -[currentarea]: active_discussion/validity.md |
30 |
| -[threads]: https://github.com/rust-rfcs/unsafe-code-guidelines/issues?q=is%3Aopen+is%3Aissue+label%3Atopic-repr |
| 8 | +UCG WG - Rust's Unsafe Code Guidelines Working Group |
| 9 | +=== |
31 | 10 |
|
32 |
| -For people who are interested in this sort of thing, there is a team |
33 |
| -in the rust-lang org called `WG-unsafe-code-guidelines`. Send a |
34 |
| -private message to @nikomatsakis on [internals] if you would like to |
35 |
| -be added. This team is commonly cc'd when curious situations arise. |
36 |
| -Being a member of this GitHub team simply indicates that you would |
37 |
| -like to be notified and does not imply any particular decision making |
38 |
| -power. |
| 11 | +The goal of the UCG WG is to produce the [Unsafe Code Guidelines |
| 12 | +Reference][ucg_book]: a "guide" for writing unsafe code that "recommends" what |
| 13 | +kinds of things unsafe code can and cannot do. It is largely a work-in-progress |
| 14 | +right now. |
39 | 15 |
|
40 |
| -[internals]: https://internals.rust-lang.org/ |
| 16 | +Unless we state otherwise, the information in the guide is mostly a |
| 17 | +"recommendation" and still subject to change. The main goal for the WG in 2019 |
| 18 | +is to RFC parts of the guide into the language specification, and move those |
| 19 | +parts into the [Rust Language Reference] proper. |
41 | 20 |
|
42 |
| -## The "Unsafe Code Guidelines Reference" |
| 21 | +[Rust Language Reference]: https://doc.rust-lang.org/reference/index.html |
43 | 22 |
|
44 |
| -Results from past discussions are written up in the "Unsafe Code |
45 |
| -Guidelines Reference", which lives in this repository. It is largely a |
46 |
| -work-in-progress right now. Note that, unless we state otherwise, the |
47 |
| -information in there is mostly a "recommendation" and still subject to |
48 |
| -change -- once made official, the intention is to migrate this |
49 |
| -information into the Rust Reference proper. [Read the "Unsafe Code |
50 |
| -Guidelines Reference" here.][rr] |
| 23 | +> **note**: the instructions to build the UCG reference book are in the |
| 24 | +> [`.travis.yml`][travis_yml] file. |
51 | 25 |
|
52 |
| -[rr]: https://github.com/rust-rfcs/unsafe-code-guidelines/blob/master/reference/src/SUMMARY.md |
| 26 | +[travis_yml]: .travis.yml |
53 | 27 |
|
54 |
| -### Build instructions |
| 28 | +## Process |
55 | 29 |
|
56 |
| -Make sure that `mdbook` is installed: |
| 30 | +A more complete description of our process is available in [the `process.md` |
| 31 | +file][process]. Briefly: |
57 | 32 |
|
58 |
| -> cargo install mdbook |
| 33 | +[process]: process.md |
59 | 34 |
|
60 |
| -and execute `mdbook build` or `mdbook serve` in the `reference/` directory. |
| 35 | +* **active discussion area**: At any given time, the UCG working group is |
| 36 | + focused on one particular **area** of discussion. The current area is |
| 37 | + [**Validity Invariants**][current_area] -- read that link for more background |
| 38 | + and information. You can find the [active discussion threads |
| 39 | + here][active_discussion]. |
61 | 40 |
|
62 |
| -### Link to the current version of the book |
| 41 | +[current_area]: active_discussion/validity.md |
| 42 | +[active_discussion]: https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aissue+is%3Aopen+label%3A%22active+discussion+topic%22 |
63 | 43 |
|
64 |
| -[Here](https://rust-rfcs.github.io/unsafe-code-guidelines/book). |
| 44 | +* **communication channels**: Most of the discussion takes place here in GitHub |
| 45 | + issues. Many of us do also hang out on [Zulip's `wg-unsafe-code-guidelines` |
| 46 | + stream][Zulip]. There is rust-lang org team called |
| 47 | + [`WG-unsafe-code-guidelines`][rust_team] that is commonly cc'd when curious |
| 48 | + situations arise. Send a private message to @nikomatsakis on [internals] or |
| 49 | + [Zulip] if you would like to be added (note: membership does not imply any |
| 50 | + particular decision-making power). |
65 | 51 |
|
66 |
| -## Chat platform, discussion cadence |
| 52 | +[Zulip]: https://rust-lang.zulipchat.com/#narrow/stream/136281-wg-unsafe-code-guidelines |
| 53 | +[rust_team]: https://github.com/orgs/rust-lang/teams/wg-unsafe-code-guidelines |
| 54 | +[internals]: https://internals.rust-lang.org/ |
67 | 55 |
|
68 |
| -Most of the discussion takes place here in GitHub issues. Many of us |
69 |
| -do hangout on [Zulip], however, in the `wg-unsafe-code-guidelines` |
70 |
| -stream. |
| 56 | +* **meetings**: Every Thursday at 12:15 UTC-4 (16:15 UTC), we hold a brief |
| 57 | + _non-technical_ meeting on [Zulip] to triage issues, PRs, assign work, etc. |
| 58 | + Everybody is welcome to attend. |
71 | 59 |
|
72 |
| -[Zulip]: https://rust-lang.zulipchat.com/#narrow/stream/136281-wg-unsafe-code-guidelines |
| 60 | +Ideas for future "areas of discussion" are represented as [issues labeled with |
| 61 | +the "proposed discussion topic" label][proposed_discussion]. Feel free to open |
| 62 | +more such issues if you have a question that doesn't match any of the existing |
| 63 | +issues! |
73 | 64 |
|
74 |
| -Every two weeks on Thursday at 9:00 UTC-4 (13:00 UTC), we hold a brief, |
75 |
| -non-technical meeting to decide whether to keep the current area of |
76 |
| -discussion or to adopt a new one. Prior to this meeting, we update the |
77 |
| -"area of discussion" document with summaries of the threads. The |
78 |
| -meeting takes place on [Zulip] and all are welcome to attend. |
| 65 | +[proposed_discussion]: https://github.com/rust-rfcs/unsafe-code-guidelines/labels/proposed%20discussion%20topic |
79 | 66 |
|
80 |
| -A more complete description of our process can be found in [the `process.md` file][p]. |
| 67 | +We follow the [Rust's Code of Conduct]. Any concerns should be addressed to the |
| 68 | +[moderation team] immediately. |
81 | 69 |
|
82 |
| -[p]: process.md |
| 70 | +[Rust's Code of Conduct]: https://www.rust-lang.org/en-US/conduct.html |
| 71 | +[moderation team]: https://www.rust-lang.org/team.html#Moderation-team |
83 | 72 |
|
84 | 73 | ## See also
|
85 | 74 |
|
86 |
| -The [Rustonomicon](https://doc.rust-lang.org/nightly/nomicon/) is a |
87 |
| -draft document discussing unsafe code. It is intended to be brought |
88 |
| -into agreement with the content here. It represents an organized |
| 75 | +The [Rustonomicon] is a draft document discussing unsafe code. It is intended to |
| 76 | +be brought into agreement with the content here. It represents an organized |
89 | 77 | effort to explain how to write Rust code, rather than a reference.
|
90 | 78 |
|
91 |
| -[The nikomatsakis/rust-memory-model |
92 |
| -repository](https://github.com/nikomatsakis/rust-memory-model) was a |
93 |
| -previous effort and contains a lot of good links and info. |
| 79 | +[Rustonomicon]: https://doc.rust-lang.org/nightly/nomicon/ |
94 | 80 |
|
95 |
| -[travis]: https://travis-ci.com/rust-lang/unsafe-code-guidelines |
96 |
| -[Travis-CI Status]: https://travis-ci.com/rust-lang/unsafe-code-guidelines.svg?branch=master |
| 81 | +The [nikomatsakis/rust-memory-model] was a previous effort and contains a lot of |
| 82 | +good links and information. |
| 83 | + |
| 84 | +[nikomatsakis/rust-memory-model]: https://github.com/nikomatsakis/rust-memory-model |
0 commit comments