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

Rust 1.73 updates #298

Merged
merged 2 commits into from
Oct 6, 2023
Merged

Rust 1.73 updates #298

merged 2 commits into from
Oct 6, 2023

Conversation

Pat-Lafon
Copy link
Contributor

See commit messages

Copy link
Owner

@sampsyo sampsyo left a comment

Choose a reason for hiding this comment

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

All looks great; thanks a million as always!

@@ -14,7 +14,7 @@ keywords = ["compiler", "bril", "parser", "data-structures", "language"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
clap = { version = "4.3", features = ["derive"] }
clap = { version = "4.4", features = ["derive"] }
Copy link
Owner

Choose a reason for hiding this comment

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

It's obviously not important now, but it occurs to me that we could consider setting up a Cargo workspace to centralize dependency versions like this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can, but there are two usability issues as far as I can tell.

One I knew about previously is that if you run a cargo command at the workspace level(compared to the crate level) then it will try to union all the possible feature flags of each dependency together. This is incompatible with some of the projects that only expect a subset of the bril-rs flags(a bril* tool that doesn't expect bril-rs to be built with positions for instance).

One minor thing I just figured out is that there are other settings that previously local would be forced to be workspace wide. Specifically for brillvm it is important to have panic = "abort" lto = true set for building/linking the no_std rt library. With a workspace, this gets forced upon all of the projects which isn't ideal(but not breaking/work around-able in this case I think). rust-lang/cargo#8264 (comment)

Copy link
Owner

Choose a reason for hiding this comment

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

Makes sense! That first argument seems like sufficient reason not to do this (since bril-rs is meant to be a very configurable crate).

@sampsyo sampsyo merged commit 9e2a944 into sampsyo:main Oct 6, 2023
16 checks passed
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

Successfully merging this pull request may close these issues.

2 participants