[swift-evolution] TrigonometricFloatingPoint/MathFloatingPoint protocol?

Michael Ilseman milseman at apple.com
Tue Aug 1 12:20:47 CDT 2017

> On Aug 1, 2017, at 8:14 AM, Taylor Swift via swift-evolution <swift-evolution at swift.org> wrote:
> I’ve noticed from this and older threads that everyone agrees on what core libraries we want, but they never actually get built. Perennial requests seem to be
> - RNG and cryptography library (CryptoSwift could be a good base for this)

A new implementation of crypto is probably a very bad idea. A blessed wrapping around the platform’s preferred implementation of crypto, however, is certainly needed.

> - Generic Math library/Vector library

This is pretty compelling.

> - Basic data structures (Tree, Balanced Tree, Heap, Queue, SkipList, graphs, etc)

Which flavor/implementation of tree, balanced tree, heap, graphs are desirable here? The desirability of many of these structures is often dependent on which of many competing tradeoffs were made. Implementation details can dramatically shape the general applicability of a data structure.

For example, it might make sense to adopt something similar to https://github.com/lorentey/BTree as a general underlying representation for some kinds of higher level collections (or the mechanisms to easily adapt them).

> - Modern DateTime library

Foundation provides many of these, though I’m sure there are always opportunities for improvement. Do you see a specific need that cannot be addressed with improvements to corelibs-foundation? There’s a large amount of domain expertise in Foundation and they are pretty active on the mailing lists.

> - Modern String processing toolkit

This is a huge gap in Swift’s current offerings, and I’m personally invested in improving the situation here. At the risk of hijacking this thread, do you have a good bullet list of the kinds of facilities you imagine useful? More specifically (and to keep the discussion scoped), are there any tools beyond something like good language support for regular expression matching and substitutions?

> - 2D Graphics library (similar to cairo)
> - Windowing/UI library

By this, do you mean cross-platform pure Swift rethinks? This is certainly interesting, but a pure Swift rethink is likely a lower priority than exposing bindings for existing cross-platform approaches (e.g. you mentinoed cairo). Like crypto, it might make sense to establish blessed wrappers/apinotes/overlays on top of tried-and-true open source offerings.

> I think David Turnbull tried to get something like this started years back but it fizzled out pretty quick, probably because the Swift foss community was much smaller back then. Time to try again?
> On Tue, Aug 1, 2017 at 8:29 AM, Georgios Moschovitis <george.moschovitis at icloud.com <mailto:george.moschovitis at icloud.com>> wrote:
> > That's what's happened with the Server APIs Project
> > https://swift.org/server-apis/ <https://swift.org/server-apis/>
> >
> > I would like to see more of this, and math/BigNum seems like a good candidate.
> >
> > Another is a modern date/time package, standing on the shoulders of
> > https://jcp.org/en/jsr/detail?id=310 <https://jcp.org/en/jsr/detail?id=310> and similar.
> + 1
> I would also love to see standard implementation of Graph data structures, at least some common protocols.
> Dunno why this versatile data structure is not included in standard libraries (similar to Map/Dictionary), Set, etc.
> -g.
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170801/886fedc4/attachment.html>

More information about the swift-evolution mailing list