<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 28, 2016, at 8:54 PM, David Turnbull via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I was thinking about the requirements to make this happen. It only needs someone to do the initial organization. So I created a GitHub organization and put up a couple projects. The Matrix4 project is feature-complete. The Complex project is just a foothold.<div class=""><br class=""></div><div class="">Now we need more projects. The readme in the contrib project has information about getting your project added.</div></div></div></blockquote><div><br class=""></div><div>In your readme, you mention random number generation as a potential project. It’s worth mentioning that Apple has a really nice set of RNG classes for Swift already, but it’s hidden away in GameplayKit. It may be a little off-topic for this list, but I would love to see that moved from GameplayKit to Foundation and become a part of cross-platform Swift.</div><div><br class=""></div>—CK</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><div class=""><a href="https://github.com/swift-breeze" class="">https://github.com/swift-breeze</a></div><div class=""><br class=""></div><div class="">-david<br class=""></div><div class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Jan 26, 2016 at 3:51 PM, Matthew Johnson via swift-evolution <span dir="ltr" class="">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class="">+1.&nbsp; I have already suggested that we have a space for libraries that get reviewed by the community but are distributed by SPM rather than being part of stdlib and corelibs.<div class=""><div class=""><div class=""><br class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 26, 2016, at 5:48 PM, Howard Lovatt via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class="">This is a good idea. It will be a lot easier with the module system, particularly if that system is searchable so that you have a chance of finding that someone has already written what you want.<br class=""><br class="">On Wednesday, 27 January 2016, Trent Nadeau via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr" class="">This is similar to Rust's nursery (<a href="https://github.com/rust-lang-nursery" target="_blank" class="">https://github.com/rust-lang-nursery</a>) that contains commonly used libraries (logging, UUIDs, etc). These are under Rust's umbrella but aren't part of the standard library and can be versioned separately but still go through a similar stdlib process. If libraries in the nursery become very widely used, then an RFC can come in requesting for it to be added to the stdlib, and most libraries need to be in the nursery before they can be added to the stdlib.<div class=""><br class=""></div><div class="">I think an approach like that would work well for Swift.</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Jan 26, 2016 at 6:32 PM, Tino Heth via swift-evolution <span dir="ltr" class="">&lt;<a class="">swift-evolution@swift.org</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto" class=""><div class=""><span class=""></span></div><div class=""><div class=""><span class=""></span></div><div class="">There have been several threads to add specific functions or types to the stdlib:<div class="">-&nbsp;<span style="font-family:'Helvetica Neue'" class="">Either in the Swift Standard Library</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">-&nbsp;</span><span style="font-family:'Helvetica Neue'" class="">Proposal: Add scan, takeWhile, dropWhile, and iterate to the stdlib</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">- Higher Kinded Types (Monads, Functors, etc.)</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">-&nbsp;</span><span style="color:rgb(76,76,76);font-family:'Helvetica Neue'" class="">Adding a new filter method which returns 2 arrays</span></div><div class=""><span style="color:rgb(76,76,76);font-family:'Helvetica Neue'" class="">-&nbsp;</span><span style="font-family:'Helvetica Neue'" class="">Add replace(_:with:) function to the stdlib</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">- map-like operation that returns a dictionary</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">-&nbsp;</span><span style="font-family:'Helvetica Neue'" class="">Rectangles and other common structures.</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">-&nbsp;</span><span style="font-family:'Helvetica Neue'" class="">Add zip2WithNilPadding function</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">-&nbsp;</span><span style="font-family:'Helvetica Neue'" class="">Add types BufferedSequence, BufferedGenerator</span></div><div class=""><font face="Helvetica Neue" class="">-&nbsp;… (guess there are some that I missed&nbsp;— I didn't look at last years threads at all).</font></div><div class=""><font face="Helvetica Neue" class=""><br class=""></font></div><div class=""><font face="Helvetica Neue" class="">Afair, none of those ideas turned into real proposals, and I think that keeping stdlib small is a good goal.</font></div><div class=""><font face="Helvetica Neue" class=""><br class=""></font></div><div class=""><font face="Helvetica Neue" class="">Nonetheless, there are plenty of data structures&nbsp;and algorithms that will be used in many places by many different teams, and each of them might write its own implementation. That's imho no big problem for algorithms, but for types, it will most likely lead to real annoyance.</font></div><div class=""><font face="Helvetica Neue" class=""><br class=""></font></div><div class=""><font face="Helvetica Neue" class="">I hope that we will soon have a great package manager for Swift, but I don't think that will solve this issue completely:</font></div></div><div class=""><font face="Helvetica Neue" class="">I wouldn't import a big third-party framework just because a tiny function like "dropWhile" could make my code more elegant...</font></div><div class=""><font face="Helvetica Neue" class=""><br class=""></font></div><div class=""><font face="Helvetica Neue" class="">Of course, some widely accepted libs might rise and improve interoperability, but it is hard to predict how our ecosystem will evolve, and you don't have to wait for the future to see the what could happen when there is no common base</font><font face="Helvetica Neue" class="">:</font></div><div class=""><span style="font-family:'Helvetica Neue'" class="">Just take a look at SCNQuaternion, GLQuaternion and CMQuaternion.</span></div><div class=""><br class=""></div><div class=""><span style="font-family:'Helvetica Neue'" class="">Instead of asking to pollute stdlib with stuff like 3d transformations, I'd prefer a set of general purpose libraries under supervision by the Swift team:</span></div><div class=""><span style="font-family:'Helvetica Neue'" class="">It could be a great way for "outsiders" to get into Swift development, and most likely wouldn't put to much stress and responsibility on the shoulders of each "manager".</span></div><div class=""><font face="Helvetica Neue" class="">It also could take pressure from the stdlib (and this mailinglist :)</font></div><div class=""><font face="Helvetica Neue" class=""><br class=""></font></div><div class=""><font face="Helvetica Neue" class="">Beside fields of application (graphics, images, music, algebra, statistics, pattern matching, machine learning, graph theorie... whatever raises enough interest), there could also be libraries to support concepts like functional programming.</font></div><div class=""><font face="Helvetica Neue" class=""><br class=""></font></div><div class=""><font face="Helvetica Neue" class="">Best regards,</font></div><div class=""><font face="Helvetica Neue" class="">Tino</font></div></div><div class=""><br class=""></div></div><br class="">_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
<br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class="">Trent Nadeau</div>
</div></div>
</blockquote><br class=""><br class="">-- <br class="">&nbsp; -- Howard.<br class=""><br class="">
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div></div></div></div><br class="">_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
<br class=""></blockquote></div><br class=""></div></div></div></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>