Indeed 😊

5 years ago, there was only one implementation of the proposal.  5 years later, we still have only one production-ready implementation of the feature; two are in-flight.

 

I very much want to discourage us from thinking that a “quick” path to adoption passes through  absorbing the complexity and anarchy of existing header files and putting them on steroids for decades to come.  If you’ve implemented support for header units either in compilers or in build systems, I suspect you know what I am talking about 😉

 

The reports I’ve seen from engineers from the trenches who have actually been working on adopting header units in their shipping products are that they are glad the compiler is more strict in its enforcements of “includable”/”self contained” headers as they were discovering pieces of code that should have never left the barn (and sometimes they wondered how they ever ship in the first place).  We tend to underestimate the opportunities that engineers have (and are relishing) to strengthen their codebase by over-indexing on “quick adoption” which, in my view, is just another handle for “more technical debt at scale” in this context.

 

-- Gaby

 

From: Ext <ext-bounces@lists.isocpp.org> On Behalf Of Stephen Kelly via Ext
Sent: Monday, April 25, 2022 2:37 PM
To: Gabriel Dos Reis <gdr@microsoft.com>
Cc: Stephen Kelly <steveire@gmail.com>; ext@lists.isocpp.org; sg15@lists.isocpp.org
Subject: Re: [isocpp-ext] [SG15] Fwd: Can we expect that all C++ source files can have the same suffix?

 

I had concerns about adoption of modules (and dialect splits) 5 years ago and I didn't consider it premature then :)

 

https://groups.google.com/a/isocpp.org/g/modules/c/sDIYoU8Uljw/m/BKKCSZFdBAAJ?pli=1

 

I guess either time will tell or fresh ideas will remove barriers to adoption. I'll watch with interest. 

 

Thanks,

 

Stephen. 

 

 

 

On Mon 25 Apr 2022, 22:25 Gabriel Dos Reis, <gdr@microsoft.com> wrote:

 

As of today, I consider such a worry premature; but I will continue to evaluate data and uses, etc.

 

-- Gaby

 

From: Ext <ext-bounces@lists.isocpp.org> On Behalf Of Stephen Kelly via Ext
Sent: Monday, April 25, 2022 2:20 PM
To: sg15@lists.isocpp.org
Cc: Stephen Kelly <steveire@gmail.com>; Evolution Working Group mailing list <ext@lists.isocpp.org>
Subject: Re: [isocpp-ext] [SG15] Fwd: Can we expect that all C++ source files can have the same suffix?

 

 

Lots of libraries value such easy quick-starts. If they want to keep the easy quick-start, they will have to provide includable headers and they won't be able to depend on any library that doesn't provide includable headers.


Is there any concern that this will harm adoption of modules, or lead to dialects of the language? 

 

Thanks, 

 

Stephen

 

On Mon 25 Apr 2022, 21:55 Gabriel Dos Reis via SG15, <sg15@lists.isocpp.org> wrote:

[Iain]

  • With at least two of the current implementations, this is not a viable proposition - since the BMI is dependent on the compile options - therefore there is no single “BMI to install” - and the set of permutations would be too large to be practicable.

 

I agreed that prebuilt versions that cover all imaginable combinations of compiler options is not practical.  But, again when you look at what they are asking they seem to be pretty happy with some common or “golden path” to run small tests; and I’ve heard them say in the past “it does not need to be perfect”…  The approach taken in MSVC (not perfect) is to default to some “commonly used options” and run experiments with those; that seems to work well for those scenarios.  For large scale, serious usage, they can’t escape the “you’ve got to graduate to skyscrapers settings”.

 

-- Gaby

 

From: SG15 <sg15-bounces@lists.isocpp.org> On Behalf Of Iain Sandoe via SG15
Sent: Monday, April 25, 2022 1:06 PM
To: sg15@lists.isocpp.org
Cc: Iain Sandoe <iain@sandoe.co.uk>; Evolution Working Group mailing list <ext@lists.isocpp.org>
Subject: [SG15] Fwd: [isocpp-ext] Can we expect that all C++ source files can have the same suffix?

 

posted from the wrong address, sorry,

 

Begin forwarded message:

 

From: Iain Sandoe <idsandoe@googlemail.com>

Subject: Re: [SG15] [isocpp-ext] Can we expect that all C++ source files can have the same suffix?

Date: 25 April 2022 at 21:02:03 BST

Cc: Evolution Working Group mailing list <ext@lists.isocpp.org>, Steve Downey <sdowney@gmail.com>, Peter Dimov <pdimov@gmail.com>, Tom Honermann <tom@honermann.net>, Nathan Sidwell <nathan@acm.org>

 

 

On 25 Apr 2022, at 19:43, Steve Downey via SG15 <sg15@lists.isocpp.org> wrote:



On Mon, Apr 25, 2022 at 1:55 PM Peter Dimov via Ext <ext@lists.isocpp.org> wrote:
Tom Honermann wrote:

On 4/25/22 1:12 PM, Gabriel Dos Reis wrote:

[Peter]

You are correct that the requests don't stop here.

Please, go talk to Tom 😊
Let me know when you're on the same page and what the actual request
is
😉


I think Peter and I are pretty well aligned. At a minimum, we're aligned on
support for the standard library.

Supporting Boost as Peter suggested would require something like what the
SG15 TR intends to specify or some other form of deeper integration between
the compiler and the Boost installation; I'm content to categorize those
integrations as falling on the sky scraper side. Like Peter, I would like for the
compiler to just support those integrations, but I would also like for build
systems to just never be required at all and I don't see that happening any time
soon :)


Boost here is just an example. The `import <boost/smart_ptr.hpp>` scenario
concerns a header-only library that is, as today, installed somewhere in the
default compiler include path. #include works today, we'd ideally want import
to work tomorrow without additional friction, so that people can painlessly
migrate to using modules.

The Regex scenario describes a C++ compiled library that is installed in the
default include path and the default library path (by e.g. the system package
manager, although not necessarily.) The question here is would it be possible,
in the brave new module world, for the system package manager to install
some things somewhere such that `import <boost/regex.hpp>` or
`import boost.regex` works as well as #include works today.

(I'm assuming here that both libraries have been changed in whatever way
is needed to support modules.)


Possibly for the system compiler, so that the BMI for <boost/smart_ptr.hpp> could be produced upon installation of the boost library. 


With at least two of the current implementations, this is not a viable proposition - since the BMI is dependent on the compile options - therefore there is no single “BMI to install” - and the set of permutations would be too large to be practicable.

Iain

However, this will also make compiler upgrades and secondary compilers a nightmare to install as the entire world gets rebuilt to generate some set of ABI compatible importable objects. 


_______________________________________________
SG15 mailing list
SG15@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg15

 

_______________________________________________
SG15 mailing list
SG15@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg15