Further reading

  • Shipping specialization: a story of soundness, available at https://aturon.github.io/blog/2017/07/08/lifetime-dispatch/. There's long been an ambition to see specialization available in stable Rust, and it's not for want of trying that it hasn't happened yet. In this blog post, Aaron Turon discusses the difficulties of specialization in 2017, introducing the Chalk logic interpreter in the discussion. Chalk is interesting in its own right, especially if you are interested in compiler internals or logic programming.
  • Maximally minimal specialization: always applicable impls, available at http://smallcultfollowing.com/babysteps/blog/2018/02/09/maximally-minimal-specialization-always-applicable-impls/. This blog post by Niko Matsakis extends the topics covered in Turon's Shipping specialization article, discussing a min-max solution to the specialization soundness issue. The approach seemed to be the most likely candidate for eventual implementation, but flaws were discovered. Happily, not unresolvable flaws. This post is an excellent example of the preRFC conversation in the Rust community.
  • Sound and ergonomic specialization for Rust, available at http://aturon.github.io/2018/04/05/sound-specialization/. This blog post addresses the issues in the min-max article and proposes the implementation discussed in this chapter. It is, as of writing this book, the most likely to be implemented, unless some bright spark finds a flaw in it.
  • Chalk, available at https://github.com/rust-lang-nursery/chalk. Chalk is really a very interesting Rust project. It is, according to the project description, a PROLOG-ish interpreter written in Rust. To date, Chalk is being used to reason about specialization in the Rust language, but there are plans to merge Chalk into rustc itself someday. The project README, as of SHA 94a1941a021842a5fcb35cd043145c8faae59f08, has a list of excellent articles on the applications of chalk.
  • The Unstable Book, available at https://doc.rust-lang.org/nightly/unstable-book/. rustc has a large number of in-flight features. The Unstable Book is intended to be a best-effort collection of these features, the justifications behind them, and any relevant tracking issues. It is well worth a read, especially if you're looking to contribute to the compiler project.
  • Zero-cost futures in Rust, available at http://aturon.github.io/blog/2016/08/11/futures/. This post introduced the Rust community to the futures project and explains the motivation behind the introduction well. The actual implementation details of futures have changed with time, but this article is still well worth a read.
  • Async / Await, available at  https://github.com/rust-lang/rfcs/blob/master/text/2394-async_await.md. RFC  2394 introduces the motivation for simplifying the ergonomics of futures in Rust, as well as laying out the implementation approach for it. The RFC is, itself, a fine example of how Rust evolves—community desire turns into experimentation which then turns into support from the compiler.

 

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.135.249