{"action":"created","issue":{"url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/35","repository_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines","labels_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/35/labels{/name}","comments_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/35/comments","events_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/35/events","html_url":"https://github.com/rust-rfcs/unsafe-code-guidelines/issues/35","id":369230436,"node_id":"MDU6SXNzdWUzNjkyMzA0MzY=","number":35,"title":"Deterministic (but undefined) layout","user":{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"labels":[{"id":1040963513,"node_id":"MDU6TGFiZWwxMDQwOTYzNTEz","url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/labels/active%20discussion%20topic","name":"active discussion topic","color":"000000","default":false},{"id":1034410309,"node_id":"MDU6TGFiZWwxMDM0NDEwMzA5","url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/labels/topic-repr","name":"topic-repr","color":"dbb51e","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-10-11T17:38:55Z","updated_at":"2018-10-11T19:42:57Z","closed_at":null,"author_association":"COLLABORATOR","body":"From #31: Can we say that layout is some deterministic function of a certain, fixed set of inputs? This would allow you to be sure that if you do not alter those inputs, your struct layout would not change, even if it meant that you can't predict precisely what it will be. For example, we might say that struct layout is a function of the struct's generic types and its substitutions, full stop -- this would imply that any two structs with the same definition are laid out the same. This might interfere with our ability to do profile-guided layout or to analyze how a struct is used and optimize based on that. (Some would call that a feature.)\r\n\r\nAlso, this presumably applies to enums as well as other types.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/comments/429092389","html_url":"https://github.com/rust-rfcs/unsafe-code-guidelines/issues/35#issuecomment-429092389","issue_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/35","id":429092389,"node_id":"MDEyOklzc3VlQ29tbWVudDQyOTA5MjM4OQ==","user":{"login":"the8472","id":1065730,"node_id":"MDQ6VXNlcjEwNjU3MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/1065730?v=4","gravatar_id":"","url":"https://api.github.com/users/the8472","html_url":"https://github.com/the8472","followers_url":"https://api.github.com/users/the8472/followers","following_url":"https://api.github.com/users/the8472/following{/other_user}","gists_url":"https://api.github.com/users/the8472/gists{/gist_id}","starred_url":"https://api.github.com/users/the8472/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/the8472/subscriptions","organizations_url":"https://api.github.com/users/the8472/orgs","repos_url":"https://api.github.com/users/the8472/repos","events_url":"https://api.github.com/users/the8472/events{/privacy}","received_events_url":"https://api.github.com/users/the8472/received_events","type":"User","site_admin":false},"created_at":"2018-10-11T19:42:57Z","updated_at":"2018-10-11T19:42:57Z","author_association":"NONE","body":"Well, it would still be determined by some of its generic parameters, `T` in that case, obviously each concrete T can result in different layouts even though it's always the same generic fields being present."}}
{"actor":{"display_login":"the8472"}}