C++ Logo

sg15

Advanced search

Re: [SG15] module source suffixes

From: Mathias Stearn <redbeard0531+isocpp_at_[hidden]>
Date: Wed, 28 Aug 2019 01:43:16 +0200
On Tue, Aug 27, 2019, 18:46 Olga Arkhipova via SG15 <sg15_at_[hidden]>
wrote:

> 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.


Does msvc consider a file with `module name:partition; // no export` to be
a module interface source?

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://lists.isocpp.org/mailman/listinfo.cgi/sg15
>

Received on 2019-08-27 18:45:33