<html><body><p><tt>swift-corelibs-dev-bounces@swift.org wrote on 02/11/2016 06:18:58 AM:<br><br>&gt; From: Drew Crawford via swift-corelibs-dev &lt;swift-corelibs-dev@swift.org&gt;</tt><br><tt>&gt; To: &quot;Daniel A. Steffen&quot; &lt;dsteffen@apple.com&gt;</tt><br><tt>&gt; Cc: swift-corelibs-dev@swift.org</tt><br><tt>&gt; Date: 02/11/2016 06:19 AM</tt><br><tt>&gt; Subject: Re: [swift-corelibs-dev] libdispatch import order / nondeterminism</tt><br><tt>&gt; Sent by: swift-corelibs-dev-bounces@swift.org</tt><br><tt>&gt; <br>&gt; On Feb 10, 2016, at 10:31 PM, Daniel A. Steffen &lt;dsteffen@apple.com&gt; wrote:</tt><br><tt>&gt; <br>&gt; having -I /usr/local/include/dispatch doesn’t seem right to me, the <br>&gt; C header include convention is all &lt;dispatch/*.h&gt; so the dispatch/ <br>&gt; directory itself should not be part of the search path. </tt><br><tt>&gt; <br>&gt; The problem is that to pick up a modulemap / swiftmodule file right <br>&gt; now in Swift, we need &quot;-I /path/to&quot; where /path/to contains <br>&gt; &quot;module.modulemap&quot; / &quot;foo.swiftmodule&quot;</tt><br><tt>&gt; <br>&gt; Meanwhile passing &quot;-I /path/to&quot; also will pick up all header files <br>&gt; in that directory, which here includes &quot;time.h&quot;.</tt><br><tt>&gt; <br>&gt; I personally think that behavior (the Swift compiler behavior) is <br>&gt; wrong to couple these two ideas. &nbsp;But arguing the compiler is wrong <br>&gt; is probably above my pay grade.</tt><br><tt>&gt; <br>&gt; Anyway, as long as this is the compiler behavior, we can't have <br>&gt; &quot;time.h&quot; in the same directory as the modulemap. &nbsp;So either</tt><br><tt>&gt; <br>&gt; we put swiftmodule / modulemap in /usr/local/include/dispatch and <br>&gt; headers into /usr/local/include/dispatch/headers</tt><br><tt>&gt; we put headers in /usr/local/include/dispatch and swiftmodule/<br>&gt; modulemap into /usr/local/include/dispatch/module</tt><br><tt>&gt; <br>&gt; I don't know which one to do, and I'm bad at wrestling autotools, so<br>&gt; I'm not sure I can PR.</tt><br><tt>&gt; <br>&gt; I'm working around by arbitrarily picking one of these resolutions <br>&gt; and shell scripting it as part of my install.</tt><br><tt>&gt; <br></tt><br><tt>I'm working on changes so that when built with swift/utils/build-script the pieces of libdispatch get properly placed in the installable Swift package that is being built. &nbsp; I think this is actually where we want to get to, and it avoids needing to pass the -I arguments to swiftc. &nbsp;When the bits are placed properly in the Swift install, swiftc is finding them without help.</tt><br><br><tt>I think I'm on track to submit a PR later today. &nbsp;So far, changes are confined to in the autotools setup in libdispatch. </tt><br><br><br><tt>--dave</tt><br><br><BR>
</body></html>