<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=us-ascii">
<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:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        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;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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:177739339;
        mso-list-template-ids:-800138376;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        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:\F0A7;
        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:\F0A7;
        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:\F0A7;
        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:\F0A7;
        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:\F0A7;
        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:\F0A7;
        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:\F0A7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1
        {mso-list-id:467213160;
        mso-list-template-ids:1413903882;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1: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 l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2
        {mso-list-id:992681795;
        mso-list-template-ids:-210708306;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2: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 l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l3
        {mso-list-id:1015427921;
        mso-list-template-ids:-264756144;}
@list l4
        {mso-list-id:2077391121;
        mso-list-template-ids:-1420537346;}
@list l4:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4: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 l4:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l3:level2 lfo2
        {mso-level-start-at:0;
        mso-level-number-format:alpha-lower;
        mso-level-numbering:continue;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:0in;
        text-indent:0in;}
@list l3:level2 lfo3
        {mso-level-start-at:0;
        mso-level-number-format:alpha-lower;
        mso-level-numbering:continue;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:0in;
        text-indent:0in;}
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="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Agenda, as was presented in the meeting…<o:p></o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">ISO C++ SG15 Tooling</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Pre-Cologne Modules Tooling Interactions Telecon</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">2019-03-22</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Chairing: Ben Craig</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Minute Taker: Tom Honermann</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Today's Goal: Work on fleshing out an outline for the TR and start assigning homework to people.</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Please discuss the following, suggest changes/improvements, and attempt to build consensus.</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:black">Timing:</span></b><span style="font-family:"Arial",sans-serif;color:black"> The TR will be feature-driven not deadline-driven; we'll ship it when it's ready.</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:black">Proposed Outline</span></b><span style="font-family:"Arial",sans-serif;color:black"> (based on Bryce’s pre-Kona notes and Rene/Corentin’s Kona slides, see end of document for details)</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoNormal" style="color:black;mso-list:l3 level1 lfo1;vertical-align:baseline">
<b><span style="font-family:"Arial",sans-serif">Usage:</span></b><span style="font-family:"Arial",sans-serif"> Explains the requirements and expected usage of modules across the C++ ecosystem. Raises questions which need to be addressed later in the document.<o:p></o:p></span></li></ol>
<ol style="margin-top:0in" start="1" type="1">
<ol style="margin-top:0in" start="1" type="a">
<li class="MsoNormal" style="color:black;mso-list:l3 level2 lfo2;vertical-align:baseline">
<b><span style="font-family:"Arial",sans-serif">Stakeholders:</span></b><span style="font-family:"Arial",sans-serif"> Different types of users of modules (more details below).<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l3 level2 lfo2;vertical-align:baseline">
<b><span style="font-family:"Arial",sans-serif">Archetypes:</span></b><span style="font-family:"Arial",sans-serif"> Concrete examples based on expected usage (more details below).<o:p></o:p></span></li></ol>
<li class="MsoNormal" style="color:black;mso-list:l3 level1 lfo2;vertical-align:baseline">
<b><span style="font-family:"Arial",sans-serif">Findings:</span></b><span style="font-family:"Arial",sans-serif"> Focused technical sections that explore open questions in detail and present the results of field experience. Unopinionated.<o:p></o:p></span></li></ol>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">Module Mapping:</span></b><span style="font-family:"Arial",sans-serif;color:black"> What approaches and formats are effective for communicating module name <-> module-interface/header
file mappings? Module name + configuration <-> BMI mappings?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">a.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">Module Naming:</span></b><span style="font-family:"Arial",sans-serif;color:black"> How should module names be structured? How do we avoid conflicts between different
projects? How do we deal with versioning?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">b.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">Module Granularity:</span></b><span style="font-family:"Arial",sans-serif;color:black"> What size should modules be to maximize performance and usability? Does the cost
of an import scale with the size of the module?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">c.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">Module ABI:</span></b><span style="font-family:"Arial",sans-serif;color:black"> How do we maintain stable ABIs in a modular world?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">d.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">Codebase Transition Path:</span></b><span style="font-family:"Arial",sans-serif;color:black"> How should projects transition from headers to modules? How should projects
support both pre-C++20 headers and C++20 modules?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">e.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">BMI Configuration:</span></b><span style="font-family:"Arial",sans-serif;color:black"> How do we find the BMI that was compiled in the same way as the current TU? What
defines the configuration of a BMI?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">f.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">BMI Distribution:</span></b><span style="font-family:"Arial",sans-serif;color:black"> How effective is the distribution of BMIs alongside module-interface/header files?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">g.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">Dependency Scanning:</span></b><span style="font-family:"Arial",sans-serif;color:black"> How do we do dependency scanning in a modular world? Can we make it fast?<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:0in;text-indent:0in;mso-list:l3 level2 lfo3;vertical-align:baseline">
<![if !supportLists]><span style="font-family:"Arial",sans-serif;color:black"><span style="mso-list:Ignore">h.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><b><span style="font-family:"Arial",sans-serif;color:black">Build Performance:</span></b><span style="font-family:"Arial",sans-serif;color:black"> How do modules impact build performance? What impact does modules have on parallelism
in C++ builds?<o:p></o:p></span></p>
<ol style="margin-top:0in" start="3" type="1">
<li class="MsoNormal" style="color:black;mso-list:l3 level1 lfo3;vertical-align:baseline">
<b><span style="font-family:"Arial",sans-serif">Guidance:</span></b><span style="font-family:"Arial",sans-serif"> Concise set of guidelines for the C++ ecosystem. Addresses questions raised in Usage and draws conclusions based on results from Findings.
<o:p></o:p></span></li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Do we agree to use this outline as a starting point?</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">What's missing (Findings sections in particular)? How can this be improved?</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Who is interested in working on a particular section of the proposed outline? Please collect a list of names. Don’t volunteer for everything – just for what you care about and
can commit to working on.</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:black">Stakeholders:</span></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoNormal" style="color:black;mso-list:l2 level1 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">C++ Implementations<o:p></o:p></span></li><ul style="margin-top:0in" type="circle">
<li class="MsoNormal" style="color:black;mso-list:l2 level2 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">GCC, Clang/LLVM, Visual Studio, EDG, PGI, ICC, xlC<o:p></o:p></span></li></ul>
<li class="MsoNormal" style="color:black;mso-list:l2 level1 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Build Systems<o:p></o:p></span></li><ul style="margin-top:0in" type="circle">
<li class="MsoNormal" style="color:black;mso-list:l2 level2 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">CMake, Make, Boost Build, autoconf, shell scripts, Meson, Ninja, Scons, Waf, Bazel, Buck, Cargo, Gulp, Webpack, Ant, llbuild, Evoke, qmake, MSBuild, internal company build systems, mixed build systems, distributed
build systems (icecc, ccache, sccache, incredibuild, distcc, fastbuild, Bazel remote build execution)<o:p></o:p></span></li></ul>
<li class="MsoNormal" style="color:black;mso-list:l2 level1 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Tools<o:p></o:p></span></li><ul style="margin-top:0in" type="circle">
<li class="MsoNormal" style="color:black;mso-list:l2 level2 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">IDEs, Clang-based tools, CastXML, static analysis tools (Coverity, Clang Static Analyzer, Grammatech, cppcheck), code generation tools (QT Moc, Protobuf), test frameworks (Google Test), test case reduction tools
(creduce, delta)<o:p></o:p></span></li></ul>
<li class="MsoNormal" style="color:black;mso-list:l2 level1 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Libraries<o:p></o:p></span></li><ul style="margin-top:0in" type="circle">
<li class="MsoNormal" style="color:black;mso-list:l2 level2 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Boost, header only libraries<o:p></o:p></span></li></ul>
<li class="MsoNormal" style="color:black;mso-list:l2 level1 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Distributions<o:p></o:p></span></li><ul style="margin-top:0in" type="circle">
<li class="MsoNormal" style="color:black;mso-list:l2 level2 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">vcpkg, conan.io, Linux distributions (RPM-based, Debian-based)
<o:p></o:p></span></li></ul>
<li class="MsoNormal" style="color:black;mso-list:l2 level1 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Other Languages<o:p></o:p></span></li><ul style="margin-top:0in" type="circle">
<li class="MsoNormal" style="color:black;mso-list:l2 level2 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">CUDA, OpenCL/SYCL, C, Python, Rust, Java, SWIG<o:p></o:p></span></li></ul>
<li class="MsoNormal" style="color:black;mso-list:l2 level1 lfo4;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">End Users<o:p></o:p></span></li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Who is interested in working on a particular stakeholder group? Collect a list of names.</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">For each stakeholder group, we need a short description of the group (e.g. what things are in the group) and a bullet list of the issues that matter for that group. Volunteers?
Collect a list of names.</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:black">Archetypes:</span></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo5;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Hello world with modules<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo5;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Header only library<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo5;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Incremental build<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo5;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Distributed build<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo5;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Building BMIs only for tooling consumption<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo5;vertical-align:baseline">
<span style="font-family:"Arial",sans-serif">Dependency scanning vs explicit module dependencies build<o:p></o:p></span></li></ul>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">
</span><o:p></o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">We need more concrete examples. Who volunteers to go write some up? Collect list of names.</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-family:"Arial",sans-serif;color:black">Format:</span></b><span style="font-family:"Arial",sans-serif;color:black"> The TR will likely need to be in Latex, using a fresh fork of the IS Latex that has been customized,
similar to the Coroutines TS Latex. We have had very painful issues with non-Latex formal documents in the past. Ex: The Parallelism TS v2 was originally written in HTML which was converted to PDF for publication. It had to be
<b><u>completely rewritten</u></b> in Latex after we voted to publish it because of typesetting issues raised by ISO that could not be resolved.</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">https://github.com/cpp-tooling has been created for collaboration. Not sure how we’ll use it yet; feel free to create a repository for examples and/or brainstorming. JF Bastien
can add people while Bryce is away.</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><b><i><span style="font-family:"Arial",sans-serif;color:black">Appendix</span></i></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-family:"Arial",sans-serif;color:black">List from Bryce's pre-Kona notes</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l4 level1 lfo6;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Module Map Format<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in;mso-list:l4 level2 lfo6;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Name of Module + ABI Hash -> Physical Location<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l4 level1 lfo6;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Module Mappers<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l4 level1 lfo6;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Module ABI Hashing<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l4 level1 lfo6;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Module Versioning<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l4 level1 lfo6;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Dependency Scanning<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in;mso-list:l4 level2 lfo6;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">How should tools use a dependency scanner? Command line? Programmatic API?<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-family:"Arial",sans-serif;color:black">List from Rene/Corentin presented at the Kona evening session:</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Module name <-> Module header unit name mapping<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Module name <-> BMI mapping<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Module naming<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Guidelines for BMI implementations strategies<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Guidelines (maybe format) for shipping modularized closed source libraries<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Guidelines for Linux distributions (maybe)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Guidelines/format for handling legacy header units<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:black"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Guidelines for using modules:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in;mso-list:l0 level2 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">ABI concerns/hashing<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.5in;text-indent:-.25in;mso-list:l0 level2 lfo7;vertical-align:baseline">
<![if !supportLists]><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-family:"Arial",sans-serif;color:black">Not authoring modules for 3rd party code<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><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> Modules <modules-bounces@lists.isocpp.org> <b>On Behalf Of
</b>Ben Craig<br>
<b>Sent:</b> Friday, March 22, 2019 8:36 PM<br>
<b>To:</b> modules@lists.isocpp.org; WG21 Tooling Study Group SG15 <tooling@open-std.org><br>
<b>Subject:</b> [EXTERNAL] [isocpp-modules] March 22 telecon minutes<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The agenda that was in the telecon will come in a later email, here’s the minutes. Note that some people that couldn’t make the meeting have been assigned homework. Many thanks to Tom for taking minutes today!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">===============================<o:p></o:p></p>
<p class="MsoNormal">Tom's notes<o:p></o:p></p>
<p class="MsoNormal">===============================<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Attendees:<o:p></o:p></p>
<p class="MsoNormal">- Anna Gringauze (AG)<o:p></o:p></p>
<p class="MsoNormal">- Ben Boeckel (BB)<o:p></o:p></p>
<p class="MsoNormal">- Ben Craig (BC)<o:p></o:p></p>
<p class="MsoNormal">- Bruno Cardoso Lopes (BCL)<o:p></o:p></p>
<p class="MsoNormal">- Colby Pike (CP)<o:p></o:p></p>
<p class="MsoNormal">- Gor Nishanov (GN)<o:p></o:p></p>
<p class="MsoNormal">- JF Bastien (JF)<o:p></o:p></p>
<p class="MsoNormal">- Mark Zeren (MZ)<o:p></o:p></p>
<p class="MsoNormal">- Mathew Woehlke (MW)<o:p></o:p></p>
<p class="MsoNormal">- Mathias Stern (MS)<o:p></o:p></p>
<p class="MsoNormal">- Michael Spencer (MSp)<o:p></o:p></p>
<p class="MsoNormal">- Nathan Sidwell (NS)<o:p></o:p></p>
<p class="MsoNormal">- Olga Arkhipova (OA)<o:p></o:p></p>
<p class="MsoNormal">- Peter Bindels (PB)<o:p></o:p></p>
<p class="MsoNormal">- Rene Rivera (RR)<o:p></o:p></p>
<p class="MsoNormal">- Steve Downey (SD)<o:p></o:p></p>
<p class="MsoNormal">- Stephen Kelly (SK)<o:p></o:p></p>
<p class="MsoNormal">- Tom Honermann (TH)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">BC: Introduces agenda; agreement on the outline of the TR; get volunteers; minimal tech talk.<o:p></o:p></p>
<p class="MsoNormal">BC: Any objection to the findings as an outline?<o:p></o:p></p>
<p class="MsoNormal">JF: Need to base this on code at some point. Would like to see a code base that uses modules and multiple build systems. We can talk all day about theoretical concerns, but need to base work on reality.<o:p></o:p></p>
<p class="MsoNormal">BC: As an example, modularize Boost?<o:p></o:p></p>
<p class="MsoNormal">JF: Need to focus on applications.<o:p></o:p></p>
<p class="MsoNormal">BC: Need to distinguish modularizing a library and consuming a library.<o:p></o:p></p>
<p class="MsoNormal">PB: Perhaps try the kitchen sink example from CopperSpice?<o:p></o:p></p>
<p class="MsoNormal">TH: JF, do you want real projects or exemplary projects?<o:p></o:p></p>
<p class="MsoNormal">JF: Real projects.<o:p></o:p></p>
<p class="MsoNormal">SD: Don't think we need really real projects, just exemplary ones. POSIX demonstrates how to do compiles, link; use case oriented.<o:p></o:p></p>
<p class="MsoNormal">TH: Agree, and it would be nice to have examples in the TR demonstrating usage.<o:p></o:p></p>
<p class="MsoNormal">BC: Bryce has a hello world with modules that could be an example in the TR.<o:p></o:p></p>
<p class="MsoNormal">PB: I volunteer to make a hello world example.<o:p></o:p></p>
<p class="MsoNormal">BC: Back to the outline, who is working on what? Corentin and PB are working on module mapping?<o:p></o:p></p>
<p class="MsoNormal">PB: We have P1484.<o:p></o:p></p>
<p class="MsoNormal">MS: I volunteer to help with module mapping.<o:p></o:p></p>
<p class="MsoNormal">TH: Which aspect of module mapping are we discussing here?<o:p></o:p></p>
<p class="MsoNormal">PB: Mapping to source.<o:p></o:p></p>
<p class="MsoNormal">MS: Also want mapping to BMIs.<o:p></o:p></p>
<p class="MsoNormal">BC: Sounds like this covers mapping to source, BMI, and indication of header units.<o:p></o:p></p>
<p class="MsoNormal">BC: Michael Spencer is working on dependency scanning. So is Ben Boeckel. Can I record them as volunteers to work on this?<o:p></o:p></p>
<p class="MsoNormal">MSp: Yes.<o:p></o:p></p>
<p class="MsoNormal">JF: Dependency scanning is part of build system implementation. What is the goal of discussing dependency scanning (and other features we're<o:p></o:p></p>
<p class="MsoNormal">discussing) as part of the TR?<o:p></o:p></p>
<p class="MsoNormal">MS: It is a contract between stakeholders.<o:p></o:p></p>
<p class="MsoNormal">TH: Not concerned about implementation details; concerned about ensuring meta data is represented in ways usable by multiple tools, buld systems, etc..<o:p></o:p></p>
<p class="MsoNormal">MSp: The best/fastest way to build modules are relevant for implementation.<o:p></o:p></p>
<p class="MsoNormal">PB: Perhaps worth discussing trade offs between fast and accurate?<o:p></o:p></p>
<p class="MsoNormal">MS: Let's take inaccurate off the table.<o:p></o:p></p>
<p class="MsoNormal">BC: Moving on to build performance, can I sign Rene and Mathias up for that?<o:p></o:p></p>
<p class="MsoNormal">MS: Yes, questions to address: can BMI and object files be built concurrently? What gets built and how? These are worth researching.<o:p></o:p></p>
<p class="MsoNormal">RR: Happy to work on performance related issues and testing. There is a chicken/egg problem of needing working compilers. We can't tackle distributed builds without additional work.<o:p></o:p></p>
<p class="MsoNormal">MS: Would like feedback on how reasonable it is to look at performance of current compiler incarnations.<o:p></o:p></p>
<p class="MsoNormal">NS: In three years time, performance profile will probably be quite different; focus now is correctness, not speed.<o:p></o:p></p>
<p class="MsoNormal">MSp: Clang has some inefficiencies around finding modules now. I think overhead of modules will go down over time. Dependencies will remain.<o:p></o:p></p>
<p class="MsoNormal">MS: Wondering about relative performance, scanning vs code gen vs BMI gen, etc... Perhaps a TR2 would be a good focus for performance.<o:p></o:p></p>
<p class="MsoNormal">MSp: Some performance sensitive things will change, some things won't.<o:p></o:p></p>
<p class="MsoNormal">BC: Looking at code base transition path now. BC volunteers.<o:p></o:p></p>
<p class="MsoNormal">TH: Interested in transition path.<o:p></o:p></p>
<p class="MsoNormal">SK: Also interested.<o:p></o:p></p>
<p class="MsoNormal">SD: Also interested. Will bring a Lacos and Bloomberg informed focus.<o:p></o:p></p>
<p class="MsoNormal">BC: Olga, will you sign up for BMI distribution?<o:p></o:p></p>
<p class="MsoNormal">OA: Yes. We've had internal discussions about sharing BMIs.<o:p></o:p></p>
<p class="MsoNormal">BCL: Volunteers to work on BMI distribution as well.<o:p></o:p></p>
<p class="MsoNormal">SD: This overlaps with sharing of object files as well. What is the range of IFNDR when sharing BMIs? If a BMI isn't suitable, how does it get recompiled.<o:p></o:p></p>
<p class="MsoNormal">TH: Is MSp interested in volunteering with regard to BMI distribution?<o:p></o:p></p>
<p class="MsoNormal">JF: We can volunteer to write a section that says "don't".<o:p></o:p></p>
<p class="MsoNormal">BC: I don't think we should have a section that raises questions for all stackeholders. Instead, each area under findings should raise questions and explore them from the standpoint of each stakeholder.<o:p></o:p></p>
<p class="MsoNormal">MS: I agree, though not particularly productive to discuss now until we have stuff to put in the doc.<o:p></o:p></p>
<p class="MsoNormal">BC: Makes sense.<o:p></o:p></p>
<p class="MsoNormal">BC: PB volunteered for hello world, volunteers for distributed build?<o:p></o:p></p>
<p class="MsoNormal">MS: I volunteer. Would be nice to have someone from Google due to difference in approaches.<o:p></o:p></p>
<p class="MsoNormal">GN: Volunteers Gaby to contribute to hello world examples.<o:p></o:p></p>
<p class="MsoNormal">BC: Would like to sign up Gaby for explicit module dependencies as the Microsoft Edge team purportedly used them.<o:p></o:p></p>
<p class="MsoNormal">MS: Do we want to encourage explicit module dependencies?<o:p></o:p></p>
<p class="MsoNormal">??: No.<o:p></o:p></p>
<p class="MsoNormal">TH: Matches existing PCH usage in Microsoft ecosystems.<o:p></o:p></p>
<p class="MsoNormal">BC: We should discuss.<o:p></o:p></p>
<p class="MsoNormal">OA: For dependency scanning, we are planning to do work to support this, but haven't started yet. Mixed mode dependency scanning and explicit dependencies may happen.<o:p></o:p></p>
<p class="MsoNormal">BC: Moving on to header only libraries. Done today to avoid build system pain. Any volunteers?<o:p></o:p></p>
<p class="MsoNormal">PB: Catch2 considering moving away from header-only for technical reasons (e.g., build speed).<o:p></o:p></p>
<p class="MsoNormal">BC: No volunteers for header-only.<o:p></o:p></p>
<p class="MsoNormal">BC: Volunteers for incremental-build? Kind of inherent to builds in general...<o:p></o:p></p>
<p class="MsoNormal">MS: I volunteer to writeup something for incremental builds.<o:p></o:p></p>
<p class="MsoNormal">BC: On to building BMIs for tooling consumption.<o:p></o:p></p>
<p class="MsoNormal">OA: I work on static analysis, so interested in special tools.<o:p></o:p></p>
<p class="MsoNormal">Interested in saving information useful for tools in BMIs.<o:p></o:p></p>
<p class="MsoNormal">TH: Will contribute to discussion on sharing BMIs across compilers/tools.<o:p></o:p></p>
<p class="MsoNormal">BC: No assignments for module naming, module granularity, BMI configuration. Got the rest. Stakeholders to be covered on a per item basis.<o:p></o:p></p>
<p class="MsoNormal">TH: Perhaps next meeting we can have everyone vote about their highest priority concerns to be addressed in the TR.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">===============================<o:p></o:p></p>
<p class="MsoNormal">Ben's notes<o:p></o:p></p>
<p class="MsoNormal">===============================<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Possibly interleave findings and guidance?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Need concrete code base / code bases, need multiple concrete build systems<o:p></o:p></p>
<p class="MsoNormal"> Tie things to specific examples<o:p></o:p></p>
<p class="MsoNormal"> For multiple stakeholders, use cases<o:p></o:p></p>
<p class="MsoNormal"> Kitchen Sink CopperSpice example?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Peter Bindels + Gaby: Volunteering for hello world with modules section<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Corentin Jabot, Peter Bindels, Mathias Stearn: Module Mapping P1484<o:p></o:p></p>
<p class="MsoNormal"> mapping to source files. mapping to BMI. Where to find a header unit<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Michael Spencer and Ben Boeckel: Dependency Scanning<o:p></o:p></p>
<p class="MsoNormal"> What we've found, and what others might want to do. This is from the impl's perspective.<o:p></o:p></p>
<p class="MsoNormal"> Does the "can we make it fast?" belong in the TR?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Mathias Stearn + Rene Rivera: Build Performance?<o:p></o:p></p>
<p class="MsoNormal"> Can't get recommendations yet based off of current work<o:p></o:p></p>
<p class="MsoNormal"> Different models of building? Concurrent BMI and .o vs. distinct builds. Needs research<o:p></o:p></p>
<p class="MsoNormal"> Chicken and Egg<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Ben Craig + Tom Honermann + Steve Downey + Stephen Kelly: Codebase Transition Path<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Olga Arkhipova + Bruno Cardoso Lopes (maybe?): BMI Distribution<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Mathias + Ben + Googler TBD: Distributed build<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Microsoft (Gaby + Olga): Dependency scanning vs explicit module dependencies build<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Michael Spencer: Incremental Builds (information on performance and build theory)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Anna Gringauze, Tom Honermann: Building BMIs only for tooling consumption:<o:p></o:p></p>
<p class="MsoNormal"> Probably going to look at source. Explain how tools are different from compilers.<o:p></o:p></p>
<p class="MsoNormal"> Sharing BMIs between compilers and tools.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Bruno Cardoso Lopes (maybe?): BMI Configuration:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">TBD:<o:p></o:p></p>
<p class="MsoNormal"> Header only library<o:p></o:p></p>
<p class="MsoNormal"> Module Naming<o:p></o:p></p>
<p class="MsoNormal"> Module Granularity<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Stakeholders to be covered on a per item basis<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hope that another meeting we can establish priorities<o:p></o:p></p>
</div>
</div>
</body>
</html>