Paged Out! is a new experimental (one article == one page) free magazine about programming (especially programming tricks!), hacking, security hacking, retro computers, modern computers, electronics, demoscene, and other similar topics.
Rusts type system requires that there only ever is one mutable reference to a value or one or more shared references. What happens when you need multiple references to some value, but also need to mutate through them? We use a trick called interor mutability: to the outside world you act like a value is immutable so multiple references are allowed. But internally the type is actually mutable. All types that provide interior mutability have an UnsafeCell at their core. UnsafeCell is the only primitive that allows multiple mutable pointers to its interior, without violating aliasing rules. The only way to use it safely is to only mutate the wrapped value when there are no other readers. No, the garantee has to be even stronger: we can not mutate it and can not create a mutable reference to the wrapped value while there are shared references to its value. Both the book and the std::cell module give a good alternative explanation of interor mutability. What are some patterns that have been developed to use interior mutability safely? How do multithreaded synchronization primitives that provide interior mutability follow similar principles?
This series is likewise designed to help visionary friends, but where his friends were living off-the-grid, my friends are creating the programming environments of the future. This series is democratizing access to tools one-step removed. These reviews are for the makers of tools, those that are pushing our computational interfaces forward.
- C and C++
- Architecture, Design Patterns and Refactoring
- Skills & Tools
- Agile Software Development and Scrum
- Operating Systems and Networking
- Embedded Systems and Computer Architecture
- Version Control
- Mechanical Engineering
N. Tran, T. Tran, H. Matthies, G. Stavroulakis, and M. Staat. Proceedings of the VII European Congress on Computational Methods in Applied Sciences and Engineering (ECCOMAS Congress 2016), page 3007--3019. Athens, Institute of Structural Analysis and Antiseismic Research School of Civil Engineering National Technical University of Athens (NTUA) Greece, (2016)