Don't enable euclid's std/libm features#481
Conversation
The `euclid` feature is only intended for conversions (see linebender#463) Therefore, if our users are using it, they should be enabling the correct features themselves Related to linebender#463 This has the side-effect of working around rust-lang/cargo#10801 (but that is not the motivation for this change)
Actually, I'm not sure about this since both kurbo and euclid need either std or libm to compile. If we don't forward kurbo's choice to euclid, we force them to specify both...
That is exactly the point. We are not meaningfully providing access to euclid; we don't re-export it for example. The feature only exists for interop between Kurbo and Euclid. Because as soon as they removed their dependency on Kurbo (or one of their users tried to use a feature combination where they didn't depend on Kurbo), their program would fail to compile. Now separately, the impact this has on CI is extremely painful (because of rust-lang/cargo#11467). And so that would be a reason not to do this, unless @xStrom has some bright idea here (other than the |
|
For the CI I think we should just ignore euclid and do separate step that checks euclid with proper features.
We have a lot of that in servo. |
|
I understand and sympathize with the point that as Kurbo's use of However, I think the practical cost of this change is too high. The CI impact hints at it, but isn't my main concern. Instead, it is the breakage of simply doing Also, I would assume that in practice Kurbo enabling Daniel, perhaps you have some additional practical motivations for doing this change? That would be very interesting! However, if it is mostly about the conceptual question of Kurbo not influencing the choice, then I'd advocate for us living with that sin and enjoying the ergonomical benefits of PS. This whole mess really should be solved by Cargo so that we wouldn't need a |
I was planning on documenting the Cargo features which Kurbo has (because our current doc is incomplete), and so when I coincidentally ran into this from #kurbo > ✔ `euclid` in kurbo 0.11.3, I thought I'd give it a go. |
The
euclidfeature is only intended for conversions. Therefore, if our users are using it, they should be enabling the correct features themselves.Related to #463
This has the side-effect of working around rust-lang/cargo#10801 (but that is not the motivation for this change)