Skip to content

WIP documents for memory interface and value domain #175

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 12 commits into from
Aug 9, 2019

Conversation

RalfJung
Copy link
Member

@RalfJung RalfJung commented Jul 25, 2019

This also resolves #40. I concede to the majority opinion that the 4 terms in question are "value", "place", "value expression" and "place expression".

EDIT: Oh, I should also mention: just like the other WIP document, this is basically my personal proposal / opinion; I was hoping for a review to increase clarity but I do not think we should strive for consensus on the opinions expressed in those documents.

@RalfJung
Copy link
Member Author

Wow, so much feedback so quick! Thanks a lot. I hope I can go over it tonight.

One thing I should have mentioned: the part in the glossary is hopefully uncontroversial, we should agree on it for merging. The "WIP" part is, just like the other WIP document, basically my personal proposal / opinion; I was hoping for a review to increase clarity but I do not think we should strive for consensus on the opinions expressed in those documents.

@RalfJung
Copy link
Member Author

RalfJung commented Jul 25, 2019

Okay, I think I responded to all comments and edited the documents accordingly. Thanks a ton for all your feedback!

@RalfJung RalfJung changed the title Define value, place representation; WIP documents for memory interface and value domain WIP documents for memory interface and value domain Jul 25, 2019
We define the `Byte` type as follows, where `Pointer` will later be instantiated with the `Memory::Pointer` associated type.

```rust
enum Byte<Pointer> {
Copy link
Member Author

@RalfJung RalfJung Jul 25, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe Byte is not a good name for this, as it can be viewed as re-defining the term. I am basically starting from "a byte is what gets stored at a memory address", but other people might think "a byte is 8 bits" or "a byte is an integer in 0..256", and then this type here makes no sense. It turns out that matching all these definitions at once is just not possible, though.

@RalfJung RalfJung mentioned this pull request Jul 26, 2019
@RalfJung
Copy link
Member Author

RalfJung commented Aug 9, 2019

It's been two weeks, and this is just a WIP document. Any objections to merging?

@Centril
Copy link
Contributor

Centril commented Aug 9, 2019

Let's do it!

@RalfJung RalfJung merged commit 09c0f97 into rust-lang:master Aug 9, 2019
@RalfJung RalfJung deleted the memory-interface branch August 9, 2019 11:49
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants