+1000 to this.

> On Jul 31, 2017, at 11:22 AM, Hooman Mehr via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Maybe we need more than one level of standard library: The core (which is 
> most of what we have now (but maybe not all of it) and multiple opt-in 
> standard modules for hash functions, math, specialized data structures, etc.
> 
>> On Jul 31, 2017, at 11:10 AM, Taylor Swift <kelvin1...@gmail.com 
>> <mailto:kelvin1...@gmail.com>> wrote:
>> 
>> I’m not sure why only the stdlib is inlineable and specializable, but I 
>> believe it has something to do with ABI. I’m not an ABI expert though. I 
>> strongly disagree that a Swift Math library should be delegated to a third 
>> party. Math is “common” enough that there should really only be one 
>> “standard” implementation of it, under the direction of the Swift Project; 
>> we don’t want 5 competing third party Vector standards.
>> 
>> On Mon, Jul 31, 2017 at 2:02 PM, Hooman Mehr <hoo...@mac.com 
>> <mailto:hoo...@mac.com>> wrote:
>> I know. I hear you. I have some special arrangmnents to keep such things 
>> manageable, and I am not happy about how things stand right now.
>> 
>> What I am hoping to open up stdlib special compiler mode to other 
>> (low-level) libraries and also letting such libraries gain optimizations 
>> similar to stdlib when included in a project.
>> 
>> So, instead of putting things in stdlib, I want stdlib’s special privileges 
>> being made available to a certain category of third-party or internal 
>> modules.
>> 
>> 
>>> On Jul 31, 2017, at 10:54 AM, Taylor Swift <kelvin1...@gmail.com 
>>> <mailto:kelvin1...@gmail.com>> wrote:
>>> 
>>> Isn’t the point of standard inlineable library module to prevent the need 
>>> to copy and paste code like this into every project? Currently I have a 
>>> “math.swift” file I copy and paste into all of my projects, and since I 
>>> occasionally update it, there exists about 15 different versions of it 
>>> floating around, so I know this is not a sustainable practice.
>>> 
>>> On Mon, Jul 31, 2017 at 1:45 PM, Hooman Mehr <hoo...@mac.com 
>>> <mailto:hoo...@mac.com>> wrote:
>>> I prefer an approach that preserves how I am used to seeing math 
>>> expressions. I use this myself:
>>> 
>>> protocol FloatingPointMath: FloatingPoint
>>> {
>>>     static func sqrt(_ value: Self) -> Self
>>> 
>>>     static func sin(_ value: Self) -> Self
>>>     static func cos(_ value: Self) -> Self
>>>     static func tan(_ value: Self) -> Self
>>>     static func asin(_ value: Self) -> Self
>>>     static func acos(_ value: Self) -> Self
>>>     static func atan(_ value: Self) -> Self
>>>     
>>>     static func ln(_ value: Self) -> Self
>>>     static func log(_ value: Self, base: Self) -> Self
>>>     static func pow(_ value: Self, exponent:Self) -> Self
>>>     static func exp(_ value: Self) -> Self
>>> }
>>> 
>>> It does not pollute the global namespace and gives nice contextual 
>>> auto-completion.  And I don’t want it in the standard library: I only add 
>>> the file when I need it. (it is not a separate module for optimization 
>>> reasons).
>>> 
>>>> On Jul 31, 2017, at 10:29 AM, Taylor Swift via swift-evolution 
>>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>>> 
>>>> 
>>>> 
>>>> On Mon, Jul 31, 2017 at 1:23 PM, Adrian Zubarev 
>>>> <adrian.zuba...@devandartist.com <mailto:adrian.zuba...@devandartist.com>> 
>>>> wrote:
>>>> I’m not sure how I would feel about this. To be honest I’d avoid such 
>>>> additional changes from the stdlib, because they really don’t belong 
>>>> there. Instead some `Math` module/package would be a better fit than 
>>>> clustering everything into stdlib until we end up also adding UI stuff.
>>>> 
>>>> Furthermore, I don’t think a function would make any sense here. It really 
>>>> should be a computed property.
>>>> 
>>>> 
>>>> 
>>>> I think a standard Math module would be a good idea, but only if it 
>>>> benefits from the same inlining and specialization as the standard 
>>>> library. Also squareRoot() should be moved to the Math module if it is 
>>>> ever created.
>>>>  
>>>> Am 31. Juli 2017 um 19:03:49, Taylor Swift via swift-evolution 
>>>> (swift-evolution@swift.org <mailto:swift-evolution@swift.org>) schrieb:
>>>> 
>>>>> How would people feel about adding a protocol
>>>>> 
>>>>> protocol MathFloatingPoint:FloatingPoint
>>>>> {
>>>>>     func sin() -> Self
>>>>>     func cos() -> Self
>>>>>     func tan() -> Self
>>>>>     func asin() -> Self
>>>>>     func acos() -> Self
>>>>>     func atan() -> Self
>>>>> 
>>>>>     func ln() -> Self
>>>>>     func log(base:Self) -> Self
>>>>>     func pow(exponent:Self) -> Self
>>>>>     func exp() -> Self
>>>>> }
>>>>> 
>>>>> to the standard library? Float and Double would then be made to conform 
>>>>> by default using Swift implementations instead of having to import Glibc 
>>>>> / Darwin and writing the extensions, depending on platform.
>>>>> _______________________________________________
>>>>> swift-evolution mailing list
>>>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>>>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>>> 
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>> 
>>> 
>> 
>> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to