C++ Logo

sg15

Advanced search

Re: [SG15] module source suffixes

From: Gabriel Dos Reis <gdr_at_[hidden]>
Date: Wed, 28 Aug 2019 04:51:40 +0000
+1.

| -----Original Message-----
| From: SG15 <sg15-bounces_at_[hidden]> On Behalf Of Olga Arkhipova
| via SG15
| Sent: Tuesday, August 27, 2019 9:46 AM
| To: Matthew Woehlke <mwoehlke.floss_at_[hidden]>; sg15_at_[hidden]
| Cc: Olga Arkhipova <olgaark_at_[hidden]>
| Subject: Re: [SG15] module source suffixes
|
| IDE needs to build all module sources (if they are not already built) so their
| BMIs can be used in intellisense when user is editing some code which is
| using those modules. Before all BMIs for all modules used in the code are
| available, a code cannot be compiled (i.e. no semantic colorization,
| autocompletion, etc. in the editor).
|
| To be able to build modules in the correct order, all module interface sources
| needs to be parsed for module names and dependencies. Parsing all
| codebase for potential modules will (in most cases) take significantly more
| time than just parsing module interface files, so we'd really like to avoid this.
|
| The type of a c/c++ file is currently determined by looking at what compiler
| options are set for it in a project (when available) or file extension (when no
| project contains the file). So module interface files will be the ones which will
| be built with /module:interface (in MSVC case) according to the project
| settings (or again, when no project or no specific setting, with special
| extension).
|
| So if you want a .cpp file to be compiled as a module, you'll have to
| modifying some project settings for it, similar to if you want .c file to be
| compiled as cpp.
|
| Olga
|
|
| -----Original Message-----
| From: Matthew Woehlke <mwoehlke.floss_at_[hidden]>
| Sent: Tuesday, August 27, 2019 7:55 AM
| To: sg15_at_[hidden]
| Cc: Olga Arkhipova <olgaark_at_[hidden]>
| Subject: Re: [SG15] module source suffixes
|
| On 26/08/2019 23.49, Olga Arkhipova via SG15 wrote:
| > You still will be able to do it, but at least in MSVC case you'll have to
| explicitly tell the compiler (by setting /module:interface switch) that this cpp
| file is actually a module.
|
| Isn't that the build-system's responsibility?
|
| You previously stated that the *IDE* needs to specially handle module
| interface files. Why?
|
| --
| Matthew
| _______________________________________________
| SG15 mailing list
| SG15_at_[hidden]
| https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.
| isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg15&amp;data=02%7C01%7Cgdr
| %40microsoft.com%7Cdfcf7fa6b1d34d3fabc508d72b0e0c26%7C72f988bf86
| f141af91ab2d7cd011db47%7C1%7C0%7C637025211649151150&amp;sdata
| =N8wkAxKTu1d%2FvuogAlWTGmT7oxFRIQOAgi9w1StzfD4%3D&amp;reserv
| ed=0

Received on 2019-08-27 23:53:45