1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2024-11-29 10:22:05 +02:00

Update unsafe.md (#252)

* Update unsafe.md

Adding a paragraph explaining that unsafe code is not necessary broken or evil, but it is a mode
where compiler safety features are off.

* Move explanation to speaker notes

To avoid slide being too long. Also edited text slightly.

* Remove extra space

---------

Co-authored-by: Andrew Walbran <qwandor@google.com>
This commit is contained in:
Igor Petruk 2023-01-30 13:12:51 +00:00 committed by GitHub
parent efa593e020
commit 100ee591ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,6 +8,9 @@ The Rust language has two parts:
We will be seeing mostly safe Rust in this course, but it's important to know
what Unsafe Rust is.
Unsafe code is usually small and isolated, and its correctness should be carefully
documented. It is usually wrapped in a safe abstraction layer.
Unsafe Rust gives you access to five new capabilities:
* Dereference raw pointers.
@ -16,6 +19,14 @@ Unsafe Rust gives you access to five new capabilities:
* Call `unsafe` functions, including `extern` functions.
* Implement `unsafe` traits.
We will briefly cover these capabilities next. For full details, please see
We will briefly cover unsafe capabilities next. For full details, please see
[Chapter 19.1 in the Rust Book](https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html)
and the [Rustonomicon](https://doc.rust-lang.org/nomicon/).
<details>
Unsafe Rust does not mean the code is incorrect. It means that developers have
turned off the compiler safety features and have to write correct code by
themselves. It means the compiler no longer enforces Rust's memory-safety rules.
</details>