<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:1.2em 0px!important">On Wed, 9 Dec 2015 at 12:38 Max Howell <a href="http://mailto:max.howell@apple.com">max.howell@apple.com</a> wrote:</p>
<p style="margin:1.2em 0px!important"></p><div class="markdown-here-exclude"><p></p><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&gt; Another option would seem to be modelling the daylights out of build environments but I think this runs afoul of enumerations. Right now we have `os(Linux)` but we&#39;d really need `os(Ubuntu)`, `os(RedHat)` and so forth to handle dependencies like these. And if people are working on a new distro -- or merely want a new platform tag even though they are on a stock distro -- this would fail unless they rebuilt the Swift compiler or package manager with an extended enumeration.<br>
<br>
Well, the module maps aren’t Swift so it wouldn’t work. Certainly we could allow some kind of #if syntax in module maps, but I think the elegance of one-file per platform will be enough and is much simpler.<br></blockquote><p></p></div><p style="margin:1.2em 0px!important"></p>
<p style="margin:1.2em 0px!important">Maybe I wasn’t clear here. This passage is about the platform names — how do we keep discovery flexible? I’m assuming there is an enum somewhere — <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">OSX</code>, <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">Linux</code>, <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">iOS</code> — in the compiler and what I’d like to suggest is, a centralized registry like that will create maintenance headaches for maintainers and frustrate developers, too. So taking one file per platform as a given, as long as platform discovery is easily extended then porting libraries is easy — add a new platform file, or even pass the “compatible platform” as an option.</p>
<p style="margin:1.2em 0px!important">Thanks for your prompt reply.</p>
<p style="margin:1.2em 0px!important">Best Regards,
  Jason</p>
<div title="MDH:PGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciI+T24gV2VkLCA5
IERlYyAyMDE1IGF0IDEyOjM4IE1heCBIb3dlbGwgJmx0O21heC5ob3dlbGxAYXBwbGUuY29tJmd0
OyB3cm90ZTo8L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJn
aW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4
OyI+CiZndDsgQW5vdGhlciBvcHRpb24gd291bGQgc2VlbSB0byBiZSBtb2RlbGxpbmcgdGhlIGRh
eWxpZ2h0cyBvdXQgb2YgYnVpbGQgZW52aXJvbm1lbnRzIGJ1dCBJIHRoaW5rIHRoaXMgcnVucyBh
Zm91bCBvZiBlbnVtZXJhdGlvbnMuIFJpZ2h0IG5vdyB3ZSBoYXZlIGBvcyhMaW51eClgIGJ1dCB3
ZSdkIHJlYWxseSBuZWVkIGBvcyhVYnVudHUpYCwgYG9zKFJlZEhhdClgIGFuZCBzbyBmb3J0aCB0
byBoYW5kbGUgZGVwZW5kZW5jaWVzIGxpa2UgdGhlc2UuIEFuZCBpZiBwZW9wbGUgYXJlIHdvcmtp
bmcgb24gYSBuZXcgZGlzdHJvIC0tIG9yIG1lcmVseSB3YW50IGEgbmV3IHBsYXRmb3JtIHRhZyBl
dmVuIHRob3VnaCB0aGV5IGFyZSBvbiBhIHN0b2NrIGRpc3RybyAtLSB0aGlzIHdvdWxkIGZhaWwg
dW5sZXNzIHRoZXkgcmVidWlsdCB0aGUgU3dpZnQgY29tcGlsZXIgb3IgcGFja2FnZSBtYW5hZ2Vy
IHdpdGggYW4gZXh0ZW5kZWQgZW51bWVyYXRpb24uPGJyPgo8YnI+CldlbGwsIHRoZSBtb2R1bGUg
bWFwcyBhcmVu4oCZdCBTd2lmdCBzbyBpdCB3b3VsZG7igJl0IHdvcmsuIENlcnRhaW5seSB3ZSBj
b3VsZCBhbGxvdyBzb21lIGtpbmQgb2YgI2lmIHN5bnRheCBpbiBtb2R1bGUgbWFwcywgYnV0IEkg
dGhpbmsgdGhlIGVsZWdhbmNlIG9mIG9uZS1maWxlIHBlciBwbGF0Zm9ybSB3aWxsIGJlIGVub3Vn
aCBhbmQgaXMgbXVjaCBzaW1wbGVyLjxicj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+PC9kaXY+PGRp
dj5NYXliZSBJIHdhc24ndCBjbGVhciBoZXJlLiBUaGlzIHBhc3NhZ2UgaXMgYWJvdXQgdGhlIHBs
YXRmb3JtIG5hbWVzIC0tIGhvdyBkbyB3ZSBrZWVwIGRpc2NvdmVyeSBmbGV4aWJsZT8gSSdtIGFz
c3VtaW5nIHRoZXJlIGlzIGFuIGVudW0gc29tZXdoZXJlIC0tIGBPU1hgLCBgTGludXhgLCBgaU9T
YCAtLSBpbiB0aGUgY29tcGlsZXIgYW5kIHdoYXQgSSdkIGxpa2UgdG8gc3VnZ2VzdCBpcywgYSBj
ZW50cmFsaXplZCByZWdpc3RyeSBsaWtlIHRoYXQgd2lsbCBjcmVhdGUgbWFpbnRlbmFuY2UgaGVh
ZGFjaGVzIGZvciBtYWludGFpbmVycyBhbmQgZnJ1c3RyYXRlIGRldmVsb3BlcnMsIHRvby4gU28g
dGFraW5nIG9uZSBmaWxlIHBlciBwbGF0Zm9ybSBhcyBhIGdpdmVuLCBhcyBsb25nIGFzIHBsYXRm
b3JtIGRpc2NvdmVyeSBpcyBlYXNpbHkgZXh0ZW5kZWQgdGhlbiBwb3J0aW5nIGxpYnJhcmllcyBp
cyBlYXN5IC0tIGFkZCBhIG5ldyBwbGF0Zm9ybSBmaWxlLCBvciBldmVuIHBhc3MgdGhlICJjb21w
YXRpYmxlIHBsYXRmb3JtIiBhcyBhbiBvcHRpb24uPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5U
aGFua3MgZm9yIHlvdXIgcHJvbXB0IHJlcGx5LjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QmVz
dCBSZWdhcmRzLDwvZGl2PjxkaXY+Jm5ic3A7IEphc29uPC9kaXY+PC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div>