> On May 12, 2016, at 7:00 AM, Ben Rimmington via swift-evolution > <swift-evolution@swift.org> wrote: > > <https://github.com/apple/swift-evolution/blob/master/proposals/ > 0088-libdispatch-for-swift3.md> > > ## Type Names > > I was going to suggest unprefixed type names, but having to qualify both > `Dispatch.Data` and `Foundation.Data` would be an issue. If libdispatch > had originally been part of Foundation, you'd need prefixes anyway: > > * DispatchQueue > * NotificationQueue > * OperationQueue > > ## Quality of Service > > Should argument labels and type names match those in Foundation? > > * qos: => qualityOfService: > * DispatchQoS => DispatchQualityOfService > > Could there be a shared `Swift.QualityOfService` enum? > > * QOS_CLASS_DEFAULT = 0x15 > * NSQualityOfServiceDefault = -1 > > The `.unspecified` QoS is not defined in NSQualityOfService. > Would an optional QoS parameter (defaulting to nil) be better? > > ## Time > > The `dispatch_time` function uses a nanoseconds delta, so the operator > overloads taking `seconds: Double` might be ambiguous at the call site. > You could try changing the associated value types of your enum. > > ``` > enum DispatchTimeInterval { > case seconds(Double) // changed from `Int` > case milliseconds(Int64) // changed from `Int` > case microseconds(Int64) // changed from `Int` > case nanoseconds(Int64) // changed from `Int` > } > > let _ = DispatchTime.now + 3.5 // ambiguous?
Are you talking about ambiguity at a compiler level, or in human-reading? The other four examples are an addition with an enum type, the first one is a double. There’s no compiler ambiguity here. > let a = DispatchTime.now + .seconds(3.5) > let b = DispatchTime.now + .milliseconds(3_500) > let c = DispatchTime.now + .microseconds(3_500_000) > let d = DispatchTime.now + .nanoseconds(3_500_000_000) > ``` > > Is the `DispatchTime.now` in your example a type property? DispatchTime.now() is a function that returns the current time. The subsequent examples are typos (now() became a method quite late in the proposal’s development) and I’ll fix it up before pushing a v2 proposal that’s fixed up a lot of the typos that arose from late changes. > > ## Data > > Should the `DispatchData.append` methods have `contentsOf:` labels? > Or could it conform to the RangeReplaceableCollection protocol? > > ## Queues > > My suggestions for the async/sync methods: > > * enqueue(...) > * enqueueAndWaitUntilFinished(...) > > -- Ben > > > _______________________________________________ > 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