Date: Thu, 3 Feb 2022 20:41:19 -0500
On Thu, Feb 3, 2022 at 8:07 PM Gabriel Dos Reis <gdr_at_[hidden]> wrote:
> [Steve]
>
> - We've had deep concerns about tooling for modules forever.
>
>
>
> Correct. But the suggestion of encoding into the filesystem is more of
> productivity opportunity inhibitor than a solution, which is why it was
> rejected back then. It is a huge step back.
>
>
>
> -- Gaby
>
>
> It would be a huge step forward if we can figure out how to do it. On the
other hand, the one compiler I'm aware of that didn't distribute headers as
files, Visual Age C++, stopped existing more than a decade ago.
Loosely coupled systems require compromises and conventions for
interoperability. Giving you my modular code to use outside my build
system, compiler, and environment needs some implicit communication
channel, and we don't have much besides the filesystem to start the
bootstrap process.
The argument that `class Xyzzy;` can be in any file is compelling, however
the language systems that I know that have an `import class Xyzzy;` have
filesystemlike requirements so that the class can be deterministically
found.
Also, note that we're over here in SG15. We're setting minimal baselines. I
wouldn't expect a Visual Studio project to ship this information to itself
via this mechanism. That would be painful and wasteful, and require the
build system to forget things it fullwell knows. I think what we're looking
for is what would be an `install` or `export` step from the build.
> [Steve]
>
> - We've had deep concerns about tooling for modules forever.
>
>
>
> Correct. But the suggestion of encoding into the filesystem is more of
> productivity opportunity inhibitor than a solution, which is why it was
> rejected back then. It is a huge step back.
>
>
>
> -- Gaby
>
>
> It would be a huge step forward if we can figure out how to do it. On the
other hand, the one compiler I'm aware of that didn't distribute headers as
files, Visual Age C++, stopped existing more than a decade ago.
Loosely coupled systems require compromises and conventions for
interoperability. Giving you my modular code to use outside my build
system, compiler, and environment needs some implicit communication
channel, and we don't have much besides the filesystem to start the
bootstrap process.
The argument that `class Xyzzy;` can be in any file is compelling, however
the language systems that I know that have an `import class Xyzzy;` have
filesystemlike requirements so that the class can be deterministically
found.
Also, note that we're over here in SG15. We're setting minimal baselines. I
wouldn't expect a Visual Studio project to ship this information to itself
via this mechanism. That would be painful and wasteful, and require the
build system to forget things it fullwell knows. I think what we're looking
for is what would be an `install` or `export` step from the build.
Received on 2022-02-04 01:41:33