[swift-evolution] [pitch] remove global sqrt<T: FloatingPoint>

Chris Lattner clattner at apple.com
Mon Jul 11 18:10:21 CDT 2016

> On Jul 11, 2016, at 4:00 PM, Stephen Canon <scanon at apple.com> wrote:
>>> I’m fine with placing a generic implementation in Darwin.C.  I would include that as part of this change.  Post Swift 3, we should also have a Swift math module that provides the usual sqrt<T: MathTypeOrWhatever>(_: T) operations.
>>> However, I’m not totally convinced we want every math operation we think of in the global namespace *by default*, and I’d like to avoid painting ourselves into a corner where sqrt( ) just sticks out like a sore thumb in the base stdlib for all time.
>> I’m not sure what problem you’re trying to solve.  I think you agree that people should be able to write a generic function and use “sqrt(x)” where x is some FloatingPoint bound type, right?  If so, is it just the concern about it being injected into every program that imports (e.g.) Foundation?
> Right, this is only about the concern that it's injected into every program that doesn’t even import anything, under the assumption that folks may push back against doing that for *every* function in a future Math module.
> This is a very minor issue, which would only change anything in the short term for most users, and which has already produced more discussion than I thought possible =)

Ah, in that case, I agree that putting it into the overlay for Darwin.C (instead of in the stdlib) makes sense.


More information about the swift-evolution mailing list