On Tue, Aug 1, 2017 at 1:20 PM, Michael Ilseman <[email protected]> wrote:
> > > On Aug 1, 2017, at 8:14 AM, Taylor Swift via swift-evolution < > [email protected]> 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. > Good point, but then again CryptoSwift has already demonstrated a demand for a new Swift implementation and we wouldn’t be starting from scratch. > > - 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). > > The idea wouldn’t be to cover every possible permutation of these data structures, but provide implementations for the most commonly used varieties. > - 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. > I’d be happy just with moving the datetime functionality from Foundation into its own module. I’m really not a fan of the monolith pattern. > > - 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? > > Pretty basic but most of what you have to import Foundation to do right now, plus a few extras. - trim whitespace from a string - string formatting - round float to n decimal places - pad float to n 0s - left/right/center pad string with spaces - locale aware capitalization - defined CharacterSetsfor things like alphabeticals, numerics, whitespace chars, etc. - regex support would be nice - platform-abstracted terminal colors would be nice plus a lot of things I’m probably forgetting > - 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. > Currently, calling Cairo code from Swift is extremely problematic for reasons involving memory ownership and object lifetimes. Nothing an experienced Swift dev can’t get around, but definitely far too ugly a hack for such a common task. The C library is simply incompatible with Swift’s memory safety model. > > 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 < > [email protected]> wrote: > >> > That's what's happened with the Server APIs Project >> > 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 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 > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
