rust-lang / rust-memory-model

Collecting examples and information to help design a memory model for Rust.
Apache License 2.0
126 stars 15 forks source link

This repository is deprecated and the content is being triaged to move to the new location. For the current discussions and issues, please head to the Unsafe Code Guidelines repository.

OLD README

This repository is intended to help us develop a coherent and clear set of "unsafe code guidelines" for Rust. The goal of these guidelines is to make it clear what kinds of actions unsafe can legally take and what it cannot.

A crucial part (but not the only part) of these guidelines is a "memory model" that tries to define what kind of aliasing and accesses unsafe code can perform (this in turn implies limitations on the transformations and optimizations the compiler can do).

We're still in the 'data gathering' stage of this effort. Most of the action is taking place in the GitHub issues attached to this repository.

There are issues that describe numerous kinds of things, tagged with K- labels:

Files

The files in the repository are from a somewhat older phase and ought to be migrated to issues. =)

Contributions

All the contents of this repository are licensed under the same terms as the Rust source itself (MIT/Apache2). Participation in the repository is assumed to imply agreement with these terms.