<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 Dec 9, 2015, at 2:22 PM, Jens Persson via swift-dev &lt;<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">Hi all,</div><div class=""><br class=""></div><div class="">First of all, sorry for not being able to formulate these presumably basic questions in a &nbsp;better/shorter way.</div><div class="">&nbsp;</div><div class="">Background: We're working on an app that will benefit greatly from Swift's ability to generate optimized code from relatively high level abstractions.</div><div class=""><br class=""></div><div class="">I've successfully compiled Swift from sources and observed some significant improvements in the optimizer (for details see the following forum thread, especially edit1 and edit2 of this post:</div><div class=""><a href="https://forums.developer.apple.com/thread/27204#93327" class="">https://forums.developer.apple.com/thread/27204#93327</a></div><div class="">).</div><div class=""><br class=""></div><div class="">Now I'd like to be able to use Swift built from sources from within Xcode (or at least have some way of using it with code completion and probably swiftpm), but I haven't been able to find information on how to do that.</div><div class=""><br class=""></div><div class="">Here's my journey so far:</div><div class=""><br class=""></div><div class="">1. Read the main swift repos readme.</div><div class=""><br class=""></div><div class="">2. Cloned the 9 repositories listed there (for read-only access).</div><div class=""><br class=""></div><div class="">3. Built using:</div><div class="">&nbsp; &nbsp; swift/utils/build-script -R --no-assertions --no-swift-stdlib-assertions</div><div class="">&nbsp; &nbsp; (Found out about the no-assert-flags through Twitter. Without them, the resulting compiler compiled binaries that were very slow.)</div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-size:13px" class="">3. Compiled my "performance critical" test code like this:</span></div><div class=""><span style="font-size:13px" class="">&nbsp; &nbsp; xcrun /blabla/</span>build/Ninja-Release/swift-macosx-x86_64/bin/swift -Ounchecked -gnone -whole-module-optimization main.swift</div></div></div></blockquote><div><br class=""></div><div>Note that none of the options starting with “-g" have any effect on the generated code and thus won’t affect the performance of the resulting executable.</div><div><br class=""></div><div>-- adrian</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><span style="font-size:13px" class="">&nbsp; &nbsp; (My first try was without xcrun, but then it would complain about "no such module". So I asked Twitter and got the info about using xcrun.)&nbsp;</span></div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-size:13px" class="">4. Noted significant improvements in what the optimizer was able to do with my test code (compared to when compiling it with Xcode 7.2. The compiled-from-sources-compiler produced 340 times faster code. See details in the above forum thread.)</span></div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-size:13px" class="">5. Feeling happy. Can't wait until this gets into an Xcode GM.</span></div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-size:13px" class="">6. Wish I knew more about how to build Swift from sources, so I could make my workflow more convenient, ie switching between compiling with Swift-built-from-sources, Xcode and Xcode-beta. Eg:</span></div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-size:13px" class="">- Is there a way to use the built-from-sources-version of Swift from within Xcode (can I build a toolchain or something)?</span></div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-size:13px" class="">- How do I build and use the package manager (swiftpm)? It doesn't seem to get built when I build everything(?) using the build-script as described above.</span></div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-size:13px" class="">- Can I use any of the build-presets for this, and if so will it use the --no-assertions and --no-swift-stdlib-assertions options?</span></div><div class=""><br class=""></div><div class="">My goal is to be able to have a convenient way of being able to write and compile my (performance critical) code using, switching between and comparing, the three different Swift versions in current</div><div class="">Xcode (GM),</div><div class="">Xcode-beta and</div><div class="">built-from-source.</div><div class=""><br class=""></div><div class=""><span style="font-size:13px" class="">Are the answers to these (and similar) questions plain to see in some documentation somewhere or do I have to dig around in various scripts etc and try to figure things out?&nbsp;</span></div><div class=""><br class=""></div>Thanks,<br class=""><div class="">/Jens</div><div class=""><br class=""></div></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=3N3AbZLIA0WWqHUdO4gNSs3txMzWUsYL-2BwA-2FrgSZx71TzBCFw9lRUOvRpw7V80FWJVUl3ztElvvW0X-2FeXk2tmouKdLvc4DPrzGBGxqKlZfaS933I8X8zp0hUCZm5nKF8X8EWWNTZHwsHlxFY3AEQIqWmULC-2F42NbpRRrMjy-2BTU82PPI-2BotBOLmPxjtY3CMaZXJM9o2I-2BBhn7bJFmBTIf3n5nHAy5-2FUkkAhx6WiukEak-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;" class="">
_______________________________________________<br class="">swift-dev mailing list<br class=""><a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-dev<br class=""></div></blockquote></div><br class=""></body></html>