<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:"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;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        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;}
--></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">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>
</body>
</html>