diff --git a/unsafe-rust/presentation.tex b/unsafe-rust/presentation.tex index bfc39c02f6e7d8157a5bca2b430df4b7c143d3e7..008727a6faca7de18996f4db88bac99c042a7107 100644 --- a/unsafe-rust/presentation.tex +++ b/unsafe-rust/presentation.tex @@ -35,7 +35,7 @@ The safe/unsafe boundary can be weaponized though! \end{frame} \begin{frame}{The unsafe superpowers} -What can I do with unsafe Rust? +What can I do with unsafe Rust? (exhaustive list) \begin{itemize} \item Dereference a raw pointer \item Access fields of a union @@ -48,6 +48,7 @@ What can I do with unsafe Rust? \end{itemize} \pause Raw pointers need not respect the borrow rules... + \pause \emph{... but the references they dereference to do!} \end{frame} @@ -60,6 +61,7 @@ Raw pointers need not respect the borrow rules... \item \emph{The ``pitch to management`` version}: safe Rust means you will never need to worry about data races. \end{itemize} + \pause \emph{Reality}: safe Rust means your binary will not execute a data race, \textit{whatever it takes}. \end{frame} @@ -75,7 +77,8 @@ Raw pointers need not respect the borrow rules... \includegraphics[width=40ex]{screenshot.png} \end{center} - \emph{Reality}: Unsafe, C{+}{+}-style code often \emph{undefined behavior} in Rust. + \pause + \emph{Reality}: Unsafe, C{+}{+}-style code often results in \emph{undefined behavior} in Rust. \end{frame} \begin{frame}{Myths around unsafe Rust}