On 4/9/24 15:31, Rainer Deyke via Boost wrote:
On 08.04.24 20:29, Robert Ramey via Boost wrote:
The more I read this thread, the more it seems to me that modules are just a bad idea. We already have shared libraries which are redistributable and that's already a hassle given all the compiler switches. shared libraries have the same issue in that if one only want's to use one function, the whole library has to be shipped.
This does not follow. Shared libraries have problems, therefore modules (which /solve/ many of these problems) are a bad idea? What?
I'm picturing a future where modules (in source code form) become /the/ way to distribute C++ libraries.
Your system won't run the C++ modules, someone has to compile them first. Build systems aren't going anywhere, as well as compiled libraries.
Advantages: - No more messing with build systems for the library author. Just ship the source code.
Shipping the source code is not new. Building libraries from source is also not new.
- No more messing with library build systems for the library consumer.
Unless the consumer doesn't want to compile the dependencies all the time.
- Unified build system does not need to differentiate between user files and library files. - Consistent macro-based configuration for all libraries, not just header-only libraries
I'm not sure what the above two mean.
- No shared libraries = aggressive dead-code elimination at build time, resulting in massive reductions of code size. - No shared libraries = programs can ship as a single executable file.
Again, not going to happen. Monolithic executables, while may be convenient in a portable usage scenario, are a problem in terms of maintenance and resource consumption.