> 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
