<div dir="ltr">Yeah, those seem like great questions to be asking. Thanks, Ben.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Apr 11, 2018 at 12:58 AM Boris Kolpackov <<a href="mailto:boris@codesynthesis.com">boris@codesynthesis.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ben Craig <<a href="mailto:ben.craig@ni.com" target="_blank">ben.craig@ni.com</a>> writes:<br>
<br>
> * What granularity should I provide for my modules?<br>
> ** Do I translate headers to modules one-to-one?<br>
> ** Do I just have one big module for my entire library?<br>
> ** Something in between?<br>
><br>
> * What file extension(s) should I use for module files?<br>
><br>
> * How should we map module names to file names? Just by replacing<br>
> dots with slashes?<br>
><br>
> * How should tools find modules?<br>
><br>
> I know just enough about modules to ask subtly wrong questions, [...]<br>
<br>
No, these are spot on. We had to answer[1] all of these (and some more)<br>
while adding support for modules in build2.<br>
<br>
The problem of mapping module names to file names is especially tricky:<br>
<br>
1. We don't want it to become tedious like specifying the mapping for<br>
each module explicitly would be.<br>
<br>
2. We want decent performance from the build system so parsing each<br>
module interface to find its name is probably not an option.<br>
<br>
3. We want the file names to fit the project's overall scheme (some<br>
might want FooBar, others foo_bar, I like foo-bar and you seem<br>
to prefer foo/bar).<br>
<br>
[1] <a href="https://build2.org/build2/doc/build2-build-system-manual.xhtml#cxx-modules" rel="noreferrer" target="_blank">https://build2.org/build2/doc/build2-build-system-manual.xhtml#cxx-modules</a><br>
<br>
Boris<br>
_______________________________________________<br>
Tooling mailing list<br>
<a href="mailto:Tooling@isocpp.open-std.org" target="_blank">Tooling@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/tooling" rel="noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/tooling</a><br>
</blockquote></div>