> On Jul 11, 2016, at 6:55 PM, Chris Lattner <[email protected]> wrote:
> 
> On Jul 11, 2016, at 3:52 PM, Stephen Canon <[email protected]> wrote:
>>>> I would also plan to provide this and other math.h-ish globals in a future 
>>>> (post swift 3) Math module.
>>> 
>>> I’m very concerned with this.  Why not do exactly the opposite?  Remove the 
>>> concrete operations from Darwin.C and replace it with a single generic one?
>>> 
>>> The rationale for using global functions here is that they are “terms of 
>>> art” in numerics nomenclature.  If they aren’t, then we should consistently 
>>> eradicate all the global operations:
>>> 
>>>     assert(Double.pi.sine == 0.0)
>>> 
>>> Is this the direction you want to go?
>> 
>> No, definitely not.
>> 
>> 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 =)

– Steve
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to