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

Does not build on nightly due to transitive dependence on ahash #1645

Closed
ysimonson opened this issue Mar 1, 2024 · 7 comments
Closed

Does not build on nightly due to transitive dependence on ahash #1645

ysimonson opened this issue Mar 1, 2024 · 7 comments

Comments

@ysimonson
Copy link

Bug Report

Version

tonic v0.11.0

Platform

ubuntu

Description

Tonic v0.11.0 will not build on nightly, due to a transitive dependency on ahash v0.7.8 which relies on feature(stdsimd). This feature was removed in early Feb nightly builds.

Dependency graph of a project that uses tonic v0.11:

$ cargo tree -i ahash          
ahash v0.7.8
└── hashbrown v0.12.3
    ├── indexmap v1.9.3
    │   └── tower v0.4.13
    │       ├── axum v0.6.20
    │       │   └── tonic v0.11.0
    │       │       ├── ...
    │       └── tonic v0.11.0 (*)
    └── internment v0.7.4
        └── ...
@ysimonson
Copy link
Author

It looks like newer versions of ahash fix this issue: tkaitchuck/aHash#200 (comment)

@tottoto
Copy link
Collaborator

tottoto commented Mar 1, 2024

It seems to be caused by internment which enables hashbrown's ahash feature.

@ysimonson
Copy link
Author

AIUI those are independent; ie in order to fix my project it would not suffice to remove internment, because tonic also pulls in the bad version of ahash.

@tottoto
Copy link
Collaborator

tottoto commented Mar 2, 2024

As tonic does not depend on ahash crate, tonic itself does not pull ahash.

@ysimonson
Copy link
Author

Tonic depends on axum, which depends on tower, which depends on indexmap, which depends on hashbrown.

@tottoto
Copy link
Collaborator

tottoto commented Mar 3, 2024

Tonic depends on axum, which depends on tower, which depends on indexmap, which depends on hashbrown.

Yes, up to this point, it is as described in the dependency tree.

@LucioFranco
Copy link
Member

I would recommend pinning your nightly version if you run into build issues, tonic does not guarantee building on nightly.

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

3 participants