|
|
|
@ -2,12 +2,12 @@
|
|
|
|
|
|
|
|
|
|
# NOTE: This is a draft document, and may contain serious errors
|
|
|
|
|
|
|
|
|
|
So you've played around with Rust a bit. You've written a few simple programs and
|
|
|
|
|
you think you grok the basics. Maybe you've even read through
|
|
|
|
|
*[The Rust Programming Language][trpl]*. Now you want to get neck-deep in all the
|
|
|
|
|
So you've played around with Rust a bit. You've written a few simple programs
|
|
|
|
|
and you think you grok the basics. Maybe you've even read through *[The Rust
|
|
|
|
|
Programming Language][trpl]* (TRPL). Now you want to get neck-deep in all the
|
|
|
|
|
nitty-gritty details of the language. You want to know those weird corner-cases.
|
|
|
|
|
You want to know what the heck `unsafe` really means, and how to properly use it.
|
|
|
|
|
This is the book for you.
|
|
|
|
|
You want to know what the heck `unsafe` really means, and how to properly use
|
|
|
|
|
it. This is the book for you.
|
|
|
|
|
|
|
|
|
|
To be clear, this book goes into *serious* detail. We're going to dig into
|
|
|
|
|
exception-safety and pointer aliasing. We're going to talk about memory
|
|
|
|
@ -19,21 +19,16 @@ and happy career in Rust.
|
|
|
|
|
However if you intend to write unsafe code -- or just *really* want to dig into
|
|
|
|
|
the guts of the language -- this book contains *invaluable* information.
|
|
|
|
|
|
|
|
|
|
Unlike *The Rust Programming Language* we *will* be assuming considerable prior
|
|
|
|
|
knowledge. In particular, you should be comfortable with:
|
|
|
|
|
Unlike TRPL we will be assuming considerable prior knowledge. In particular, you
|
|
|
|
|
should be comfortable with basic systems programming and basic Rust. If you
|
|
|
|
|
don't feel comfortable with these topics, you should consider [reading
|
|
|
|
|
TRPL][trpl], though we will not be assuming that you have. You can skip
|
|
|
|
|
straight to this book if you want; just know that we won't be explaining
|
|
|
|
|
everything from the ground up.
|
|
|
|
|
|
|
|
|
|
* Basic Systems Programming:
|
|
|
|
|
* Pointers
|
|
|
|
|
* [The stack and heap][]
|
|
|
|
|
* The memory hierarchy (caches)
|
|
|
|
|
* Threads
|
|
|
|
|
|
|
|
|
|
* [Basic Rust][]
|
|
|
|
|
|
|
|
|
|
Due to the nature of advanced Rust programming, we will be spending a lot of time
|
|
|
|
|
talking about *safety* and *guarantees*. In particular, a significant portion of
|
|
|
|
|
the book will be dedicated to correctly writing and understanding Unsafe Rust.
|
|
|
|
|
Due to the nature of advanced Rust programming, we will be spending a lot of
|
|
|
|
|
time talking about *safety* and *guarantees*. In particular, a significant
|
|
|
|
|
portion of the book will be dedicated to correctly writing and understanding
|
|
|
|
|
Unsafe Rust.
|
|
|
|
|
|
|
|
|
|
[trpl]: ../book/
|
|
|
|
|
[The stack and heap]: ../book/the-stack-and-the-heap.html
|
|
|
|
|
[Basic Rust]: ../book/syntax-and-semantics.html
|
|
|
|
|