<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Hi Daniel,</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks for the reply. It seems that maybe this should be a collaboration between the swift compiler and the build system. I&#39;m thinking something along the lines of the swift compiler being able to print out a list of file-level dependencies that the build system can use to decide whether to compile files or reuse compiled objects?</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">If the swift compiler could produce as a side effect of the compilation a list of files (with checksums) that it used, in theory it would be possible to checksum those files on another compilation (in a different machine) and reuse the object files right?</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Does that seem reasonable/doable?</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">-Oscar</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-- <div><b>Oscar Bonilla</b></div><div>Staff Software Engineer</div><div>Tools Group</div><div><br></div><div><img src="https://snap.licdn.com/microsites/content/dam/brand/site/brand-assets/li-logo-sig.png"><br></div><div><br></div><div><a href="mailto:obonilla@linkedin.com" target="_blank">obonilla@linkedin.com</a></div><div><span style="margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:17px;font-family:Helvetica,Arial,sans-serif;font-size:13px;vertical-align:middle;color:rgb(102,105,106);display:inline-block;zoom:1"><a href="http://linkedin.com/in/" target="_blank">linkedin.com/in/</a></span><span style="margin:0px;padding:0px;border:0px;font-stretch:inherit;line-height:17px;font-family:Helvetica,Arial,sans-serif;font-size:13px;vertical-align:middle;color:rgb(51,51,51);display:inline-block;zoom:1">seeob</span><br></div></div></div></div>
<br><div class="gmail_quote">On Tue, Sep 27, 2016 at 12:47 PM, Daniel Dunbar <span dir="ltr">&lt;<a href="mailto:daniel_dunbar@apple.com" target="_blank">daniel_dunbar@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi Oscar,<div><br></div><div>Nothing exists like that for Swift yet -- it is non-trivial for several reasons, the big two are:</div><div>1. The Swift compilation model relies on global information for a module, and needs to see all the sources. This process is currently embedded in the `swiftc` driver which would need to be aware of how to manage this process (or factored into a library API that a client able to manage the distribution could interact with).</div><div>2. The Swift compilation model also heavily leverages the ability to import Clang modules, which means that it *also* needs to be able to see large amounts of C headers, in modular model not a header preprocessing model. The distribution mechanism would also need to be aware of this.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div> - Daniel</div></font></span><div><br><div><blockquote type="cite"><span class=""><div>On Sep 27, 2016, at 11:09 AM, Oscar Bonilla via swift-dev &lt;<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>&gt; wrote:</div><br></span><div><div><div class="h5"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Hello swift developers,</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I was wondering if any of you knows anything about something</div><div class="gmail_default" style="font-family:verdana,sans-serif">like ccache and/or distcc for swift.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Basically, what I want is to speed up compiles by caching the result</div><div class="gmail_default" style="font-family:verdana,sans-serif">(like ccache does) and then reusing the compilation results across</div><div class="gmail_default" style="font-family:verdana,sans-serif">multiple machines.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Does anything like that exist for swift? I looked at ccache but they</div><div class="gmail_default" style="font-family:verdana,sans-serif">don&#39;t support swift and I couldn&#39;t find anything on distcc either.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">-Oscar</div>
</div></div></div><span class="">
______________________________<wbr>_________________<br>swift-dev mailing list<br><a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-dev" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-dev</a><br></span></div></blockquote></div><br></div></div></blockquote></div><br></div>