Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Modifications to Rust #49

Open
ckaran opened this issue Jan 3, 2021 · 2 comments
Open

Modifications to Rust #49

ckaran opened this issue Jan 3, 2021 · 2 comments

Comments

@ckaran
Copy link
Collaborator

ckaran commented Jan 3, 2021

I'm starting this issue so that we can track what modifications that rust as a language would require in order to safely support generic field projects. Feel free to add/modify as needed.

  • Pointer provenance - Right now, we don't have a way of stating that a given pointer is a part of a larger object; the most we can do is warn the user that if that is untrue, then UB might happen. It would be nice if the language had some method of guaranteeing that a given pointer is actually a part of a given type.
@RustyYato RustyYato changed the title Modiciations to rust Modifications to Rust Jan 4, 2021
@RustyYato
Copy link
Owner

A nice to have is Rust auto generating Field types with some syntax. This would likely be more efficient than using a proc-macro and easier to use

@ckaran
Copy link
Collaborator Author

ckaran commented Jan 4, 2021

A nice to have is Rust auto generating Field types with some syntax. This would likely be more efficient than using a proc-macro and easier to use

This might also help with the pointer provenance problem as the only fields whose provenance we need to worry about are those that are being projected, which may simplify compiler checks somewhat (no clue if this is true or not, it just seems like it might be possible).

@RustyYato RustyYato pinned this issue Jan 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants