Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Sorry for the churn of effectively reverting #142! Our reasoning:
In the glorious sparkly far future, when spirv-std is effectively merged into std and everything is stable and unchanging, it makes sense for glam to depend on spirv-std, and for spirv-std to be completely agnostic. It is called spirv-std, after all, and things should depend on it, rather than the other way around. However, today is not the glorious sparkly far future, and there are very real issues caused by the speed at which spirv-std (and rustc_codegen_spirv) is changing. We were too optimistic, and realized after a couple months of dealing with the situation that the old system was way better. For example, if a user depends on rust-gpu HEAD, but references a glam version that isn't referencing back to the same version of rust-gpu, really difficult to diagnose problems occur. Of course, cargo patches exist, and is what we've been using, but it's all just a mess and it'd be nice if it "just worked", always. Having to update glam every time we make a rust-gpu release is also tough, and it'd be super nice if we didn't have to.
So for now, we'd like to flip the dependency arrow again, and make spirv-std depend on glam. It'd still be fully generic and accepting of any vector library, basically all that's changing is moving these trait impls to spirv-std (perhaps behind a glam feature flag), and other vector libraries could still implement these traits.
On glam's side, this is kinda nice because stable semvers depending on alpha versions of crates is... I don't think it's against semver, but it's certainly pretty sketchy, and it's nice to just avoid that weirdness entirely.