rust/src/doc/nomicon
2016-07-21 21:11:34 +02:00
..
arc-and-mutex.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
atomics.md Add missing "to" in Rustonomicon Atomics. 2015-10-22 03:33:47 -06:00
borrow-splitting.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
casts.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
checked-uninit.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
coercions.md improve error message 2016-04-05 20:58:58 +03:00
concurrency.md doc: fixing typos 2015-10-10 09:15:55 -07:00
constructors.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
conversions.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
data.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
destructors.md don't use drop_in_place as an intrinsic 2015-10-30 11:24:54 -04:00
dot-operator.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
drop-flags.md Fix some typos. 2015-10-05 16:48:57 +02:00
dropck.md fix markdown in nomicon/dropck 2015-10-19 20:14:38 -04:00
exception-safety.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
exotic-sizes.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
hrtb.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
leaking.md Fix minor syntax error in example. 2015-10-19 01:43:48 -06:00
lifetime-elision.md Fix spacing style of T: Bound in docs 2016-01-17 23:44:33 +01:00
lifetime-mismatch.md docs: anchors fixes 2015-10-05 19:25:54 +03:00
lifetimes.md Change "big ask" to "tall order" in Rustonomicon. 2015-12-17 09:40:02 -08:00
meet-safe-and-unsafe.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
obrm.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
other-reprs.md Capitalize some occurences of Rust in documentation 2016-02-24 19:56:28 +01:00
ownership.md Replace multiple trailing newlines with a single trailing newline 2015-10-06 13:06:39 -04:00
phantom-data.md doc: add missing pause 2016-07-21 21:11:34 +02:00
poisoning.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
races.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
README.md Fix a few links in the book 2016-06-01 16:53:14 +01:00
references.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
repr-rust.md Auto merge of #28847 - Ms2ger:typos, r=steveklabnik 2015-10-05 20:02:02 +00:00
safe-unsafe-meaning.md Fixed based on feedback from steveklabnik 2016-06-07 18:09:24 -04:00
send-and-sync.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
subtyping.md subtyping.md: typo fix 2016-04-23 11:58:58 +01:00
SUMMARY.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
transmutes.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
unbounded-lifetimes.md Remove nomicon reference to copy_lifetime 2015-11-16 16:58:52 -05:00
unchecked-uninit.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
uninitialized.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
unwinding.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
vec-alloc.md doc: Fix tiny typo in vec-alloc.md 2016-05-09 14:28:42 -07:00
vec-dealloc.md heap::deallocate expects a *mut u8 but here a *mut T is given. The final code is correct, the example here would not compile without the cast. I used *mut _ instead of *mut u8 to be consistent with the final code. 2016-01-06 12:13:47 +01:00
vec-deref.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
vec-drain.md Rustonomicon: Reword potentially confusing comment in Vec::drain. 2015-09-06 18:21:57 +02:00
vec-final.md Fixed indent from tabs to spaces 2016-01-16 20:51:55 +01:00
vec-insert-remove.md len needs to be prefixed by self for this to work. The final code in this section of the book is correct. 2016-01-07 12:13:22 +01:00
vec-into-iter.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
vec-layout.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
vec-push-pop.md Correct spelling in docs 2015-10-13 09:44:11 -04:00
vec-raw.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
vec-zsts.md Semicolon was at wrong place in let statement 2016-01-16 13:07:46 +01:00
vec.md Update Rust version in the Rustonomicon Vec chapter 2016-03-30 16:59:38 -07:00
working-with-unsafe.md rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00

% The Rustonomicon

The Dark Arts of Advanced and Unsafe Rust Programming

NOTE: This is a draft document, and may contain serious errors

Instead of the programs I had hoped for, there came only a shuddering blackness and ineffable loneliness; and I saw at last a fearful truth which no one had ever dared to breathe before — the unwhisperable secret of secrets — The fact that this language of stone and stridor is not a sentient perpetuation of Rust as London is of Old London and Paris of Old Paris, but that it is in fact quite unsafe, its sprawling body imperfectly embalmed and infested with queer animate things which have nothing to do with it as it was in compilation.

This book digs into all the awful details that are necessary to understand in order to write correct Unsafe Rust programs. Due to the nature of this problem, it may lead to unleashing untold horrors that shatter your psyche into a billion infinitesimal fragments of despair.

Should you wish a long and happy career of writing Rust programs, you should turn back now and forget you ever saw this book. It is not necessary. However if you intend to write unsafe code -- or just want to dig into the guts of the language -- this book contains invaluable information.

Unlike The Book we will be assuming considerable prior knowledge. In particular, you should be comfortable with basic systems programming and Rust. If you don't feel comfortable with these topics, you should consider reading The Book first. Though we will not be assuming that you have, and will take care to occasionally give a refresher on the basics where appropriate. You can skip straight to this book if you want; just know that we won't be explaining everything from the ground up.

To be clear, this book goes into deep detail. We're going to dig into exception-safety, pointer aliasing, memory models, and even some type-theory. We will also be spending a lot of time talking about the different kinds of safety and guarantees.