dimforge / alga

Abstract algebra for Rust.
194 stars 39 forks source link

Indirectly update to libm 0.2 #93

Closed cuviper closed 4 years ago

cuviper commented 4 years ago

Unfortunately, libm 0.2 removed the F32Ext and F64Ext extension traits, which makes it harder to choose the different methods. However, this was already dealt with in rust-num/num-traits#144 for Float, so we can piggy-back on that here, no longer using libm directly.

sebcrozet commented 4 years ago

Thanks!

cuviper commented 4 years ago

I'm curious, why did you label this a breaking change?

sebcrozet commented 4 years ago

Because of the change of version of num-traits. For example if for some arcane reasons someone has a foo crate with a dependency like num-traits = { version = "=0.2.10" }, the traits originating from num-traits used by alga won't be compatible with those used in foo.

cuviper commented 4 years ago

Well, cargo won't resolve multiple semver-compatible crates in the dependency tree, so there can be only one num-traits 0.2.x at all. If a user has pinned num-traits like that, they just won't have a newer alga available to them. I think it would be unusual to treat that as a breaking change on your part.

sebcrozet commented 4 years ago

Well, cargo won't resolve multiple semver-compatible crates in the dependency tree

Ah, good to know! Let's not mark this as breaking change then. Thank you for the explanation.