<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1034039694;
        mso-list-template-ids:-1665374924;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">I cannot understand what you are saying because I don’t know what LHU is, and I don’t understand the second bullet and why that is the case.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Corentin <corentin.jabot@gmail.com> <br>
<b>Sent:</b> Friday, February 8, 2019 9:18 AM<br>
<b>To:</b> Evolution Working Group mailing list <ext@lists.isocpp.org><br>
<b>Cc:</b> ben.boeckel@kitware.com; WG21 Tooling Study Group SG15 <tooling@open-std.org>; Gabriel Dos Reis <gdr@microsoft.com><br>
<b>Subject:</b> Re: [Ext] [Tooling] [D1483] How CMake supports Fortran modules and its applicability to C++<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Nice document.<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><span style="color:#212121">6.4 I believe LHU imported through include will need to be identified by either</span><o:p></o:p></p>
</div>
<div>
<ul type="disc">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
<span style="font-size:10.0pt;color:#212121">Having a manually maintained list of LHU</span><o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
<span style="font-size:10.0pt;color:#212121">Parsing all files in the projects/dependency and assuming that files that are not imported with import at least once are not LHU</span><o:p></o:p></li></ul>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#212121">I agree that letting the compiler decides to treat an include as an LHU without the blessing of the build system would be asking for trouble</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Fri, 8 Feb 2019 at 17:51 Gabriel Dos Reis via Ext <<a href="mailto:ext@lists.isocpp.org">ext@lists.isocpp.org</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">Early feedback regarding section 6.3 and 6.4.<br>
<br>
Concern in 6.3:<br>
The description there is notional, not a requirement that needs to be followed by the letter by compilers.<br>
There is an alternative formulation that uses the notion or "semantics abstract graph" (term defined in the Modules TS) that does not rely on synthesized header unit.<br>
<br>
Concern in 6.4:<br>
The way to import of "header import" is that of using a precompiled header file. If CMAKE already supports uses of PCHs, then the machinery is already there.<br>
For every import of a header H, there would be a rule for building say H.pch unless there is already a H.pch supplied by the system or other sources.<br>
<br>
<br>
Early feedback on section 7.<br>
That ask in 7.1 looks immensely reasonable to me; we have been considering similar for a while.
<br>
The Visual C++ team would be happy to team up with other tool vendor to provide an open source version.<br>
<br>
-- Gaby<br>
<br>
| -----Original Message-----<br>
| From: <a href="mailto:tooling-bounces@open-std.org" target="_blank">tooling-bounces@open-std.org</a> <<a href="mailto:tooling-bounces@open-std.org" target="_blank">tooling-bounces@open-std.org</a>> On<br>
| Behalf Of Ben Boeckel<br>
| Sent: Friday, February 8, 2019 7:55 AM<br>
| To: WG21 Tooling Study Group SG15 <<a href="mailto:tooling@open-std.org" target="_blank">tooling@open-std.org</a>><br>
| Subject: [Tooling] [D1483] How CMake supports Fortran modules and its<br>
| applicability to C++<br>
| <br>
| Hi,<br>
| <br>
| Here is copy of Kitware's paper to be discussed at Kona. I have a PDF,<br>
| but it was too large to attach to the list. I'll be at Kona, but the<br>
| other authors are not able to make it.<br>
| <br>
| An HTML version is hosted here:<br>
| <br>
| <br>
| <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmath" target="_blank">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmath</a><br>
| <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fstuf.fedorapeople.org&data=02%7C01%7Cgdr%40microsoft.com%7C74a4548c1eb941d6084308d68de963eb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636852430876390497&sdata=L7ZPTmCXKH85RsKWcY%2B9LDdyZj5pvc1yDUPyKMnHlvE%3D&reserved=0" target="_blank">
stuf.fedorapeople.org</a>%2Ffortran-modules%2Ffortran-<br>
| modules.html&amp;data=02%7C01%7Cgdr%<a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2F40microsoft.com&data=02%7C01%7Cgdr%40microsoft.com%7C74a4548c1eb941d6084308d68de963eb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636852430876400493&sdata=AaN44dE%2BTPGemUuYNNcZ34BU48TuqVavbBusc%2BzTR1g%3D&reserved=0" target="_blank">40microsoft.com</a>%7Cd49f0fb63<br>
| aac4ce886ff08d68dddd8b0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7<br>
| C1%7C636852381303060160&amp;sdata=ltkTtPf84tUk76Am5swiz6eNBGqZW<br>
| ydRfDoswsYEmlA%3D&amp;reserved=0<br>
| <br>
| Feedback welcome.<br>
| <br>
| Thanks,<br>
| <br>
| --Ben<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="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww" target="_blank">
https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww</a>.<br>
| open-<br>
| <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fstd.org&data=02%7C01%7Cgdr%40microsoft.com%7C74a4548c1eb941d6084308d68de963eb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636852430876400493&sdata=Tp1cNviVwPObjeu9KZHdPMmQ7PyLZ0cp7YkVRqRVOVo%3D&reserved=0" target="_blank">
std.org</a>%2Fmailman%2Flistinfo%2Ftooling&amp;data=02%7C01%7Cgdr%40m<br>
| <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Ficrosoft.com&data=02%7C01%7Cgdr%40microsoft.com%7C74a4548c1eb941d6084308d68de963eb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636852430876410487&sdata=fiMwau40AAli3Peve2N5QsogDawYHvMQI9nYYp9jOwk%3D&reserved=0" target="_blank">
icrosoft.com</a>%7Cd49f0fb63aac4ce886ff08d68dddd8b0%7C72f988bf86f141af9<br>
| 1ab2d7cd011db47%7C1%7C1%7C636852381303060160&amp;sdata=YLene6t<br>
| qdjuV7ad%2BAHf5kceett%2F1Whqj7Db0zka470g%3D&amp;reserved=0<br>
_______________________________________________<br>
Ext mailing list<br>
<a href="mailto:Ext@lists.isocpp.org" target="_blank">Ext@lists.isocpp.org</a><br>
Subscription: <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fext&data=02%7C01%7Cgdr%40microsoft.com%7C74a4548c1eb941d6084308d68de963eb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636852430876410487&sdata=toDBF8LGJcMAW3EI%2FlAd%2FiqS1ZR3XcB3sfDDnYgxDx0%3D&reserved=0" target="_blank">
http://lists.isocpp.org/mailman/listinfo.cgi/ext</a><br>
Link to this post: <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.isocpp.org%2Fext%2F2019%2F02%2F7507.php&data=02%7C01%7Cgdr%40microsoft.com%7C74a4548c1eb941d6084308d68de963eb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636852430876420478&sdata=JWYcKaPE4HXfpz5PBmfOeAPYGlzRTF0uv3bTINwZQzA%3D&reserved=0" target="_blank">
http://lists.isocpp.org/ext/2019/02/7507.php</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</body>
</html>